summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--OWNERS2
-rw-r--r--apct-tests/perftests/core/src/android/conscrypt/conscrypt/CipherEncryptPerfTest.java29
-rw-r--r--apct-tests/perftests/core/src/android/conscrypt/conscrypt/ClientSocketPerfTest.java32
-rw-r--r--apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineFactory.java68
-rw-r--r--apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineHandshakePerfTest.java207
-rw-r--r--apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineWrapPerfTest.java221
-rw-r--r--apct-tests/perftests/core/src/android/conscrypt/conscrypt/ServerSocketPerfTest.java34
-rw-r--r--apct-tests/perftests/core/src/android/conscrypt/conscrypt/Transformation.java1
-rw-r--r--core/java/android/app/Activity.java3
-rw-r--r--core/java/android/content/pm/multiuser.aconfig10
-rw-r--r--core/java/android/hardware/display/DisplayManagerInternal.java10
-rw-r--r--core/java/android/inputmethodservice/InputMethodService.java38
-rw-r--r--core/java/android/os/PowerManagerInternal.java4
-rw-r--r--core/java/android/os/ZygoteProcess.java34
-rw-r--r--core/java/android/provider/Settings.java4
-rw-r--r--core/java/android/service/contextualsearch/OWNERS1
-rw-r--r--core/java/android/service/notification/SystemZenRules.java15
-rw-r--r--core/java/android/speech/OWNERS1
-rw-r--r--core/java/android/util/TypedValue.java7
-rw-r--r--core/java/android/view/IWindowSession.aidl14
-rw-r--r--core/java/android/view/InsetsController.java75
-rw-r--r--core/java/android/view/InsetsSourceControl.java22
-rw-r--r--core/java/android/view/View.java24
-rw-r--r--core/java/android/view/ViewGroup.java13
-rw-r--r--core/java/android/view/ViewRootImpl.java23
-rw-r--r--core/java/android/view/ViewRootInsetsControllerHost.java13
-rw-r--r--core/java/android/view/WindowlessWindowManager.java8
-rw-r--r--core/java/android/view/autofill/AutofillClientController.java88
-rw-r--r--core/java/android/view/autofill/AutofillManager.java38
-rw-r--r--core/java/android/view/contentcapture/OWNERS1
-rw-r--r--core/java/android/view/inputmethod/ImeTracker.java74
-rw-r--r--core/java/android/view/inputmethod/InputMethodManager.java22
-rw-r--r--core/java/android/widget/RemoteViews.java2
-rw-r--r--core/java/android/widget/RemoteViewsSerializers.java177
-rw-r--r--core/java/android/window/flags/windowing_frontend.aconfig8
-rw-r--r--core/java/android/window/flags/windowing_sdk.aconfig8
-rw-r--r--core/java/com/android/internal/inputmethod/IInputMethodClient.aidl3
-rw-r--r--core/java/com/android/internal/os/WebViewZygoteInit.java25
-rw-r--r--core/java/com/android/internal/os/Zygote.java2
-rw-r--r--core/java/com/android/internal/os/ZygoteArguments.java32
-rw-r--r--core/java/com/android/internal/os/ZygoteConnection.java13
-rw-r--r--core/jni/Android.bp3
-rw-r--r--core/jni/com_android_internal_content_FileSystemUtils.cpp24
-rw-r--r--core/proto/android/widget/remoteviews.proto18
-rw-r--r--core/res/Android.bp1
-rw-r--r--core/res/AndroidManifest.xml3
-rw-r--r--core/res/res/values-af/strings.xml46
-rw-r--r--core/res/res/values-am/strings.xml30
-rw-r--r--core/res/res/values-ar/strings.xml28
-rw-r--r--core/res/res/values-as/strings.xml1
-rw-r--r--core/res/res/values-az/strings.xml28
-rw-r--r--core/res/res/values-b+sr+Latn/strings.xml28
-rw-r--r--core/res/res/values-be/strings.xml28
-rw-r--r--core/res/res/values-bg/strings.xml30
-rw-r--r--core/res/res/values-bn/strings.xml28
-rw-r--r--core/res/res/values-bs/strings.xml28
-rw-r--r--core/res/res/values-ca/strings.xml28
-rw-r--r--core/res/res/values-cs/strings.xml28
-rw-r--r--core/res/res/values-da/strings.xml28
-rw-r--r--core/res/res/values-de/strings.xml28
-rw-r--r--core/res/res/values-el/strings.xml28
-rw-r--r--core/res/res/values-en-rAU/strings.xml28
-rw-r--r--core/res/res/values-en-rCA/strings.xml1
-rw-r--r--core/res/res/values-en-rGB/strings.xml28
-rw-r--r--core/res/res/values-en-rIN/strings.xml28
-rw-r--r--core/res/res/values-en-rXC/strings.xml1
-rw-r--r--core/res/res/values-es-rUS/strings.xml62
-rw-r--r--core/res/res/values-es/strings.xml90
-rw-r--r--core/res/res/values-et/strings.xml28
-rw-r--r--core/res/res/values-eu/strings.xml28
-rw-r--r--core/res/res/values-fa/strings.xml32
-rw-r--r--core/res/res/values-fi/strings.xml28
-rw-r--r--core/res/res/values-fr-rCA/strings.xml58
-rw-r--r--core/res/res/values-fr/strings.xml30
-rw-r--r--core/res/res/values-gl/strings.xml50
-rw-r--r--core/res/res/values-gu/strings.xml1
-rw-r--r--core/res/res/values-hi/strings.xml1
-rw-r--r--core/res/res/values-hr/strings.xml28
-rw-r--r--core/res/res/values-hu/strings.xml28
-rw-r--r--core/res/res/values-hy/strings.xml30
-rw-r--r--core/res/res/values-in/strings.xml28
-rw-r--r--core/res/res/values-is/strings.xml28
-rw-r--r--core/res/res/values-it-feminine/strings.xml26
-rw-r--r--core/res/res/values-it-masculine/strings.xml26
-rw-r--r--core/res/res/values-it-neuter/strings.xml26
-rw-r--r--core/res/res/values-it/strings.xml76
-rw-r--r--core/res/res/values-iw/strings.xml30
-rw-r--r--core/res/res/values-ja/strings.xml32
-rw-r--r--core/res/res/values-ka/strings.xml1
-rw-r--r--core/res/res/values-kk/strings.xml30
-rw-r--r--core/res/res/values-km/strings.xml28
-rw-r--r--core/res/res/values-kn/strings.xml3
-rw-r--r--core/res/res/values-ko/strings.xml30
-rw-r--r--core/res/res/values-ky/strings.xml30
-rw-r--r--core/res/res/values-lo/strings.xml28
-rw-r--r--core/res/res/values-lt/strings.xml28
-rw-r--r--core/res/res/values-lv/strings.xml46
-rw-r--r--core/res/res/values-mk/strings.xml48
-rw-r--r--core/res/res/values-ml/strings.xml28
-rw-r--r--core/res/res/values-mn/strings.xml30
-rw-r--r--core/res/res/values-mr/strings.xml1
-rw-r--r--core/res/res/values-ms/strings.xml1
-rw-r--r--core/res/res/values-my/strings.xml28
-rw-r--r--core/res/res/values-nb/strings.xml28
-rw-r--r--core/res/res/values-ne/strings.xml28
-rw-r--r--core/res/res/values-nl/strings.xml28
-rw-r--r--core/res/res/values-or/strings.xml30
-rw-r--r--core/res/res/values-pa/strings.xml28
-rw-r--r--core/res/res/values-pl/strings.xml1
-rw-r--r--core/res/res/values-pt-rBR/strings.xml28
-rw-r--r--core/res/res/values-pt-rPT/strings.xml1
-rw-r--r--core/res/res/values-pt/strings.xml28
-rw-r--r--core/res/res/values-ro/strings.xml28
-rw-r--r--core/res/res/values-ru/strings.xml28
-rw-r--r--core/res/res/values-si/strings.xml28
-rw-r--r--core/res/res/values-sk/strings.xml28
-rw-r--r--core/res/res/values-sl/strings.xml1
-rw-r--r--core/res/res/values-sq/strings.xml29
-rw-r--r--core/res/res/values-sr/strings.xml28
-rw-r--r--core/res/res/values-sv/strings.xml28
-rw-r--r--core/res/res/values-sw/strings.xml30
-rw-r--r--core/res/res/values-ta/strings.xml28
-rw-r--r--core/res/res/values-te/strings.xml28
-rw-r--r--core/res/res/values-th/strings.xml3
-rw-r--r--core/res/res/values-tl/strings.xml3
-rw-r--r--core/res/res/values-tr/strings.xml28
-rw-r--r--core/res/res/values-uk/strings.xml28
-rw-r--r--core/res/res/values-ur/strings.xml1
-rw-r--r--core/res/res/values-uz/strings.xml28
-rw-r--r--core/res/res/values-vi/strings.xml28
-rw-r--r--core/res/res/values-zh-rCN/strings.xml28
-rw-r--r--core/res/res/values-zh-rHK/strings.xml28
-rw-r--r--core/res/res/values-zh-rTW/strings.xml28
-rw-r--r--core/res/res/values-zu/strings.xml28
-rw-r--r--core/res/res/values/config.xml7
-rw-r--r--core/res/res/values/config_device_idle.xml12
-rw-r--r--core/res/res/values/symbols.xml4
-rw-r--r--core/tests/coretests/src/android/app/servertransaction/ClientTransactionListenerControllerTest.java2
-rw-r--r--core/tests/coretests/src/android/view/InsetsControllerTest.java6
-rw-r--r--core/tests/coretests/src/android/view/ViewGroupTest.java56
-rw-r--r--core/tests/coretests/src/android/widget/RemoteViewsSerializersTest.kt94
-rw-r--r--libs/WindowManager/Shell/res/values-af/strings.xml9
-rw-r--r--libs/WindowManager/Shell/res/values-am/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-ar/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-az/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-bg/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-bn/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-bs/strings.xml2
-rw-r--r--libs/WindowManager/Shell/res/values-cs/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-da/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-de/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-el/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-en-rAU/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-en-rGB/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-en-rIN/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-es-rUS/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-es/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-et/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-eu/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-fa/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-fi/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-fr-rCA/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-fr/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-gl/strings.xml6
-rw-r--r--libs/WindowManager/Shell/res/values-gu/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-hi/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-hu/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-in/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-is/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-it/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-iw/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-kk/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-ko/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-lt/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-lv/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-mk/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-mn/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-my/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-nb/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-or/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-pa/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-ro/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-si/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-sk/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-sq/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-sv/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-sw/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-ta/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-tr/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-uk/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-vi/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-zh-rCN/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-zh-rHK/strings.xml3
-rw-r--r--libs/WindowManager/Shell/res/values-zh-rTW/strings.xml3
-rw-r--r--libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java22
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/OWNERS6
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java3
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewDragController.kt5
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java5
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java29
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java8
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java9
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt5
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt14
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksTransitionObserver.kt6
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS1
-rw-r--r--libs/WindowManager/Shell/tests/flicker/service/src/com/android/wm/shell/flicker/service/desktopmode/scenarios/MinimizeWindowOnAppOpen.kt80
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt47
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt57
-rw-r--r--libs/androidfw/Android.bp3
-rw-r--r--libs/hwui/jni/ImageDecoder.cpp4
-rw-r--r--media/jni/android_media_ImageWriter.cpp8
-rw-r--r--packages/CompanionDeviceManager/res/values-es-rUS/strings.xml2
-rw-r--r--packages/InputDevices/res/values-af/strings.xml6
-rw-r--r--packages/InputDevices/res/values-gl/strings.xml6
-rw-r--r--packages/PackageInstaller/res/values-fr-rCA-feminine/strings.xml21
-rw-r--r--packages/PackageInstaller/res/values-fr-rCA-masculine/strings.xml21
-rw-r--r--packages/PackageInstaller/res/values-fr-rCA-neuter/strings.xml21
-rw-r--r--packages/PackageInstaller/res/values-fr-rCA/strings.xml8
-rw-r--r--packages/PackageInstaller/res/values-it-feminine/strings.xml20
-rw-r--r--packages/PackageInstaller/res/values-it-masculine/strings.xml20
-rw-r--r--packages/PackageInstaller/res/values-it-neuter/strings.xml20
-rw-r--r--packages/PackageInstaller/res/values-it/strings.xml2
-rw-r--r--packages/PrintSpooler/res/values-es-rUS/strings.xml12
-rw-r--r--packages/PrintSpooler/res/values-es/strings.xml6
-rw-r--r--packages/PrintSpooler/res/values-fr-rCA/strings.xml8
-rw-r--r--packages/PrintSpooler/res/values-it/strings.xml10
-rw-r--r--packages/SettingsLib/ProfileSelector/res/values-fr-rCA/strings.xml2
-rw-r--r--packages/SettingsLib/SearchWidget/res/values-fa/strings.xml2
-rw-r--r--packages/SettingsLib/SpaPrivileged/res/values-fr-rCA/strings.xml2
-rw-r--r--packages/SettingsLib/aconfig/settingslib.aconfig7
-rw-r--r--packages/SettingsLib/res/values-ar/strings.xml18
-rw-r--r--packages/SettingsLib/res/values-es-rUS-feminine/strings.xml24
-rw-r--r--packages/SettingsLib/res/values-es-rUS-masculine/strings.xml24
-rw-r--r--packages/SettingsLib/res/values-es-rUS-neuter/strings.xml24
-rw-r--r--packages/SettingsLib/res/values-es-rUS/arrays.xml2
-rw-r--r--packages/SettingsLib/res/values-es-rUS/strings.xml20
-rw-r--r--packages/SettingsLib/res/values-es/strings.xml10
-rw-r--r--packages/SettingsLib/res/values-fr-rCA/strings.xml16
-rw-r--r--packages/SettingsLib/res/values-gl/strings.xml18
-rw-r--r--packages/SettingsLib/res/values-it/strings.xml12
-rw-r--r--packages/SettingsLib/res/values-kk/arrays.xml4
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryUtils.java14
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatteryUtilsTest.java19
-rw-r--r--packages/SystemUI/Android.bp4
-rw-r--r--packages/SystemUI/aconfig/systemui.aconfig11
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt34
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaScenePicker.kt26
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt9
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt96
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/PredictiveBackHandler.kt15
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutState.kt18
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitions.kt21
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt12
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDslImpl.kt25
-rw-r--r--packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt161
-rw-r--r--packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt50
-rw-r--r--packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/Transition.kt12
-rw-r--r--packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/TransitionDslTest.kt26
-rw-r--r--packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/subjects/TransitionStateSubject.kt19
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalMetricsStartableTest.kt138
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/communal/log/CommunalMetricsLoggerTest.kt26
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractorTest.kt78
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropStateTest.kt21
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/EditTileListStateTest.kt35
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt37
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinatorTest.kt2
-rw-r--r--packages/SystemUI/res-keyguard/values-es-rUS/strings.xml8
-rw-r--r--packages/SystemUI/res-keyguard/values-es/strings.xml2
-rw-r--r--packages/SystemUI/res-keyguard/values-eu/strings.xml2
-rw-r--r--packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml6
-rw-r--r--packages/SystemUI/res-keyguard/values-it/strings.xml8
-rw-r--r--packages/SystemUI/res-product/values-es/strings.xml2
-rw-r--r--packages/SystemUI/res-product/values-fr-rCA-feminine/strings.xml23
-rw-r--r--packages/SystemUI/res-product/values-fr-rCA-masculine/strings.xml23
-rw-r--r--packages/SystemUI/res-product/values-fr-rCA-neuter/strings.xml23
-rw-r--r--packages/SystemUI/res-product/values-fr-rCA/strings.xml10
-rw-r--r--packages/SystemUI/res/drawable/ic_arrow_back_2.xml24
-rw-r--r--packages/SystemUI/res/drawable/ic_check_box_outline_blank.xml24
-rw-r--r--packages/SystemUI/res/drawable/ic_radio_button_unchecked.xml24
-rw-r--r--packages/SystemUI/res/layout/custom_trace_settings_dialog.xml167
-rw-r--r--packages/SystemUI/res/layout/ongoing_activity_chip.xml11
-rw-r--r--packages/SystemUI/res/raw/trackpad_back_edu.json1
-rw-r--r--packages/SystemUI/res/values-af/strings.xml137
-rw-r--r--packages/SystemUI/res/values-af/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-am/strings.xml95
-rw-r--r--packages/SystemUI/res/values-am/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ar/strings.xml92
-rw-r--r--packages/SystemUI/res/values-ar/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-as/strings.xml42
-rw-r--r--packages/SystemUI/res/values-az/strings.xml95
-rw-r--r--packages/SystemUI/res/values-az/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-b+sr+Latn/strings.xml46
-rw-r--r--packages/SystemUI/res/values-b+sr+Latn/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-be/strings.xml49
-rw-r--r--packages/SystemUI/res/values-be/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-bg/strings.xml95
-rw-r--r--packages/SystemUI/res/values-bg/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-bn/strings.xml81
-rw-r--r--packages/SystemUI/res/values-bn/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-bs/strings.xml76
-rw-r--r--packages/SystemUI/res/values-bs/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ca/strings.xml49
-rw-r--r--packages/SystemUI/res/values-ca/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-cs/strings.xml95
-rw-r--r--packages/SystemUI/res/values-cs/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-da/strings.xml95
-rw-r--r--packages/SystemUI/res/values-da/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-de/strings.xml95
-rw-r--r--packages/SystemUI/res/values-de/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-el/strings.xml95
-rw-r--r--packages/SystemUI/res/values-el/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-en-rAU/strings.xml95
-rw-r--r--packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-en-rCA/strings.xml25
-rw-r--r--packages/SystemUI/res/values-en-rGB/strings.xml95
-rw-r--r--packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-en-rIN/strings.xml95
-rw-r--r--packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-en-rXC/strings.xml25
-rw-r--r--packages/SystemUI/res/values-es-feminine/strings.xml23
-rw-r--r--packages/SystemUI/res/values-es-masculine/strings.xml23
-rw-r--r--packages/SystemUI/res/values-es-neuter/strings.xml23
-rw-r--r--packages/SystemUI/res/values-es-rUS-feminine/strings.xml23
-rw-r--r--packages/SystemUI/res/values-es-rUS-masculine/strings.xml23
-rw-r--r--packages/SystemUI/res/values-es-rUS-neuter/strings.xml23
-rw-r--r--packages/SystemUI/res/values-es-rUS/strings.xml107
-rw-r--r--packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-es/strings.xml109
-rw-r--r--packages/SystemUI/res/values-es/tiles_states_strings.xml12
-rw-r--r--packages/SystemUI/res/values-et/strings.xml95
-rw-r--r--packages/SystemUI/res/values-et/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-eu/strings.xml95
-rw-r--r--packages/SystemUI/res/values-eu/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-fa/strings.xml92
-rw-r--r--packages/SystemUI/res/values-fa/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-fi/strings.xml95
-rw-r--r--packages/SystemUI/res/values-fi/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-fr-rCA-feminine/strings.xml24
-rw-r--r--packages/SystemUI/res/values-fr-rCA-masculine/strings.xml24
-rw-r--r--packages/SystemUI/res/values-fr-rCA-neuter/strings.xml24
-rw-r--r--packages/SystemUI/res/values-fr-rCA/strings.xml101
-rw-r--r--packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml24
-rw-r--r--packages/SystemUI/res/values-fr/strings.xml95
-rw-r--r--packages/SystemUI/res/values-fr/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-gl/strings.xml75
-rw-r--r--packages/SystemUI/res/values-gl/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-gu/strings.xml88
-rw-r--r--packages/SystemUI/res/values-hi/strings.xml79
-rw-r--r--packages/SystemUI/res/values-hr/strings.xml49
-rw-r--r--packages/SystemUI/res/values-hr/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-hu/strings.xml95
-rw-r--r--packages/SystemUI/res/values-hu/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-hy/strings.xml49
-rw-r--r--packages/SystemUI/res/values-hy/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-in/strings.xml95
-rw-r--r--packages/SystemUI/res/values-in/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-is/strings.xml95
-rw-r--r--packages/SystemUI/res/values-is/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-it-feminine/strings.xml25
-rw-r--r--packages/SystemUI/res/values-it-masculine/strings.xml25
-rw-r--r--packages/SystemUI/res/values-it-neuter/strings.xml25
-rw-r--r--packages/SystemUI/res/values-it/strings.xml134
-rw-r--r--packages/SystemUI/res/values-it/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-iw/strings.xml92
-rw-r--r--packages/SystemUI/res/values-iw/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ja/strings.xml36
-rw-r--r--packages/SystemUI/res/values-ja/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ka/strings.xml27
-rw-r--r--packages/SystemUI/res/values-kk/strings.xml97
-rw-r--r--packages/SystemUI/res/values-kk/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-km/strings.xml49
-rw-r--r--packages/SystemUI/res/values-km/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-kn/strings.xml27
-rw-r--r--packages/SystemUI/res/values-ko/strings.xml95
-rw-r--r--packages/SystemUI/res/values-ko/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ky/strings.xml49
-rw-r--r--packages/SystemUI/res/values-ky/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-lo/strings.xml36
-rw-r--r--packages/SystemUI/res/values-lo/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-lt/strings.xml84
-rw-r--r--packages/SystemUI/res/values-lt/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-lv/strings.xml95
-rw-r--r--packages/SystemUI/res/values-lv/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-mk/strings.xml95
-rw-r--r--packages/SystemUI/res/values-mk/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ml/strings.xml46
-rw-r--r--packages/SystemUI/res/values-ml/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-mn/strings.xml95
-rw-r--r--packages/SystemUI/res/values-mn/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-mr/strings.xml27
-rw-r--r--packages/SystemUI/res/values-ms/strings.xml27
-rw-r--r--packages/SystemUI/res/values-my/strings.xml92
-rw-r--r--packages/SystemUI/res/values-my/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-nb/strings.xml95
-rw-r--r--packages/SystemUI/res/values-nb/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ne/strings.xml37
-rw-r--r--packages/SystemUI/res/values-ne/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-nl/strings.xml33
-rw-r--r--packages/SystemUI/res/values-nl/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-or/strings.xml97
-rw-r--r--packages/SystemUI/res/values-or/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-pa/strings.xml95
-rw-r--r--packages/SystemUI/res/values-pa/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-pl/strings.xml45
-rw-r--r--packages/SystemUI/res/values-pt-rBR/strings.xml46
-rw-r--r--packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-pt-rPT/strings.xml27
-rw-r--r--packages/SystemUI/res/values-pt/strings.xml46
-rw-r--r--packages/SystemUI/res/values-pt/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ro/strings.xml95
-rw-r--r--packages/SystemUI/res/values-ro/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ru/strings.xml49
-rw-r--r--packages/SystemUI/res/values-ru/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-si/strings.xml95
-rw-r--r--packages/SystemUI/res/values-si/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-sk/strings.xml95
-rw-r--r--packages/SystemUI/res/values-sk/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-sl/strings.xml42
-rw-r--r--packages/SystemUI/res/values-sq/strings.xml95
-rw-r--r--packages/SystemUI/res/values-sq/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-sr/strings.xml46
-rw-r--r--packages/SystemUI/res/values-sr/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-sv/strings.xml95
-rw-r--r--packages/SystemUI/res/values-sv/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-sw/strings.xml95
-rw-r--r--packages/SystemUI/res/values-sw/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ta/strings.xml95
-rw-r--r--packages/SystemUI/res/values-ta/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-te/strings.xml48
-rw-r--r--packages/SystemUI/res/values-te/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-th/strings.xml45
-rw-r--r--packages/SystemUI/res/values-tl/strings.xml45
-rw-r--r--packages/SystemUI/res/values-tr/strings.xml95
-rw-r--r--packages/SystemUI/res/values-tr/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-uk/strings.xml95
-rw-r--r--packages/SystemUI/res/values-uk/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-ur/strings.xml42
-rw-r--r--packages/SystemUI/res/values-uz/strings.xml49
-rw-r--r--packages/SystemUI/res/values-uz/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-vi/strings.xml95
-rw-r--r--packages/SystemUI/res/values-vi/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-zh-rCN/strings.xml95
-rw-r--r--packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-zh-rHK/strings.xml95
-rw-r--r--packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-zh-rTW/strings.xml95
-rw-r--r--packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values-zu/strings.xml49
-rw-r--r--packages/SystemUI/res/values-zu/tiles_states_strings.xml8
-rw-r--r--packages/SystemUI/res/values/dimens.xml6
-rw-r--r--packages/SystemUI/res/values/strings.xml4
-rw-r--r--packages/SystemUI/src/com/android/systemui/SystemUIApplication.java15
-rw-r--r--packages/SystemUI/src/com/android/systemui/communal/CommunalMetricsStartable.kt72
-rw-r--r--packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalStartableModule.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/communal/shared/log/CommunalMetricsLogger.kt32
-rw-r--r--packages/SystemUI/src/com/android/systemui/education/dagger/ContextualEducationModule.kt21
-rw-r--r--packages/SystemUI/src/com/android/systemui/education/domain/interactor/ContextualEducationInteractor.kt17
-rw-r--r--packages/SystemUI/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractor.kt72
-rw-r--r--packages/SystemUI/src/com/android/systemui/education/shared/model/EducationInfo.kt30
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperCategoriesRepository.kt142
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperKeys.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/SystemShortcutsSource.kt15
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyboard/shortcut/shared/model/ShortcutCategory.kt7
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/composable/ShortcutHelper.kt196
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/model/ShortcutsUiState.kt3
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/view/ShortcutHelperActivity.kt1
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/viewmodel/ShortcutHelperViewModel.kt61
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt34
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardDismissActionBinder.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java103
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/DragAndDropState.kt38
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/EditTileListState.kt27
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/Tile.kt15
-rw-r--r--packages/SystemUI/src/com/android/systemui/recordissue/CustomTraceSettingsDialogDelegate.kt236
-rw-r--r--packages/SystemUI/src/com/android/systemui/recordissue/CustomTraceState.kt74
-rw-r--r--packages/SystemUI/src/com/android/systemui/recordissue/IssueRecordingState.kt12
-rw-r--r--packages/SystemUI/src/com/android/systemui/recordissue/RecordIssueDialogDelegate.kt36
-rw-r--r--packages/SystemUI/src/com/android/systemui/recordissue/TraceurMessageSender.kt19
-rw-r--r--packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt11
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/policy/WorkProfilePolicy.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarModule.kt14
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinator.kt18
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconManager.kt12
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconPack.java20
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationCompactHeadsUpEvent.kt26
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java23
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java150
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragment.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt140
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLog.kt27
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLogger.kt58
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepository.kt19
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallModel.kt8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/NetworkNameModel.kt10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/CastControllerImpl.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/BackGestureTutorialScreen.kt130
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerWindowlessMagnifierTest.java263
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperCategoriesRepositoryTest.kt90
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/keyboard/shortcut/ui/viewmodel/ShortcutHelperViewModelTest.kt130
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt63
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaControlPanelTest.kt4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt21
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerImplTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/data/repository/StatusBarModeRepositoryImplTest.kt6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowControllerTest.kt5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentViewTest.kt2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmTest.kt108
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt170
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLoggerTest.kt75
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepositoryTest.kt4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt118
-rw-r--r--packages/SystemUI/tests/utils/src/android/hardware/input/FakeInputManager.kt27
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/SysuiTestCaseExt.kt8
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/education/data/repository/FakeContextualEducationRepository.kt10
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/education/domain/interactor/ContextualEducationInteractorKosmos.kt2
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractorKosmos.kt8
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperTestHelper.kt2
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/keyboard/shortcut/data/source/FakeKeyboardShortcutGroupsSource.kt4
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorKosmos.kt4
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/startable/SceneContainerStartableKosmos.kt3
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt4
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepositoryKosmos.kt3
-rw-r--r--packages/VpnDialogs/res/values-fr-rCA/strings.xml2
-rw-r--r--ravenwood/test-authors.md6
-rw-r--r--services/accessibility/Android.bp11
-rw-r--r--services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerConstants.java33
-rw-r--r--services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManager.java169
-rw-r--r--services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerStatsdLogger.java56
-rw-r--r--services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtils.java19
-rw-r--r--services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityNodePathBuilder.java30
-rw-r--r--services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java210
-rw-r--r--services/core/java/com/android/server/PackageWatchdog.java29
-rw-r--r--services/core/java/com/android/server/accounts/AccountManagerService.java12
-rw-r--r--services/core/java/com/android/server/am/OomAdjuster.java5
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java507
-rw-r--r--services/core/java/com/android/server/audio/SoundDoseHelper.java6
-rw-r--r--services/core/java/com/android/server/biometrics/BiometricService.java51
-rw-r--r--services/core/java/com/android/server/display/DisplayBrightnessState.java10
-rw-r--r--services/core/java/com/android/server/display/brightness/BrightnessReason.java47
-rw-r--r--services/core/java/com/android/server/display/brightness/strategy/OverrideBrightnessStrategy.java14
-rw-r--r--services/core/java/com/android/server/inputmethod/DefaultImeVisibilityApplier.java15
-rw-r--r--services/core/java/com/android/server/inputmethod/IInputMethodClientInvoker.java11
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodManagerService.java153
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodMenuController.java14
-rw-r--r--services/core/java/com/android/server/location/contexthub/ContextHubTestModeManager.java74
-rw-r--r--services/core/java/com/android/server/location/contexthub/IContextHubWrapper.java45
-rw-r--r--services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java12
-rw-r--r--services/core/java/com/android/server/net/watchlist/OWNERS1
-rw-r--r--services/core/java/com/android/server/policy/ModifierShortcutManager.java171
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java7
-rw-r--r--services/core/java/com/android/server/power/PowerGroup.java5
-rw-r--r--services/core/java/com/android/server/power/PowerManagerService.java19
-rw-r--r--services/core/java/com/android/server/power/stats/GnssPowerCalculator.java2
-rw-r--r--services/core/java/com/android/server/power/stats/PowerStatsExporter.java9
-rw-r--r--services/core/java/com/android/server/vibrator/Vibration.java37
-rw-r--r--services/core/java/com/android/server/vibrator/VibratorControlService.java5
-rw-r--r--services/core/java/com/android/server/wm/Dimmer.java261
-rw-r--r--services/core/java/com/android/server/wm/DimmerAnimationHelper.java32
-rw-r--r--services/core/java/com/android/server/wm/DisplayArea.java2
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java12
-rw-r--r--services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java117
-rw-r--r--services/core/java/com/android/server/wm/InsetsPolicy.java9
-rw-r--r--services/core/java/com/android/server/wm/InsetsSourceProvider.java7
-rw-r--r--services/core/java/com/android/server/wm/InsetsStateController.java17
-rw-r--r--services/core/java/com/android/server/wm/LegacyDimmer.java348
-rw-r--r--services/core/java/com/android/server/wm/RootWindowContainer.java11
-rw-r--r--services/core/java/com/android/server/wm/Session.java37
-rw-r--r--services/core/java/com/android/server/wm/SmoothDimmer.java228
-rw-r--r--services/core/java/com/android/server/wm/Task.java2
-rw-r--r--services/core/java/com/android/server/wm/TaskFragment.java5
-rw-r--r--services/core/java/com/android/server/wm/Transition.java2
-rw-r--r--services/core/java/com/android/server/wm/TransitionController.java3
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerInternal.java8
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java4
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java9
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java2
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java3
-rw-r--r--services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java5
-rw-r--r--services/tests/displayservicetests/src/com/android/server/display/brightness/BrightnessReasonTest.java26
-rw-r--r--services/tests/powerservicetests/src/com/android/server/power/PowerGroupTest.java11
-rw-r--r--services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManagerTest.java192
-rw-r--r--services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtilsTest.java38
-rw-r--r--services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/TestUtils.java40
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/SystemZenRulesTest.java24
-rw-r--r--services/tests/wmtests/src/com/android/server/policy/ModifierShortcutManagerTests.java5
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java5
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/DimmerTests.java106
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java4
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java2
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/InsetsSourceProviderTest.java22
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java10
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java22
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java2
-rw-r--r--tests/PackageWatchdog/src/com/android/server/CrashRecoveryTest.java324
-rw-r--r--tools/aapt2/Android.bp5
605 files changed, 13474 insertions, 6760 deletions
diff --git a/OWNERS b/OWNERS
index 7ceca321283b..bde7ab22a043 100644
--- a/OWNERS
+++ b/OWNERS
@@ -28,7 +28,7 @@ per-file */TEST_MAPPING = *
# Support bulk translation updates
per-file */res*/values*/*.xml = byi@google.com, delphij@google.com
-per-file **.bp,**.mk = hansson@google.com, joeo@google.com, lamontjones@google.com
+per-file **.bp,**.mk =joeo@google.com, lamontjones@google.com
per-file TestProtoLibraries.bp = file:platform/platform_testing:/libraries/health/OWNERS
per-file TestProtoLibraries.bp = file:platform/tools/tradefederation:/OWNERS
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/CipherEncryptPerfTest.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/CipherEncryptPerfTest.java
index c69ae39846bd..36266de04d23 100644
--- a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/CipherEncryptPerfTest.java
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/CipherEncryptPerfTest.java
@@ -23,6 +23,9 @@ import androidx.test.filters.LargeTest;
import org.conscrypt.TestUtils;
import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Cipher;
@@ -91,21 +94,17 @@ public final class CipherEncryptPerfTest {
}
}
- private Object[] getParams() {
- return new Object[][] {
- new Object[] {new Config(BufferType.ARRAY,
- MyCipherFactory.CONSCRYPT,
- Transformation.AES_CBC_PKCS5)},
- new Object[] {new Config(BufferType.ARRAY,
- MyCipherFactory.CONSCRYPT,
- Transformation.AES_ECB_PKCS5)},
- new Object[] {new Config(BufferType.ARRAY,
- MyCipherFactory.CONSCRYPT,
- Transformation.AES_GCM_NO)},
- new Object[] {new Config(BufferType.ARRAY,
- MyCipherFactory.CONSCRYPT,
- Transformation.AES_GCM_SIV)},
- };
+ public Collection <Object[]> getParams() {
+ final List<Object[]> params = new ArrayList<>();
+ for (BufferType bufferType : BufferType.values()) {
+ for (CipherFactory cipherFactory : MyCipherFactory.values()) {
+ for (Transformation transformation : Transformation.values()) {
+ params.add(new Object[] {new Config(
+ bufferType, cipherFactory, transformation)});
+ }
+ }
+ }
+ return params;
}
private EncryptStrategy encryptStrategy;
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ClientSocketPerfTest.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ClientSocketPerfTest.java
index dd9f4eb7e8d3..2643bae4060f 100644
--- a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ClientSocketPerfTest.java
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ClientSocketPerfTest.java
@@ -30,6 +30,9 @@ import java.io.IOException;
import java.io.OutputStream;
import java.net.SocketException;
import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
@@ -104,19 +107,26 @@ public final class ClientSocketPerfTest {
}
}
- private Object[] getParams() {
- return new Object[][] {
- new Object[] {new Config(
- EndpointFactory.CONSCRYPT,
- EndpointFactory.CONSCRYPT,
- 64,
- "AES128-GCM",
- ChannelType.CHANNEL,
- PerfTestProtocol.TLSv13)},
- };
+ public Collection getParams() {
+ final List<Object[]> params = new ArrayList<>();
+ for (EndpointFactory endpointFactory : EndpointFactory.values()) {
+ for (ChannelType channelType : ChannelType.values()) {
+ for (PerfTestProtocol protocol : PerfTestProtocol.values()) {
+ params.add(new Object[] {new Config(endpointFactory,
+ endpointFactory, 64, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+ channelType, protocol)});
+ params.add(new Object[] {new Config(endpointFactory,
+ endpointFactory, 512, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+ channelType, protocol)});
+ params.add(new Object[] {new Config(endpointFactory,
+ endpointFactory, 4096, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+ channelType, protocol)});
+ }
+ }
+ }
+ return params;
}
-
private ClientEndpoint client;
private ServerEndpoint server;
private byte[] message;
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineFactory.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineFactory.java
new file mode 100644
index 000000000000..8a0d52dff3b1
--- /dev/null
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineFactory.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.conscrypt;
+
+import org.conscrypt.TestUtils;
+import java.security.Security;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLEngine;
+
+
+/**
+ * Factory for {@link SSLEngine} instances.
+ */
+public class EngineFactory {
+ public EngineFactory() {
+ this(newConscryptClientContext(), newConscryptServerContext());
+ }
+
+ private EngineFactory(SSLContext clientContext, SSLContext serverContext) {
+ this.clientContext = clientContext;
+ this.serverContext = serverContext;
+ }
+
+ private final SSLContext clientContext;
+ private final SSLContext serverContext;
+
+ public SSLEngine newClientEngine(String cipher) {
+ SSLEngine engine = initEngine(clientContext.createSSLEngine(), cipher, true);
+ return engine;
+ }
+
+ public SSLEngine newServerEngine(String cipher) {
+ SSLEngine engine = initEngine(serverContext.createSSLEngine(), cipher, false);
+ return engine;
+ }
+
+ public void dispose(SSLEngine engine) {
+ engine.closeOutbound();
+ }
+
+ private static SSLContext newConscryptClientContext() {
+ return TestUtils.newClientSslContext(TestUtils.getConscryptProvider());
+ }
+
+ private static SSLContext newConscryptServerContext() {
+ return TestUtils.newServerSslContext(TestUtils.getConscryptProvider());
+ }
+
+ static SSLEngine initEngine(SSLEngine engine, String cipher, boolean client) {
+ engine.setEnabledProtocols(new String[]{"TLSv1.2", "TLSv1.3"});
+ engine.setEnabledCipherSuites(new String[] {cipher});
+ engine.setUseClientMode(client);
+ return engine;
+ }
+} \ No newline at end of file
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineHandshakePerfTest.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineHandshakePerfTest.java
new file mode 100644
index 000000000000..cd0ac96b41de
--- /dev/null
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineHandshakePerfTest.java
@@ -0,0 +1,207 @@
+/*
+ * Copyright 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Copyright 2017 The Netty Project
+ *
+ * The Netty Project licenses this file to you under the Apache License,
+ * version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package android.conscrypt;
+
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import javax.net.ssl.SSLEngine;
+import javax.net.ssl.SSLEngineResult;
+import javax.net.ssl.SSLEngineResult.HandshakeStatus;
+import javax.net.ssl.SSLException;
+
+import junitparams.JUnitParamsRunner;
+import junitparams.Parameters;
+
+import android.perftests.utils.BenchmarkState;
+import android.perftests.utils.PerfStatusReporter;
+import androidx.test.filters.LargeTest;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Benchmark comparing handshake performance of various engine implementations to conscrypt.
+ */
+@RunWith(JUnitParamsRunner.class)
+@LargeTest
+public final class EngineHandshakePerfTest {
+ @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter();
+
+ /**
+ * Provider for the test configuration
+ */
+ private class Config {
+ BufferType a_bufferType;
+ String c_cipher;
+ int d_rttMillis;
+ Config(BufferType bufferType,
+ String cipher,
+ int rttMillis) {
+ a_bufferType = bufferType;
+ c_cipher = cipher;
+ d_rttMillis = rttMillis;
+ }
+ public BufferType bufferType() {
+ return a_bufferType;
+ }
+
+ public String cipher() {
+ return c_cipher;
+ }
+
+ public int rttMillis() {
+ return d_rttMillis;
+ }
+ }
+
+ public Collection getParams() {
+ final List<Object[]> params = new ArrayList<>();
+ for (BufferType bufferType : BufferType.values()) {
+ params.add(new Object[] {new Config(bufferType,
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", 100)});
+ }
+ return params;
+ }
+
+ private static final ByteBuffer EMPTY_BUFFER = ByteBuffer.allocateDirect(0);
+
+ private EngineFactory engineFactory = new EngineFactory();
+ private String cipher;
+ private int rttMillis;
+
+ private ByteBuffer clientApplicationBuffer;
+ private ByteBuffer clientPacketBuffer;
+ private ByteBuffer serverApplicationBuffer;
+ private ByteBuffer serverPacketBuffer;
+
+ private void setup(Config config) throws Exception {
+ cipher = config.cipher();
+ rttMillis = config.rttMillis();
+ BufferType bufferType = config.bufferType();
+
+ SSLEngine clientEngine = engineFactory.newClientEngine(cipher);
+ SSLEngine serverEngine = engineFactory.newServerEngine(cipher);
+
+ // Create the application and packet buffers for both endpoints.
+ clientApplicationBuffer = bufferType.newApplicationBuffer(clientEngine);
+ serverApplicationBuffer = bufferType.newApplicationBuffer(serverEngine);
+ clientPacketBuffer = bufferType.newPacketBuffer(clientEngine);
+ serverPacketBuffer = bufferType.newPacketBuffer(serverEngine);
+
+ engineFactory.dispose(clientEngine);
+ engineFactory.dispose(serverEngine);
+ }
+
+ @Test
+ @Parameters(method = "getParams")
+ public void handshake(Config config) throws Exception {
+ setup(config);
+ SSLEngine client = engineFactory.newClientEngine(cipher);
+ SSLEngine server = engineFactory.newServerEngine(cipher);
+ clientApplicationBuffer.clear();
+ clientPacketBuffer.clear();
+ serverApplicationBuffer.clear();
+ serverPacketBuffer.clear();
+
+ BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
+ while (state.keepRunning()) {
+ client.beginHandshake();
+ server.beginHandshake();
+ doHandshake(client, server);
+ }
+
+ engineFactory.dispose(client);
+ engineFactory.dispose(server);
+ }
+
+ private void doHandshake(SSLEngine client, SSLEngine server) throws SSLException {
+
+ BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
+ while (state.keepRunning()) {
+ // Send as many client-to-server messages as possible
+ doHalfHandshake(client, server, clientPacketBuffer, serverApplicationBuffer);
+
+ if (client.getHandshakeStatus() == HandshakeStatus.NOT_HANDSHAKING
+ && server.getHandshakeStatus() == HandshakeStatus.NOT_HANDSHAKING) {
+ return;
+ }
+
+ // Do the same with server-to-client messages
+ doHalfHandshake(server, client, serverPacketBuffer, clientApplicationBuffer);
+
+ if (client.getHandshakeStatus() == HandshakeStatus.NOT_HANDSHAKING
+ && server.getHandshakeStatus() == HandshakeStatus.NOT_HANDSHAKING) {
+ return;
+ }
+ }
+ }
+
+ private void doHalfHandshake(SSLEngine sender, SSLEngine receiver,
+ ByteBuffer senderPacketBuffer, ByteBuffer receiverApplicationBuffer)
+ throws SSLException {
+ SSLEngineResult senderResult;
+ SSLEngineResult receiverResult;
+
+ do {
+ senderResult = sender.wrap(EMPTY_BUFFER, senderPacketBuffer);
+ runDelegatedTasks(senderResult, sender);
+ senderPacketBuffer.flip();
+ receiverResult = receiver.unwrap(senderPacketBuffer, receiverApplicationBuffer);
+ runDelegatedTasks(receiverResult, receiver);
+ senderPacketBuffer.compact();
+ } while (senderResult.getHandshakeStatus() == HandshakeStatus.NEED_WRAP);
+
+ if (rttMillis > 0) {
+ try {
+ Thread.sleep(rttMillis / 2);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ private static void runDelegatedTasks(SSLEngineResult result, SSLEngine engine) {
+ if (result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_TASK) {
+ for (;;) {
+ Runnable task = engine.getDelegatedTask();
+ if (task == null) {
+ break;
+ }
+ task.run();
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineWrapPerfTest.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineWrapPerfTest.java
new file mode 100644
index 000000000000..1fee2183b11e
--- /dev/null
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/EngineWrapPerfTest.java
@@ -0,0 +1,221 @@
+/*
+ * Copyright 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Copyright 2017 The Netty Project
+ *
+ * The Netty Project licenses this file to you under the Apache License,
+ * version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package android.conscrypt;
+
+import static org.conscrypt.TestUtils.doEngineHandshake;
+import static org.conscrypt.TestUtils.newTextMessage;
+import static org.junit.Assert.assertEquals;
+
+import java.nio.ByteBuffer;
+import java.util.Locale;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import javax.net.ssl.SSLEngine;
+import javax.net.ssl.SSLEngineResult;
+import javax.net.ssl.SSLException;
+
+import android.perftests.utils.BenchmarkState;
+import android.perftests.utils.PerfStatusReporter;
+import androidx.test.filters.LargeTest;
+
+import junitparams.JUnitParamsRunner;
+import junitparams.Parameters;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Benchmark comparing performance of various engine implementations to conscrypt.
+ */
+@RunWith(JUnitParamsRunner.class)
+@LargeTest
+public final class EngineWrapPerfTest {
+ @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter();
+
+ /**
+ * Provider for the benchmark configuration
+ */
+ private class Config {
+ BufferType a_bufferType;
+ int c_messageSize;
+ String d_cipher;
+ Config(BufferType bufferType,
+ int messageSize,
+ String cipher) {
+ a_bufferType = bufferType;
+ c_messageSize = messageSize;
+ d_cipher = cipher;
+ }
+ public BufferType bufferType() {
+ return a_bufferType;
+ }
+
+ public int messageSize() {
+ return c_messageSize;
+ }
+
+ public String cipher() {
+ return d_cipher;
+ }
+ }
+
+ public Collection getParams() {
+ final List<Object[]> params = new ArrayList<>();
+ for (BufferType bufferType : BufferType.values()) {
+ params.add(new Object[] {new Config(bufferType, 64,
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256")});
+ params.add(new Object[] {new Config(bufferType, 512,
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256")});
+ params.add(new Object[] {new Config(bufferType, 4096,
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256")});
+ }
+ return params;
+ }
+
+
+ private EngineFactory engineFactory = new EngineFactory();
+ private String cipher;
+ private SSLEngine clientEngine;
+ private SSLEngine serverEngine;
+
+ private ByteBuffer messageBuffer;
+ private ByteBuffer clientApplicationBuffer;
+ private ByteBuffer clientPacketBuffer;
+ private ByteBuffer serverApplicationBuffer;
+ private ByteBuffer serverPacketBuffer;
+ private ByteBuffer preEncryptedBuffer;
+
+ private void setup(Config config) throws Exception {
+ cipher = config.cipher();
+ BufferType bufferType = config.bufferType();
+
+ clientEngine = engineFactory.newClientEngine(cipher);
+ serverEngine = engineFactory.newServerEngine(cipher);
+
+ // Create the application and packet buffers for both endpoints.
+ clientApplicationBuffer = bufferType.newApplicationBuffer(clientEngine);
+ serverApplicationBuffer = bufferType.newApplicationBuffer(serverEngine);
+ clientPacketBuffer = bufferType.newPacketBuffer(clientEngine);
+ serverPacketBuffer = bufferType.newPacketBuffer(serverEngine);
+
+ // Generate the message to be sent from the client.
+ int messageSize = config.messageSize();
+ messageBuffer = bufferType.newBuffer(messageSize);
+ messageBuffer.put(newTextMessage(messageSize));
+ messageBuffer.flip();
+
+ // Complete the initial TLS handshake.
+ doEngineHandshake(clientEngine, serverEngine, clientApplicationBuffer, clientPacketBuffer,
+ serverApplicationBuffer, serverPacketBuffer, true);
+
+ // Populate the pre-encrypted buffer for use with the unwrap benchmark.
+ preEncryptedBuffer = bufferType.newBuffer(clientEngine.getSession().getPacketBufferSize());
+ doWrap(messageBuffer, preEncryptedBuffer);
+ doUnwrap(preEncryptedBuffer, serverApplicationBuffer);
+ }
+
+ void teardown() {
+ engineFactory.dispose(clientEngine);
+ engineFactory.dispose(serverEngine);
+ }
+
+ @Test
+ @Parameters(method = "getParams")
+ public void wrap(Config config) throws Exception {
+ setup(config);
+
+ BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
+ while (state.keepRunning()) {
+ // Reset the buffers.
+ messageBuffer.position(0);
+ clientPacketBuffer.clear();
+ // Wrap the original message and create the encrypted data.
+ doWrap(messageBuffer, clientPacketBuffer);
+
+ // Lightweight comparison - just make sure the data length is correct.
+ assertEquals(preEncryptedBuffer.limit(), clientPacketBuffer.limit());
+ }
+ teardown();
+ }
+
+ /**
+ * Simple benchmark that sends a single message from client to server.
+ */
+ @Test
+ @Parameters(method = "getParams")
+ public void wrapAndUnwrap(Config config) throws Exception {
+ setup(config);
+
+ BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
+ while (state.keepRunning()) {
+ // Reset the buffers.
+ messageBuffer.position(0);
+ clientPacketBuffer.clear();
+ serverApplicationBuffer.clear();
+ // Wrap the original message and create the encrypted data.
+ doWrap(messageBuffer, clientPacketBuffer);
+
+ // Unwrap the encrypted data and get back the original result.
+ doUnwrap(clientPacketBuffer, serverApplicationBuffer);
+
+ // Lightweight comparison - just make sure the unencrypted data length is correct.
+ assertEquals(messageBuffer.limit(), serverApplicationBuffer.limit());
+ }
+ teardown();
+ }
+
+ private void doWrap(ByteBuffer src, ByteBuffer dst) throws SSLException {
+ // Wrap the original message and create the encrypted data.
+ verifyResult(src, clientEngine.wrap(src, dst));
+ dst.flip();
+ }
+
+ private void doUnwrap(ByteBuffer src, ByteBuffer dst) throws SSLException {
+ verifyResult(src, serverEngine.unwrap(src, dst));
+ dst.flip();
+ }
+
+ private void verifyResult(ByteBuffer src, SSLEngineResult result) {
+ if (result.getStatus() != SSLEngineResult.Status.OK) {
+ throw new RuntimeException("Operation returned unexpected result " + result);
+ }
+ if (result.bytesConsumed() != src.limit()) {
+ throw new RuntimeException(
+ String.format(Locale.US,
+ "Operation didn't consume all bytes. Expected %d, consumed %d.",
+ src.limit(), result.bytesConsumed()));
+ }
+ }
+} \ No newline at end of file
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ServerSocketPerfTest.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ServerSocketPerfTest.java
index ba2a65a17e84..4f285ff4eb94 100644
--- a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ServerSocketPerfTest.java
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/ServerSocketPerfTest.java
@@ -24,6 +24,9 @@ import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.io.OutputStream;
import java.net.SocketException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
@@ -94,15 +97,22 @@ public final class ServerSocketPerfTest {
}
}
- private Object[] getParams() {
- return new Object[][] {
- new Object[] {new Config(
- EndpointFactory.CONSCRYPT,
- EndpointFactory.CONSCRYPT,
- 64,
- "AES128-GCM",
- ChannelType.CHANNEL)},
- };
+ public Collection getParams() {
+ final List<Object[]> params = new ArrayList<>();
+ for (EndpointFactory endpointFactory : EndpointFactory.values()) {
+ for (ChannelType channelType : ChannelType.values()) {
+ params.add(new Object[] {new Config(endpointFactory,
+ endpointFactory, 64,
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", channelType)});
+ params.add(new Object[] {new Config(endpointFactory,
+ endpointFactory, 512,
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", channelType)});
+ params.add(new Object[] {new Config(endpointFactory,
+ endpointFactory, 4096,
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", channelType)});
+ }
+ }
+ return params;
}
private ClientEndpoint client;
@@ -121,7 +131,8 @@ public final class ServerSocketPerfTest {
final ChannelType channelType = config.channelType();
server = config.serverFactory().newServer(
- channelType, config.messageSize(), getCommonProtocolSuites(), ciphers(config));
+ channelType, config.messageSize(),
+ new String[] {"TLSv1.3", "TLSv1.2"}, ciphers(config));
server.setMessageProcessor(new MessageProcessor() {
@Override
public void processMessage(byte[] inMessage, int numBytes, OutputStream os) {
@@ -145,7 +156,8 @@ public final class ServerSocketPerfTest {
// Always use the same client for consistency across the benchmarks.
client = config.clientFactory().newClient(
- ChannelType.CHANNEL, server.port(), getCommonProtocolSuites(), ciphers(config));
+ ChannelType.CHANNEL, server.port(),
+ new String[] {"TLSv1.3", "TLSv1.2"}, ciphers(config));
client.start();
// Wait for the initial connection to complete.
diff --git a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/Transformation.java b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/Transformation.java
index 78fe73262e4c..3542b0a76803 100644
--- a/apct-tests/perftests/core/src/android/conscrypt/conscrypt/Transformation.java
+++ b/apct-tests/perftests/core/src/android/conscrypt/conscrypt/Transformation.java
@@ -31,7 +31,6 @@ public enum Transformation {
AES_CBC_PKCS5("AES", "CBC", "PKCS5Padding", new AesKeyGen()),
AES_ECB_PKCS5("AES", "ECB", "PKCS5Padding", new AesKeyGen()),
AES_GCM_NO("AES", "GCM", "NoPadding", new AesKeyGen()),
- AES_GCM_SIV("AES", "GCM_SIV", "NoPadding", new AesKeyGen()),
RSA_ECB_PKCS1("RSA", "ECB", "PKCS1Padding", new RsaKeyGen());
Transformation(String algorithm, String mode, String padding, KeyGen keyGen) {
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index cbabb0227763..90de7abf845c 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -2214,6 +2214,9 @@ public class Activity extends ContextThemeWrapper
notifyVoiceInteractionManagerServiceActivityEvent(
VoiceInteractionSession.VOICE_INTERACTION_ACTIVITY_EVENT_RESUME);
+ // Notify autofill
+ getAutofillClientController().onActivityPostResumed();
+
mCalled = true;
}
diff --git a/core/java/android/content/pm/multiuser.aconfig b/core/java/android/content/pm/multiuser.aconfig
index 5a3970295ac2..ce241c165d71 100644
--- a/core/java/android/content/pm/multiuser.aconfig
+++ b/core/java/android/content/pm/multiuser.aconfig
@@ -337,3 +337,13 @@ flag {
purpose: PURPOSE_BUGFIX
}
}
+
+flag {
+ name: "private_space_search_illustration_config"
+ namespace: "profile_experiences"
+ description: "Check config to show/hide the private space search illustration and search tile content in Hide Private Space settings page"
+ bug: "346612477"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
diff --git a/core/java/android/hardware/display/DisplayManagerInternal.java b/core/java/android/hardware/display/DisplayManagerInternal.java
index 811a834dff47..7353ddec74ac 100644
--- a/core/java/android/hardware/display/DisplayManagerInternal.java
+++ b/core/java/android/hardware/display/DisplayManagerInternal.java
@@ -37,6 +37,7 @@ import android.window.ScreenCapture;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
/**
@@ -470,6 +471,9 @@ public abstract class DisplayManagerInternal {
// Set to PowerManager.BRIGHTNESS_INVALID if there's no override.
public float screenBrightnessOverride;
+ // Tag used to identify the app window requesting the brightness override.
+ public CharSequence screenBrightnessOverrideTag;
+
// An override of the screen auto-brightness adjustment factor in the range -1 (dimmer) to
// 1 (brighter). Set to Float.NaN if there's no override.
public float screenAutoBrightnessAdjustmentOverride;
@@ -524,6 +528,7 @@ public abstract class DisplayManagerInternal {
policy = other.policy;
useProximitySensor = other.useProximitySensor;
screenBrightnessOverride = other.screenBrightnessOverride;
+ screenBrightnessOverrideTag = other.screenBrightnessOverrideTag;
screenAutoBrightnessAdjustmentOverride = other.screenAutoBrightnessAdjustmentOverride;
screenLowPowerBrightnessFactor = other.screenLowPowerBrightnessFactor;
blockScreenOn = other.blockScreenOn;
@@ -544,8 +549,9 @@ public abstract class DisplayManagerInternal {
return other != null
&& policy == other.policy
&& useProximitySensor == other.useProximitySensor
- && floatEquals(screenBrightnessOverride,
- other.screenBrightnessOverride)
+ && floatEquals(screenBrightnessOverride, other.screenBrightnessOverride)
+ && Objects.equals(screenBrightnessOverrideTag,
+ other.screenBrightnessOverrideTag)
&& floatEquals(screenAutoBrightnessAdjustmentOverride,
other.screenAutoBrightnessAdjustmentOverride)
&& screenLowPowerBrightnessFactor
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index da7997d6cc65..fe14d4570e9e 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -974,6 +974,11 @@ public class InputMethodService extends AbstractInputMethodService {
: InputMethodManager.RESULT_UNCHANGED_HIDDEN), null);
}
Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
+ if (android.view.inputmethod.Flags.refactorInsetsController()) {
+ // The hide request first finishes the animation and then proceeds to the server
+ // side, finally reaching here, marking this the end state.
+ ImeTracker.forLogging().onHidden(statsToken);
+ }
}
/**
@@ -3104,6 +3109,13 @@ public class InputMethodService extends AbstractInputMethodService {
ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_IME_SHOW_WINDOW);
+ if (android.view.inputmethod.Flags.refactorInsetsController()) {
+ // The ImeInsetsSourceProvider need the statsToken when dispatching the control
+ // (whenever the IME has drawn and its window is visible). Therefore, sending the
+ // statsToken here first.
+ notifyPreImeWindowVisibilityChanged(true /* visible */, statsToken);
+ }
+
ImeTracing.getInstance().triggerServiceDump("InputMethodService#showWindow", mDumper,
null /* icProto */);
Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "IMS.showWindow");
@@ -3127,7 +3139,9 @@ public class InputMethodService extends AbstractInputMethodService {
if (DEBUG) Log.v(TAG, "showWindow: draw decorView!");
mWindow.show();
mDecorViewWasVisible = true;
- applyVisibilityInInsetsConsumerIfNecessary(true /* setVisible */, statsToken);
+ if (!android.view.inputmethod.Flags.refactorInsetsController()) {
+ applyVisibilityInInsetsConsumerIfNecessary(true /* setVisible */, statsToken);
+ }
cancelImeSurfaceRemoval();
mInShowWindow = false;
Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
@@ -3238,6 +3252,20 @@ public class InputMethodService extends AbstractInputMethodService {
? mCurShowInputToken : mCurHideInputToken, setVisible, statsToken);
}
+ /**
+ * Notifies the ImeInsetsSourceProvider before the IME visibility changes.
+ *
+ * @param visible {@code true} if it became visible, {@code false} otherwise.
+ * @param statsToken the token tracking the current IME request.
+ */
+ private void notifyPreImeWindowVisibilityChanged(boolean visible,
+ @NonNull ImeTracker.Token statsToken) {
+ final var viewRootImpl = getWindow().getWindow().getDecorView().getViewRootImpl();
+ if (viewRootImpl != null) {
+ viewRootImpl.notifyImeVisibilityChanged(visible, statsToken);
+ }
+ }
+
private void finishViews(boolean finishingInput) {
if (mInputViewStarted) {
if (DEBUG) Log.v(TAG, "CALL: onFinishInputView");
@@ -3279,7 +3307,13 @@ public class InputMethodService extends AbstractInputMethodService {
ImeTracing.getInstance().triggerServiceDump("InputMethodService#hideWindow", mDumper,
null /* icProto */);
setImeWindowStatus(0, mBackDisposition);
- applyVisibilityInInsetsConsumerIfNecessary(false /* setVisible */, statsToken);
+ if (android.view.inputmethod.Flags.refactorInsetsController()) {
+ // The ImeInsetsSourceProvider need the statsToken when dispatching the control. We
+ // send the token here, so that another request in the provider can be cancelled.
+ notifyPreImeWindowVisibilityChanged(false /* visible */, statsToken);
+ } else {
+ applyVisibilityInInsetsConsumerIfNecessary(false /* setVisible */, statsToken);
+ }
mWindowVisible = false;
finishViews(false /* finishingInput */);
if (mDecorViewVisible) {
diff --git a/core/java/android/os/PowerManagerInternal.java b/core/java/android/os/PowerManagerInternal.java
index df353e56a540..ce3156e4816f 100644
--- a/core/java/android/os/PowerManagerInternal.java
+++ b/core/java/android/os/PowerManagerInternal.java
@@ -104,8 +104,10 @@ public abstract class PowerManagerInternal {
* This method must only be called by the window manager.
*
* @param brightness The overridden brightness, or Float.NaN to disable the override.
+ * @param tag Source identifier of the app window that requests the override.
*/
- public abstract void setScreenBrightnessOverrideFromWindowManager(float brightness);
+ public abstract void setScreenBrightnessOverrideFromWindowManager(
+ float brightness, CharSequence tag);
/**
* Used by the window manager to override the user activity timeout based on the
diff --git a/core/java/android/os/ZygoteProcess.java b/core/java/android/os/ZygoteProcess.java
index b1ef05a6f00c..6a2daeab5f0a 100644
--- a/core/java/android/os/ZygoteProcess.java
+++ b/core/java/android/os/ZygoteProcess.java
@@ -1102,7 +1102,6 @@ public class ZygoteProcess {
/**
* Instructs the zygote to pre-load the application code for the given Application.
* Only the app zygote supports this function.
- * TODO preloadPackageForAbi() can probably be removed and the callers an use this instead.
*/
public boolean preloadApp(ApplicationInfo appInfo, String abi)
throws ZygoteStartFailedEx, IOException {
@@ -1130,39 +1129,6 @@ public class ZygoteProcess {
}
/**
- * Instructs the zygote to pre-load the classes and native libraries at the given paths
- * for the specified abi. Not all zygotes support this function.
- */
- public boolean preloadPackageForAbi(
- String packagePath, String libsPath, String libFileName, String cacheKey, String abi)
- throws ZygoteStartFailedEx, IOException {
- synchronized (mLock) {
- ZygoteState state = openZygoteSocketIfNeeded(abi);
- state.mZygoteOutputWriter.write("5");
- state.mZygoteOutputWriter.newLine();
-
- state.mZygoteOutputWriter.write("--preload-package");
- state.mZygoteOutputWriter.newLine();
-
- state.mZygoteOutputWriter.write(packagePath);
- state.mZygoteOutputWriter.newLine();
-
- state.mZygoteOutputWriter.write(libsPath);
- state.mZygoteOutputWriter.newLine();
-
- state.mZygoteOutputWriter.write(libFileName);
- state.mZygoteOutputWriter.newLine();
-
- state.mZygoteOutputWriter.write(cacheKey);
- state.mZygoteOutputWriter.newLine();
-
- state.mZygoteOutputWriter.flush();
-
- return (state.mZygoteInputStream.readInt() == 0);
- }
- }
-
- /**
* Instructs the zygote to preload the default set of classes and resources. Returns
* {@code true} if a preload was performed as a result of this call, and {@code false}
* otherwise. The latter usually means that the zygote eagerly preloaded at startup
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index ff389208a579..850b9795e41a 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -2630,7 +2630,7 @@ public final class Settings {
/**
* Activity Action: Show screen that let user select its Autofill Service.
* <p>
- * Input: Intent's data URI set with an application name, using the
+ * Input: Intent's data URI set with an application package name, using the
* "package" schema (like "package:com.my.app").
*
* <p>
@@ -2650,7 +2650,7 @@ public final class Settings {
/**
* Activity Action: Show screen that let user enable a Credential Manager provider.
* <p>
- * Input: Intent's data URI set with an application name, using the
+ * Input: Intent's data URI set with an application package name, using the
* "package" schema (like "package:com.my.app").
*
* <p>
diff --git a/core/java/android/service/contextualsearch/OWNERS b/core/java/android/service/contextualsearch/OWNERS
index 463adf48dd3e..b7238721bc60 100644
--- a/core/java/android/service/contextualsearch/OWNERS
+++ b/core/java/android/service/contextualsearch/OWNERS
@@ -1,3 +1,2 @@
srazdan@google.com
-volnov@google.com
hackz@google.com
diff --git a/core/java/android/service/notification/SystemZenRules.java b/core/java/android/service/notification/SystemZenRules.java
index 22234a95eef8..1d18643c4ac1 100644
--- a/core/java/android/service/notification/SystemZenRules.java
+++ b/core/java/android/service/notification/SystemZenRules.java
@@ -129,10 +129,7 @@ public final class SystemZenRules {
}
sb.append(daysSummary);
sb.append(context.getString(R.string.zen_mode_trigger_summary_divider_text));
- sb.append(context.getString(
- R.string.zen_mode_trigger_summary_range_symbol_combination,
- timeString(context, schedule.startHour, schedule.startMinute),
- timeString(context, schedule.endHour, schedule.endMinute)));
+ sb.append(getTimeSummary(context, schedule));
return sb.toString();
}
@@ -142,7 +139,7 @@ public final class SystemZenRules {
* adjacent days grouped together ("Sun-Wed" instead of "Sun,Mon,Tue,Wed").
*/
@Nullable
- private static String getShortDaysSummary(Context context, @NonNull ScheduleInfo schedule) {
+ public static String getShortDaysSummary(Context context, @NonNull ScheduleInfo schedule) {
// Compute a list of days with contiguous days grouped together, for example: "Sun-Thu" or
// "Sun-Mon,Wed,Fri"
final int[] days = schedule.days;
@@ -224,6 +221,14 @@ public final class SystemZenRules {
return null;
}
+ /** Returns the time part of a {@link ScheduleInfo}, e.g. {@code 9:00-17:00}. */
+ public static String getTimeSummary(Context context, @NonNull ScheduleInfo schedule) {
+ return context.getString(
+ R.string.zen_mode_trigger_summary_range_symbol_combination,
+ timeString(context, schedule.startHour, schedule.startMinute),
+ timeString(context, schedule.endHour, schedule.endMinute));
+ }
+
/**
* Convenience method for representing the specified time in string format.
*/
diff --git a/core/java/android/speech/OWNERS b/core/java/android/speech/OWNERS
index 0f2f8ad3d99e..32f482264103 100644
--- a/core/java/android/speech/OWNERS
+++ b/core/java/android/speech/OWNERS
@@ -1,4 +1,3 @@
volnov@google.com
eugeniom@google.com
schfan@google.com
-hackz@google.com
diff --git a/core/java/android/util/TypedValue.java b/core/java/android/util/TypedValue.java
index 330a9fce1b83..9668b6ad1f72 100644
--- a/core/java/android/util/TypedValue.java
+++ b/core/java/android/util/TypedValue.java
@@ -65,10 +65,11 @@ public class TypedValue {
/** The <var>data</var> field holds a number that was
* originally specified in hexadecimal (0xn). */
public static final int TYPE_INT_HEX = 0x11;
- /** The <var>data</var> field holds 0 or 1 that was originally
- * specified as "false" or "true". */
+ /**
+ * {@link #data} holds 0 to represent {@code false}, or a value different from 0 to represent
+ * {@code true}.
+ */
public static final int TYPE_INT_BOOLEAN = 0x12;
-
/** Identifies the start of integer values that were specified as
* color constants (starting with '#'). */
public static final int TYPE_FIRST_COLOR_INT = 0x1c;
diff --git a/core/java/android/view/IWindowSession.aidl b/core/java/android/view/IWindowSession.aidl
index 14407ca32388..762a302e8170 100644
--- a/core/java/android/view/IWindowSession.aidl
+++ b/core/java/android/view/IWindowSession.aidl
@@ -30,6 +30,7 @@ import android.view.IWindow;
import android.view.IWindowId;
import android.view.MotionEvent;
import android.view.WindowManager;
+import android.view.inputmethod.ImeTracker;
import android.view.InsetsSourceControl;
import android.view.InsetsState;
import android.view.Surface;
@@ -276,7 +277,8 @@ interface IWindowSession {
/**
* Updates the requested visible types of insets.
*/
- oneway void updateRequestedVisibleTypes(IWindow window, int requestedVisibleTypes);
+ oneway void updateRequestedVisibleTypes(IWindow window, int requestedVisibleTypes,
+ in @nullable ImeTracker.Token imeStatsToken);
/**
* Called when the system gesture exclusion has changed.
@@ -369,4 +371,14 @@ interface IWindowSession {
* @return {@code true} if the focus changes. Otherwise, {@code false}.
*/
boolean moveFocusToAdjacentWindow(IWindow fromWindow, int direction);
+
+ /**
+ * Notifies the statsToken and IME visibility to the ImeInsetsSourceProvider.
+ *
+ * @param window The window that is used to get the ImeInsetsSourceProvider.
+ * @param visible {@code true} to make it visible, {@code false} to hide it.
+ * @param statsToken the token tracking the current IME request.
+ */
+ oneway void notifyImeWindowVisibilityChangedFromClient(IWindow window, boolean visible,
+ in ImeTracker.Token statsToken);
}
diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java
index f166b89a1d13..d83f34436b1b 100644
--- a/core/java/android/view/InsetsController.java
+++ b/core/java/android/view/InsetsController.java
@@ -121,8 +121,10 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
* The visibilities should be reported back to WM.
*
* @param types Bitwise flags of types requested visible.
+ * @param statsToken the token tracking the current IME request or {@code null} otherwise.
*/
- void updateRequestedVisibleTypes(@InsetsType int types);
+ void updateRequestedVisibleTypes(@InsetsType int types,
+ @Nullable ImeTracker.Token statsToken);
/**
* @return Whether the host has any callbacks it wants to synchronize the animations with.
@@ -974,6 +976,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
int consumedControlCount = 0;
final @InsetsType int[] showTypes = new int[1];
final @InsetsType int[] hideTypes = new int[1];
+ ImeTracker.Token statsToken = null;
// Ensure to update all existing source consumers
for (int i = mSourceConsumers.size() - 1; i >= 0; i--) {
@@ -988,6 +991,12 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
if (control != null) {
controllableTypes |= control.getType();
consumedControlCount++;
+
+ if (Flags.refactorInsetsController()) {
+ if (control.getId() == ID_IME) {
+ statsToken = control.getImeStatsToken();
+ }
+ }
}
// control may be null, but we still need to update the control to null if it got
@@ -1021,34 +1030,31 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
if (Flags.refactorInsetsController()) {
if (mPendingImeControlRequest != null && getImeSourceConsumer().getControl() != null
&& getImeSourceConsumer().getControl().getLeash() != null) {
- // TODO we need to pass the statsToken
- handlePendingControlRequest(null);
+ handlePendingControlRequest(statsToken);
} else {
if (showTypes[0] != 0) {
- applyAnimation(showTypes[0], true /* show */, false /* fromIme */,
- null /* statsToken */);
+ applyAnimation(showTypes[0], true /* show */, false /* fromIme */, statsToken);
}
if (hideTypes[0] != 0) {
- applyAnimation(hideTypes[0], false /* show */, false /* fromIme */,
- null /* statsToken */);
+ applyAnimation(hideTypes[0], false /* show */, false /* fromIme */, statsToken);
}
}
} else {
if (showTypes[0] != 0) {
- final var statsToken =
+ final var newStatsToken =
(showTypes[0] & ime()) == 0 ? null : ImeTracker.forLogging().onStart(
ImeTracker.TYPE_SHOW, ImeTracker.ORIGIN_CLIENT,
SoftInputShowHideReason.CONTROLS_CHANGED,
mHost.isHandlingPointerEvent() /* fromUser */);
- applyAnimation(showTypes[0], true /* show */, false /* fromIme */, statsToken);
+ applyAnimation(showTypes[0], true /* show */, false /* fromIme */, newStatsToken);
}
if (hideTypes[0] != 0) {
- final var statsToken =
+ final var newStatsToken =
(hideTypes[0] & ime()) == 0 ? null : ImeTracker.forLogging().onStart(
ImeTracker.TYPE_HIDE, ImeTracker.ORIGIN_CLIENT,
SoftInputShowHideReason.CONTROLS_CHANGED,
mHost.isHandlingPointerEvent() /* fromUser */);
- applyAnimation(hideTypes[0], false /* show */, false /* fromIme */, statsToken);
+ applyAnimation(hideTypes[0], false /* show */, false /* fromIme */, newStatsToken);
}
}
@@ -1065,7 +1071,9 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
}
// InsetsSourceConsumer#setControl might change the requested visibility.
- reportRequestedVisibleTypes();
+ // TODO(b/353463205) check this: if the requestedVisibleTypes for the IME were already
+ // sent, the request would fail. Therefore, don't send the statsToken here.
+ reportRequestedVisibleTypes(null /* statsToken */);
}
@VisibleForTesting(visibility = PACKAGE)
@@ -1176,6 +1184,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
}
if (DEBUG) Log.d(TAG, "show typesReady: " + typesReady);
if ((Flags.refactorInsetsController() || fromIme) && (typesReady & Type.ime()) != 0) {
+ // TODO(b/353463205) check if this is needed here
ImeTracker.forLatency().onShown(statsToken, ActivityThread::currentApplication);
}
applyAnimation(typesReady, true /* show */, fromIme, statsToken);
@@ -1243,6 +1252,8 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
// an animation again (mRequestedVisibleTypes are reported at the end of the IME
// hide animation but set at the beginning)
if ((mRequestedVisibleTypes & ime()) == 0) {
+ ImeTracker.forLogging().onCancelled(statsToken,
+ ImeTracker.PHASE_CLIENT_ALREADY_HIDDEN);
continue;
}
}
@@ -1346,7 +1357,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
// We are finishing setting the requested visible types. Report them to the server
// and/or the app.
- reportRequestedVisibleTypes();
+ reportRequestedVisibleTypes(statsToken);
}
private void controlAnimationUncheckedInner(@InsetsType int types,
@@ -1396,8 +1407,8 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
// Ime will not be contained in typesReady nor in controls, if we don't have a leash
Pair<Integer, Integer> typesReadyPair = collectSourceControlsV2(types, controls);
typesReady = typesReadyPair.first;
- @InsetsType int typesWithoutLeash = typesReadyPair.second;
if (animationType == ANIMATION_TYPE_USER) {
+ @InsetsType int typesWithoutLeash = typesReadyPair.second;
// When using an app-driven animation, the IME won't have a leash (because the
// window isn't created yet). If we have a control, but no leash, defers the
// request until the leash gets created.
@@ -1431,6 +1442,11 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
}
// We need to wait until all types are ready
if (typesReady != types) {
+ if (DEBUG) {
+ Log.d(TAG, TextUtils.formatSimple(
+ "not all types are ready yet, waiting. typesReady: %s, types: %s",
+ typesReady, types));
+ }
return;
}
}
@@ -1728,9 +1744,13 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
} else {
ImeTracker.forLogging().onProgress(statsToken,
ImeTracker.PHASE_CLIENT_ANIMATION_FINISHED_HIDE);
- ImeTracker.forLogging().onHidden(statsToken);
+ // The requestedVisibleTypes are only send at the end of the hide animation.
+ // Therefore, the requested is not finished at this point.
+ if (!Flags.refactorInsetsController()) {
+ ImeTracker.forLogging().onHidden(statsToken);
+ }
}
- reportRequestedVisibleTypes();
+ reportRequestedVisibleTypes(shown ? null : runner.getStatsToken());
}
@Override
@@ -1787,7 +1807,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
if (mHost != null) {
// if the (hide) animation is cancelled, the
// requestedVisibleTypes should be reported at this point.
- reportRequestedVisibleTypes();
+ reportRequestedVisibleTypes(control.getStatsToken());
mHost.getInputMethodManager().removeImeSurface(
mHost.getWindowToken());
}
@@ -1923,8 +1943,10 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
/**
* Called when finishing setting requested visible types or finishing setting controls.
+ *
+ * @param statsToken the token tracking the current IME request or {@code null} otherwise.
*/
- private void reportRequestedVisibleTypes() {
+ private void reportRequestedVisibleTypes(@Nullable ImeTracker.Token statsToken) {
final @InsetsType int typesToReport;
if (Flags.refactorInsetsController()) {
// If the IME is currently animating out, it is still visible, therefore we only
@@ -1941,8 +1963,23 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
if (WindowInsets.Type.hasCompatSystemBars(diff)) {
mCompatSysUiVisibilityStaled = true;
}
+ if (Flags.refactorInsetsController()) {
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_CLIENT_REPORT_REQUESTED_VISIBLE_TYPES);
+ }
mReportedRequestedVisibleTypes = mRequestedVisibleTypes;
- mHost.updateRequestedVisibleTypes(mReportedRequestedVisibleTypes);
+ mHost.updateRequestedVisibleTypes(mReportedRequestedVisibleTypes, statsToken);
+ } else if (Flags.refactorInsetsController()) {
+ if ((typesToReport & ime()) != 0 && mImeSourceConsumer != null) {
+ InsetsSourceControl control = mImeSourceConsumer.getControl();
+ if (control != null && control.getLeash() == null) {
+ // If the IME was requested twice, and we didn't receive the controls
+ // yet, this request will not continue. It should be cancelled here, as
+ // it would time out otherwise.
+ ImeTracker.forLogging().onCancelled(statsToken,
+ ImeTracker.PHASE_CLIENT_REPORT_REQUESTED_VISIBLE_TYPES);
+ }
+ }
}
updateCompatSysUiVisibility();
}
diff --git a/core/java/android/view/InsetsSourceControl.java b/core/java/android/view/InsetsSourceControl.java
index 2efa647d3169..78773529294a 100644
--- a/core/java/android/view/InsetsSourceControl.java
+++ b/core/java/android/view/InsetsSourceControl.java
@@ -31,6 +31,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.util.proto.ProtoOutputStream;
import android.view.WindowInsets.Type.InsetsType;
+import android.view.inputmethod.ImeTracker;
import java.io.PrintWriter;
import java.util.Arrays;
@@ -56,6 +57,9 @@ public class InsetsSourceControl implements Parcelable {
private boolean mSkipAnimationOnce;
private int mParcelableFlags;
+ /** The token tracking the current IME request */
+ private @Nullable ImeTracker.Token mImeStatsToken;
+
public InsetsSourceControl(int id, @InsetsType int type, @Nullable SurfaceControl leash,
boolean initiallyVisible, Point surfacePosition, Insets insetsHint) {
mId = id;
@@ -78,6 +82,7 @@ public class InsetsSourceControl implements Parcelable {
mSurfacePosition = new Point(other.mSurfacePosition);
mInsetsHint = other.mInsetsHint;
mSkipAnimationOnce = other.getAndClearSkipAnimationOnce();
+ mImeStatsToken = other.getImeStatsToken();
}
public InsetsSourceControl(Parcel in) {
@@ -88,6 +93,7 @@ public class InsetsSourceControl implements Parcelable {
mSurfacePosition = in.readTypedObject(Point.CREATOR);
mInsetsHint = in.readTypedObject(Insets.CREATOR);
mSkipAnimationOnce = in.readBoolean();
+ mImeStatsToken = in.readTypedObject(ImeTracker.Token.CREATOR);
}
public int getId() {
@@ -153,6 +159,15 @@ public class InsetsSourceControl implements Parcelable {
return result;
}
+ @Nullable
+ public ImeTracker.Token getImeStatsToken() {
+ return mImeStatsToken;
+ }
+
+ public void setImeStatsToken(@Nullable ImeTracker.Token imeStatsToken) {
+ mImeStatsToken = imeStatsToken;
+ }
+
public void setParcelableFlags(int parcelableFlags) {
mParcelableFlags = parcelableFlags;
}
@@ -171,6 +186,7 @@ public class InsetsSourceControl implements Parcelable {
dest.writeTypedObject(mSurfacePosition, mParcelableFlags);
dest.writeTypedObject(mInsetsHint, mParcelableFlags);
dest.writeBoolean(mSkipAnimationOnce);
+ dest.writeTypedObject(mImeStatsToken, mParcelableFlags);
}
public void release(Consumer<SurfaceControl> surfaceReleaseConsumer) {
@@ -196,13 +212,14 @@ public class InsetsSourceControl implements Parcelable {
&& mInitiallyVisible == that.mInitiallyVisible
&& mSurfacePosition.equals(that.mSurfacePosition)
&& mInsetsHint.equals(that.mInsetsHint)
- && mSkipAnimationOnce == that.mSkipAnimationOnce;
+ && mSkipAnimationOnce == that.mSkipAnimationOnce
+ && Objects.equals(mImeStatsToken, that.mImeStatsToken);
}
@Override
public int hashCode() {
return Objects.hash(mId, mType, mLeash, mInitiallyVisible, mSurfacePosition, mInsetsHint,
- mSkipAnimationOnce);
+ mSkipAnimationOnce, mImeStatsToken);
}
@Override
@@ -225,6 +242,7 @@ public class InsetsSourceControl implements Parcelable {
pw.print(" mSurfacePosition="); pw.print(mSurfacePosition);
pw.print(" mInsetsHint="); pw.print(mInsetsHint);
pw.print(" mSkipAnimationOnce="); pw.print(mSkipAnimationOnce);
+ pw.print(" mImeStatsToken="); pw.print(mImeStatsToken);
pw.println();
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index a23e3839c348..64c77661d9f4 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -11004,6 +11004,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
? afm.isAutofillable(this) : false;
}
+ /**
+ * Returns whether the view is autofillable.
+ *
+ * @return whether the view is autofillable, and should send out autofill request to provider.
+ */
private boolean isAutofillable() {
if (DBG) {
Log.d(VIEW_LOG_TAG, "isAutofillable() entered.");
@@ -27631,6 +27636,23 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
return null;
}
+
+ /**
+ * Performs the traversal to find views that are autofillable.
+ * Autofillable views are added to the provided list.
+ *
+ * <strong>Note:</strong>This method does not stop at the root namespace
+ * boundary.
+ *
+ * @param autofillableViews The output list of autofillable Views.
+ * @hide
+ */
+ public void findAutofillableViewsByTraversal(@NonNull List<View> autofillableViews) {
+ if (isAutofillable()) {
+ autofillableViews.add(this);
+ }
+ }
+
/**
* Look for a child view with the given tag. If this view has the given
* tag, return this view.
@@ -30597,6 +30619,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
}
+ // Note that if the function returns true, it indicates aapt did not generate this id.
+ // However false value does not indicate that aapt did generated this id.
private static boolean isViewIdGenerated(int id) {
return (id & 0xFF000000) == 0 && (id & 0x00FFFFFF) != 0;
}
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index ceaca2257af4..6f8838619808 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -1500,6 +1500,19 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
return null;
}
+ /** @hide */
+ @Override
+ public void findAutofillableViewsByTraversal(@NonNull List<View> autofillableViews) {
+ super.findAutofillableViewsByTraversal(autofillableViews);
+
+ final int childrenCount = mChildrenCount;
+ final View[] children = mChildren;
+ for (int i = 0; i < childrenCount; i++) {
+ View child = children[i];
+ child.findAutofillableViewsByTraversal(autofillableViews);
+ }
+ }
+
@Override
public void dispatchWindowFocusChanged(boolean hasFocus) {
super.dispatchWindowFocusChanged(hasFocus);
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 2f204f9b1be9..9e52a1458bc8 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -10057,6 +10057,24 @@ public final class ViewRootImpl implements ViewParent,
}
/**
+ * Dispatches the statsToken and IME visibility to the ImeInsetsSourceProvider.
+ *
+ * @param visible {@code true} if it became visible, {@code false} otherwise.
+ * @param statsToken the token tracking the current IME request.
+ *
+ * @hide
+ */
+ public void notifyImeVisibilityChanged(boolean visible, @NonNull ImeTracker.Token statsToken) {
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_CLIENT_NOTIFY_IME_VISIBILITY_CHANGED);
+ try {
+ mWindowSession.notifyImeWindowVisibilityChangedFromClient(mWindow, visible, statsToken);
+ } catch (RemoteException e) {
+ e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* Represents a pending input event that is waiting in a queue.
*
* Input events are processed in serial order by the timestamp specified by
@@ -12882,11 +12900,6 @@ public final class ViewRootImpl implements ViewParent,
mFrameRateCategoryHighCount = FRAME_RATE_CATEGORY_COUNT;
}
- // If it's currently an intermittent update,
- // we should keep mPreferredFrameRateCategory as NORMAL
- if (intermittentUpdateState() == INTERMITTENT_STATE_INTERMITTENT) {
- return;
- }
if (mFrameRateCategoryHighCount > 0) {
mPreferredFrameRateCategory = FRAME_RATE_CATEGORY_HIGH;
diff --git a/core/java/android/view/ViewRootInsetsControllerHost.java b/core/java/android/view/ViewRootInsetsControllerHost.java
index b66c59aae899..889acca4b8b1 100644
--- a/core/java/android/view/ViewRootInsetsControllerHost.java
+++ b/core/java/android/view/ViewRootInsetsControllerHost.java
@@ -19,12 +19,14 @@ package android.view;
import static android.view.InsetsController.DEBUG;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.content.Context;
import android.content.res.CompatibilityInfo;
import android.os.Handler;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
+import android.view.inputmethod.ImeTracker;
import android.view.inputmethod.InputMethodManager;
import java.util.List;
@@ -151,10 +153,17 @@ public class ViewRootInsetsControllerHost implements InsetsController.Host {
}
@Override
- public void updateRequestedVisibleTypes(@WindowInsets.Type.InsetsType int types) {
+ public void updateRequestedVisibleTypes(@WindowInsets.Type.InsetsType int types,
+ @Nullable ImeTracker.Token statsToken) {
try {
if (mViewRoot.mAdded) {
- mViewRoot.mWindowSession.updateRequestedVisibleTypes(mViewRoot.mWindow, types);
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_CLIENT_UPDATE_REQUESTED_VISIBLE_TYPES);
+ mViewRoot.mWindowSession.updateRequestedVisibleTypes(mViewRoot.mWindow, types,
+ statsToken);
+ } else {
+ ImeTracker.forLogging().onFailed(statsToken,
+ ImeTracker.PHASE_CLIENT_UPDATE_REQUESTED_VISIBLE_TYPES);
}
} catch (RemoteException e) {
Log.e(TAG, "Failed to call insetsModified", e);
diff --git a/core/java/android/view/WindowlessWindowManager.java b/core/java/android/view/WindowlessWindowManager.java
index 78718586329e..0d027f107a02 100644
--- a/core/java/android/view/WindowlessWindowManager.java
+++ b/core/java/android/view/WindowlessWindowManager.java
@@ -30,6 +30,7 @@ import android.util.Log;
import android.util.MergedConfiguration;
import android.view.View.FocusDirection;
import android.view.WindowInsets.Type.InsetsType;
+import android.view.inputmethod.ImeTracker;
import android.window.ClientWindowFrames;
import android.window.InputTransferToken;
import android.window.OnBackInvokedCallbackInfo;
@@ -596,7 +597,7 @@ public class WindowlessWindowManager implements IWindowSession {
@Override
public void updateRequestedVisibleTypes(IWindow window,
- @InsetsType int requestedVisibleTypes) {
+ @InsetsType int requestedVisibleTypes, @Nullable ImeTracker.Token imeStatsToken) {
}
@Override
@@ -677,6 +678,11 @@ public class WindowlessWindowManager implements IWindowSession {
return false;
}
+ @Override
+ public void notifyImeWindowVisibilityChangedFromClient(IWindow window, boolean visible,
+ @NonNull ImeTracker.Token statsToken) {
+ }
+
void setParentInterface(@Nullable ISurfaceControlViewHostParent parentInterface) {
IBinder oldInterface = mParentInterface == null ? null : mParentInterface.asBinder();
IBinder newInterface = parentInterface == null ? null : parentInterface.asBinder();
diff --git a/core/java/android/view/autofill/AutofillClientController.java b/core/java/android/view/autofill/AutofillClientController.java
index 2f7adaa29fed..d505c733b3e9 100644
--- a/core/java/android/view/autofill/AutofillClientController.java
+++ b/core/java/android/view/autofill/AutofillClientController.java
@@ -39,6 +39,7 @@ import android.view.WindowManagerGlobal;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
/**
* A controller to manage the autofill requests for the {@link Activity}.
@@ -71,6 +72,7 @@ public final class AutofillClientController implements AutofillManager.AutofillC
private AutofillPopupWindow mAutofillPopupWindow;
private boolean mAutoFillResetNeeded;
private boolean mAutoFillIgnoreFirstResumePause;
+ private Boolean mRelayoutFix;
/**
* AutofillClientController constructor.
@@ -86,6 +88,18 @@ public final class AutofillClientController implements AutofillManager.AutofillC
return mAutofillManager;
}
+ /**
+ * Whether to apply relayout fixes.
+ *
+ * @hide
+ */
+ public boolean isRelayoutFixEnabled() {
+ if (mRelayoutFix == null) {
+ mRelayoutFix = getAutofillManager().isRelayoutFixEnabled();
+ }
+ return mRelayoutFix;
+ }
+
// ------------------ Called for Activity events ------------------
/**
@@ -119,7 +133,54 @@ public final class AutofillClientController implements AutofillManager.AutofillC
* Called when the {@link Activity#onResume()} is called.
*/
public void onActivityResumed() {
+ if (Helper.sVerbose) {
+ Log.v(TAG, "onActivityResumed()");
+ }
+ if (isRelayoutFixEnabled()) {
+ // Do nothing here. We'll handle it in onActivityPostResumed()
+ return;
+ }
+ if (Helper.sVerbose) {
+ Log.v(TAG, "onActivityResumed(): Relayout fix not enabled");
+ }
+ forResume();
+ }
+
+ /**
+ * Called when the {@link Activity#onPostResume()} is called.
+ */
+ public void onActivityPostResumed() {
+ if (Helper.sVerbose) {
+ Log.v(TAG, "onActivityPostResumed()");
+ }
+ if (!isRelayoutFixEnabled()) {
+ return;
+ }
+ if (Helper.sVerbose) {
+ Log.v(TAG, "onActivityPostResumed(): Relayout fix enabled");
+ }
+ forResume();
+ }
+
+ /**
+ * Code to execute when an app has resumed (or is about to resume)
+ */
+ private void forResume() {
enableAutofillCompatibilityIfNeeded();
+ boolean relayoutFix = isRelayoutFixEnabled();
+ if (relayoutFix) {
+ if (getAutofillManager().shouldRetryFill()) {
+ if (Helper.sVerbose) {
+ Log.v(TAG, "forResume(): Autofill potential relayout. Retrying fill.");
+ }
+ getAutofillManager().attemptRefill();
+ } else {
+ if (Helper.sVerbose) {
+ Log.v(TAG, "forResume(): Not attempting refill.");
+ }
+ }
+ }
+
if (mAutoFillResetNeeded) {
if (!mAutoFillIgnoreFirstResumePause) {
View focus = mActivity.getCurrentFocus();
@@ -131,7 +192,16 @@ public final class AutofillClientController implements AutofillManager.AutofillC
// ViewRootImpl.performTraversals() changes window visibility to VISIBLE.
// So we cannot call View.notifyEnterOrExited() which will do nothing
// when View.isVisibleToUser() is false.
- getAutofillManager().notifyViewEntered(focus);
+ if (relayoutFix && getAutofillManager().isAuthenticationPending()) {
+ if (Helper.sVerbose) {
+ Log.v(TAG, "forResume(): ignoring focus due to auth pending");
+ }
+ } else {
+ if (Helper.sVerbose) {
+ Log.v(TAG, "forResume(): notifyViewEntered");
+ }
+ getAutofillManager().notifyViewEntered(focus);
+ }
}
}
}
@@ -427,6 +497,22 @@ public final class AutofillClientController implements AutofillManager.AutofillC
}
@Override
+ public List<View> autofillClientFindAutofillableViewsByTraversal() {
+ final ArrayList<View> views = new ArrayList<>();
+ final ArrayList<ViewRootImpl> roots =
+ WindowManagerGlobal.getInstance().getRootViews(mActivity.getActivityToken());
+
+ for (int rootNum = 0; rootNum < roots.size(); rootNum++) {
+ final View rootView = roots.get(rootNum).getView();
+
+ if (rootView != null) {
+ rootView.findAutofillableViewsByTraversal(views);
+ }
+ }
+ return views;
+ }
+
+ @Override
public boolean autofillClientIsFillUiShowing() {
return mAutofillPopupWindow != null && mAutofillPopupWindow.isShowing();
}
diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java
index 515ed0e8f6af..02a86c9eecb3 100644
--- a/core/java/android/view/autofill/AutofillManager.java
+++ b/core/java/android/view/autofill/AutofillManager.java
@@ -874,6 +874,13 @@ public final class AutofillManager {
@Nullable View autofillClientFindViewByAccessibilityIdTraversal(int viewId, int windowId);
/**
+ * Finds all the autofillable views on the screen.
+ *
+ * @return The list of views that are autofillable.
+ */
+ List<View> autofillClientFindAutofillableViewsByTraversal();
+
+ /**
* Runs the specified action on the UI thread.
*/
void autofillClientRunOnUiThread(Runnable action);
@@ -1498,6 +1505,37 @@ public final class AutofillManager {
}
/**
+ * Called to know whether authentication was pending.
+ * @hide
+ */
+ public boolean isAuthenticationPending() {
+ return mState == STATE_PENDING_AUTHENTICATION;
+ }
+
+ /**
+ * Called to check if we should retry fill.
+ * Useful for knowing whether to attempt refill after relayout.
+ *
+ * @hide
+ */
+ public boolean shouldRetryFill() {
+ // TODO: Implement in follow-up cl
+ return false;
+ }
+
+ /**
+ * Called when a potential relayout may have occurred.
+ *
+ * @return whether refill was done. True if refill was done partially or fully.
+ * @hide
+ */
+ public boolean attemptRefill() {
+ Log.i(TAG, "Attempting refill");
+ // TODO: Implement in follow-up cl
+ return false;
+ }
+
+ /**
* Called when a {@link View} that supports autofill is entered.
*
* @param view {@link View} that was entered.
diff --git a/core/java/android/view/contentcapture/OWNERS b/core/java/android/view/contentcapture/OWNERS
index e4b09524ede7..9ac273f515e7 100644
--- a/core/java/android/view/contentcapture/OWNERS
+++ b/core/java/android/view/contentcapture/OWNERS
@@ -2,4 +2,3 @@
hackz@google.com
shivanker@google.com
-volnov@google.com
diff --git a/core/java/android/view/inputmethod/ImeTracker.java b/core/java/android/view/inputmethod/ImeTracker.java
index edc99218c71e..b9751c8cab52 100644
--- a/core/java/android/view/inputmethod/ImeTracker.java
+++ b/core/java/android/view/inputmethod/ImeTracker.java
@@ -202,6 +202,24 @@ public interface ImeTracker {
PHASE_IME_HIDE_WINDOW,
PHASE_IME_PRIVILEGED_OPERATIONS,
PHASE_SERVER_CURRENT_ACTIVE_IME,
+ PHASE_CLIENT_REPORT_REQUESTED_VISIBLE_TYPES,
+ PHASE_WM_SET_REMOTE_TARGET_IME_VISIBILITY,
+ PHASE_WM_POST_LAYOUT_NOTIFY_CONTROLS_CHANGED,
+ PHASE_CLIENT_HANDLE_DISPATCH_IME_VISIBILITY_CHANGED,
+ PHASE_CLIENT_NOTIFY_IME_VISIBILITY_CHANGED,
+ PHASE_CLIENT_UPDATE_REQUESTED_VISIBLE_TYPES,
+ PHASE_WM_REMOTE_INSETS_CONTROL_TARGET_SET_REQUESTED_VISIBILITY,
+ PHASE_WM_GET_CONTROL_WITH_LEASH,
+ PHASE_WM_UPDATE_REQUESTED_VISIBLE_TYPES,
+ PHASE_SERVER_SET_VISIBILITY_ON_FOCUSED_WINDOW,
+ PHASE_CLIENT_HANDLE_SET_IME_VISIBILITY,
+ PHASE_CLIENT_SET_IME_VISIBILITY,
+ PHASE_WM_DISPATCH_IME_REQUESTED_CHANGED,
+ PHASE_CLIENT_NO_ONGOING_USER_ANIMATION,
+ PHASE_WM_NOTIFY_IME_VISIBILITY_CHANGED_FROM_CLIENT,
+ PHASE_WM_POSTING_CHANGED_IME_VISIBILITY,
+ PHASE_WM_INVOKING_IME_REQUESTED_LISTENER,
+ PHASE_CLIENT_ALREADY_HIDDEN,
})
@Retention(RetentionPolicy.SOURCE)
@interface Phase {}
@@ -351,6 +369,62 @@ public interface ImeTracker {
/** Checked that the calling IME is the currently active IME. */
int PHASE_SERVER_CURRENT_ACTIVE_IME = ImeProtoEnums.PHASE_SERVER_CURRENT_ACTIVE_IME;
+ /** Reporting the new requested visible types. */
+ int PHASE_CLIENT_REPORT_REQUESTED_VISIBLE_TYPES =
+ ImeProtoEnums.PHASE_CLIENT_REPORT_REQUESTED_VISIBLE_TYPES;
+ /** Setting the IME visibility for the RemoteInsetsControlTarget. */
+ int PHASE_WM_SET_REMOTE_TARGET_IME_VISIBILITY =
+ ImeProtoEnums.PHASE_WM_SET_REMOTE_TARGET_IME_VISIBILITY;
+ /** IME has no insets pending and is server visible. Notify about changed controls. */
+ int PHASE_WM_POST_LAYOUT_NOTIFY_CONTROLS_CHANGED =
+ ImeProtoEnums.PHASE_WM_POST_LAYOUT_NOTIFY_CONTROLS_CHANGED;
+ /** Handling the dispatch of the IME visibility change. */
+ int PHASE_CLIENT_HANDLE_DISPATCH_IME_VISIBILITY_CHANGED =
+ ImeProtoEnums.PHASE_CLIENT_HANDLE_DISPATCH_IME_VISIBILITY_CHANGED;
+ /** Dispatching the IME visibility change. */
+ int PHASE_CLIENT_NOTIFY_IME_VISIBILITY_CHANGED =
+ ImeProtoEnums.PHASE_CLIENT_NOTIFY_IME_VISIBILITY_CHANGED;
+ /** Updating the requested visible types. */
+ int PHASE_CLIENT_UPDATE_REQUESTED_VISIBLE_TYPES =
+ ImeProtoEnums.PHASE_CLIENT_UPDATE_REQUESTED_VISIBLE_TYPES;
+ /** Reached the remote insets control target's setImeInputTargetRequestedVisibility method. */
+ int PHASE_WM_REMOTE_INSETS_CONTROL_TARGET_SET_REQUESTED_VISIBILITY =
+ ImeProtoEnums.PHASE_WM_REMOTE_INSETS_CONTROL_TARGET_SET_REQUESTED_VISIBILITY;
+ /** Received a new insets source control with a leash. */
+ int PHASE_WM_GET_CONTROL_WITH_LEASH =
+ ImeProtoEnums.PHASE_WM_GET_CONTROL_WITH_LEASH;
+ /**
+ * Updating the requested visible types in the WindowState and sending them to state
+ * controller.
+ */
+ int PHASE_WM_UPDATE_REQUESTED_VISIBLE_TYPES =
+ ImeProtoEnums.PHASE_WM_UPDATE_REQUESTED_VISIBLE_TYPES;
+ /** Setting the requested IME visibility of a window. */
+ int PHASE_SERVER_SET_VISIBILITY_ON_FOCUSED_WINDOW =
+ ImeProtoEnums.PHASE_SERVER_SET_VISIBILITY_ON_FOCUSED_WINDOW;
+ /** Reached the redirect of InputMethodManager to InsetsController show/hide. */
+ int PHASE_CLIENT_HANDLE_SET_IME_VISIBILITY =
+ ImeProtoEnums.PHASE_CLIENT_HANDLE_SET_IME_VISIBILITY;
+ /** Reached the InputMethodManager Handler call to send the visibility. */
+ int PHASE_CLIENT_SET_IME_VISIBILITY = ImeProtoEnums.PHASE_CLIENT_SET_IME_VISIBILITY;
+ /** Calling into the listener to show/hide the IME from the ImeInsetsSourceProvider. */
+ int PHASE_WM_DISPATCH_IME_REQUESTED_CHANGED =
+ ImeProtoEnums.PHASE_WM_DISPATCH_IME_REQUESTED_CHANGED;
+ /** An ongoing user animation will not be interrupted by a IMM#showSoftInput. */
+ int PHASE_CLIENT_NO_ONGOING_USER_ANIMATION =
+ ImeProtoEnums.PHASE_CLIENT_NO_ONGOING_USER_ANIMATION;
+ /** Dispatching the token to the ImeInsetsSourceProvider. */
+ int PHASE_WM_NOTIFY_IME_VISIBILITY_CHANGED_FROM_CLIENT =
+ ImeProtoEnums.PHASE_WM_NOTIFY_IME_VISIBILITY_CHANGED_FROM_CLIENT;
+ /** Now posting the IME visibility to the WMS handler. */
+ int PHASE_WM_POSTING_CHANGED_IME_VISIBILITY =
+ ImeProtoEnums.PHASE_WM_POSTING_CHANGED_IME_VISIBILITY;
+ /** Inside the WMS handler calling into the listener that calls into IMMS show/hide. */
+ int PHASE_WM_INVOKING_IME_REQUESTED_LISTENER =
+ ImeProtoEnums.PHASE_WM_INVOKING_IME_REQUESTED_LISTENER;
+ /** IME is requested to be hidden, but already hidden. Don't hide to avoid another animation. */
+ int PHASE_CLIENT_ALREADY_HIDDEN = ImeProtoEnums.PHASE_CLIENT_ALREADY_HIDDEN;
+
/**
* Called when an IME request is started.
*
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index fed8eea97688..d40b72c0914f 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -1350,11 +1350,15 @@ public final class InputMethodManager {
return;
}
case MSG_SET_VISIBILITY:
- final boolean visible = msg.arg1 != 0;
+ final SomeArgs args = (SomeArgs) msg.obj;
+ final boolean visible = (boolean) args.arg1;
+ final ImeTracker.Token statsToken = (ImeTracker.Token) args.arg2;
synchronized (mH) {
if (mCurRootView != null) {
final var insetsController = mCurRootView.getInsetsController();
if (insetsController != null) {
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_CLIENT_HANDLE_SET_IME_VISIBILITY);
if (visible) {
insetsController.show(WindowInsets.Type.ime(),
false /* fromIme */, null /* statsToken */);
@@ -1363,6 +1367,9 @@ public final class InputMethodManager {
false /* fromIme */, null /* statsToken */);
}
}
+ } else {
+ ImeTracker.forLogging().onFailed(statsToken,
+ ImeTracker.PHASE_CLIENT_HANDLE_SET_IME_VISIBILITY);
}
}
break;
@@ -1463,8 +1470,13 @@ public final class InputMethodManager {
}
@Override
- public void setImeVisibility(boolean visible) {
- mH.obtainMessage(MSG_SET_VISIBILITY, visible ? 1 : 0, 0).sendToTarget();
+ public void setImeVisibility(boolean visible, @Nullable ImeTracker.Token statsToken) {
+ final SomeArgs args = SomeArgs.obtain();
+ args.arg1 = visible;
+ args.arg2 = statsToken;
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_CLIENT_SET_IME_VISIBILITY);
+ mH.obtainMessage(MSG_SET_VISIBILITY, args).sendToTarget();
}
@Override
@@ -2344,11 +2356,15 @@ public final class InputMethodManager {
if (viewRootImpl != null
&& (viewRootImpl.getInsetsController().computeUserAnimatingTypes()
& WindowInsets.Type.ime()) == 0) {
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_CLIENT_NO_ONGOING_USER_ANIMATION);
// TODO(b/322992891) handle case of SHOW_IMPLICIT
viewRootImpl.getInsetsController().show(WindowInsets.Type.ime(),
false /* fromIme */, statsToken);
return true;
}
+ ImeTracker.forLogging().onCancelled(statsToken,
+ ImeTracker.PHASE_CLIENT_NO_ONGOING_USER_ANIMATION);
return false;
} else {
// Makes sure to call ImeInsetsSourceConsumer#onShowRequested on the UI thread.
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 0dadbe374aa4..eb3581717637 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -8360,7 +8360,7 @@ public class RemoteViews implements Parcelable, Filter {
}
}
- private interface PendingResources<T> {
+ interface PendingResources<T> {
T create(Context context, Resources appResources, HierarchyRootData rootData, int depth)
throws Exception;
}
diff --git a/core/java/android/widget/RemoteViewsSerializers.java b/core/java/android/widget/RemoteViewsSerializers.java
new file mode 100644
index 000000000000..600fea4a0bb8
--- /dev/null
+++ b/core/java/android/widget/RemoteViewsSerializers.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.widget;
+
+import android.content.res.ColorStateList;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.BlendMode;
+import android.graphics.drawable.Icon;
+import android.util.Log;
+import android.util.LongSparseArray;
+import android.util.proto.ProtoInputStream;
+import android.util.proto.ProtoOutputStream;
+import android.util.proto.ProtoUtils;
+
+import androidx.annotation.NonNull;
+
+import java.io.ByteArrayOutputStream;
+import java.util.function.Function;
+
+/**
+ * This class provides serialization for certain types used within RemoteViews.
+ *
+ * @hide
+ */
+public class RemoteViewsSerializers {
+ private static final String TAG = "RemoteViews";
+
+ /**
+ * Write Icon to proto.
+ */
+ public static void writeIconToProto(@NonNull ProtoOutputStream out,
+ @NonNull Resources appResources, @NonNull Icon icon) {
+ if (icon.getTintList() != null) {
+ final long token = out.start(RemoteViewsProto.Icon.TINT_LIST);
+ icon.getTintList().writeToProto(out);
+ out.end(token);
+ }
+ out.write(RemoteViewsProto.Icon.BLEND_MODE, BlendMode.toValue(icon.getTintBlendMode()));
+ switch (icon.getType()) {
+ case Icon.TYPE_BITMAP:
+ final ByteArrayOutputStream bitmapBytes = new ByteArrayOutputStream();
+ icon.getBitmap().compress(Bitmap.CompressFormat.WEBP_LOSSLESS, 100, bitmapBytes);
+ out.write(RemoteViewsProto.Icon.BITMAP, bitmapBytes.toByteArray());
+ break;
+ case Icon.TYPE_ADAPTIVE_BITMAP:
+ final ByteArrayOutputStream adaptiveBitmapBytes = new ByteArrayOutputStream();
+ icon.getBitmap().compress(Bitmap.CompressFormat.WEBP_LOSSLESS, 100,
+ adaptiveBitmapBytes);
+ out.write(RemoteViewsProto.Icon.ADAPTIVE_BITMAP, adaptiveBitmapBytes.toByteArray());
+ break;
+ case Icon.TYPE_RESOURCE:
+ out.write(RemoteViewsProto.Icon.RESOURCE,
+ appResources.getResourceName(icon.getResId()));
+ break;
+ case Icon.TYPE_DATA:
+ out.write(RemoteViewsProto.Icon.DATA, icon.getDataBytes());
+ break;
+ case Icon.TYPE_URI:
+ out.write(RemoteViewsProto.Icon.URI, icon.getUriString());
+ break;
+ case Icon.TYPE_URI_ADAPTIVE_BITMAP:
+ out.write(RemoteViewsProto.Icon.URI_ADAPTIVE_BITMAP, icon.getUriString());
+ break;
+ default:
+ Log.e(TAG, "Tried to serialize unknown Icon type " + icon.getType());
+ }
+ }
+
+ /**
+ * Create Icon from proto.
+ */
+ @NonNull
+ public static Function<Resources, Icon> createIconFromProto(@NonNull ProtoInputStream in)
+ throws Exception {
+ final LongSparseArray<Object> values = new LongSparseArray<>();
+ while (in.nextField() != ProtoInputStream.NO_MORE_FIELDS) {
+ switch (in.getFieldNumber()) {
+ case (int) RemoteViewsProto.Icon.BLEND_MODE:
+ values.put(RemoteViewsProto.Icon.BLEND_MODE,
+ in.readInt(RemoteViewsProto.Icon.BLEND_MODE));
+ break;
+ case (int) RemoteViewsProto.Icon.TINT_LIST:
+ final long tintListToken = in.start(RemoteViewsProto.Icon.TINT_LIST);
+ values.put(RemoteViewsProto.Icon.TINT_LIST, ColorStateList.createFromProto(in));
+ in.end(tintListToken);
+ break;
+ case (int) RemoteViewsProto.Icon.BITMAP:
+ byte[] bitmapData = in.readBytes(RemoteViewsProto.Icon.BITMAP);
+ values.put(RemoteViewsProto.Icon.BITMAP,
+ BitmapFactory.decodeByteArray(bitmapData, 0, bitmapData.length));
+ break;
+ case (int) RemoteViewsProto.Icon.ADAPTIVE_BITMAP:
+ final byte[] bitmapAdaptiveData = in.readBytes(
+ RemoteViewsProto.Icon.ADAPTIVE_BITMAP);
+ values.put(RemoteViewsProto.Icon.ADAPTIVE_BITMAP,
+ BitmapFactory.decodeByteArray(bitmapAdaptiveData, 0,
+ bitmapAdaptiveData.length));
+ break;
+ case (int) RemoteViewsProto.Icon.RESOURCE:
+ values.put(RemoteViewsProto.Icon.RESOURCE,
+ in.readString(RemoteViewsProto.Icon.RESOURCE));
+ break;
+ case (int) RemoteViewsProto.Icon.DATA:
+ values.put(RemoteViewsProto.Icon.DATA,
+ in.readBytes(RemoteViewsProto.Icon.DATA));
+ break;
+ case (int) RemoteViewsProto.Icon.URI:
+ values.put(RemoteViewsProto.Icon.URI, in.readString(RemoteViewsProto.Icon.URI));
+ break;
+ case (int) RemoteViewsProto.Icon.URI_ADAPTIVE_BITMAP:
+ values.put(RemoteViewsProto.Icon.URI_ADAPTIVE_BITMAP,
+ in.readString(RemoteViewsProto.Icon.URI_ADAPTIVE_BITMAP));
+ break;
+ default:
+ Log.w(TAG, "Unhandled field while reading Icon proto!\n"
+ + ProtoUtils.currentFieldToString(in));
+ }
+ }
+
+ return (resources) -> {
+ final int blendMode = (int) values.get(RemoteViewsProto.Icon.BLEND_MODE, -1);
+ final ColorStateList tintList = (ColorStateList) values.get(
+ RemoteViewsProto.Icon.TINT_LIST);
+ final Bitmap bitmap = (Bitmap) values.get(RemoteViewsProto.Icon.BITMAP);
+ final Bitmap bitmapAdaptive = (Bitmap) values.get(
+ RemoteViewsProto.Icon.ADAPTIVE_BITMAP);
+ final String resName = (String) values.get(RemoteViewsProto.Icon.RESOURCE);
+ final int resource = resName != null ? resources.getIdentifier(resName, /* defType= */
+ null,
+ /* defPackage= */ null) : -1;
+ final byte[] data = (byte[]) values.get(RemoteViewsProto.Icon.DATA);
+ final String uri = (String) values.get(RemoteViewsProto.Icon.URI);
+ final String uriAdaptive = (String) values.get(
+ RemoteViewsProto.Icon.URI_ADAPTIVE_BITMAP);
+ Icon icon;
+ if (bitmap != null) {
+ icon = Icon.createWithBitmap(bitmap);
+ } else if (bitmapAdaptive != null) {
+ icon = Icon.createWithAdaptiveBitmap(bitmapAdaptive);
+ } else if (resource != -1) {
+ icon = Icon.createWithResource(resources, resource);
+ } else if (data != null) {
+ icon = Icon.createWithData(data, 0, data.length);
+ } else if (uri != null) {
+ icon = Icon.createWithContentUri(uri);
+ } else if (uriAdaptive != null) {
+ icon = Icon.createWithAdaptiveBitmapContentUri(uriAdaptive);
+ } else {
+ // Either this Icon has no data or is of an unknown type.
+ return null;
+ }
+
+ if (tintList != null) {
+ icon.setTintList(tintList);
+ }
+ if (blendMode != -1) {
+ icon.setTintBlendMode(BlendMode.fromValue(blendMode));
+ }
+ return icon;
+ };
+ }
+}
diff --git a/core/java/android/window/flags/windowing_frontend.aconfig b/core/java/android/window/flags/windowing_frontend.aconfig
index c451cc880a8c..7f48c42c1d89 100644
--- a/core/java/android/window/flags/windowing_frontend.aconfig
+++ b/core/java/android/window/flags/windowing_frontend.aconfig
@@ -80,14 +80,6 @@ flag {
}
flag {
- name: "introduce_smoother_dimmer"
- namespace: "windowing_frontend"
- description: "Refactor dim to fix flickers"
- bug: "295291019"
- is_fixed_read_only: true
-}
-
-flag {
name: "transit_ready_tracking"
namespace: "windowing_frontend"
description: "Enable accurate transition readiness tracking"
diff --git a/core/java/android/window/flags/windowing_sdk.aconfig b/core/java/android/window/flags/windowing_sdk.aconfig
index 13d465f183c9..f8a2a3164917 100644
--- a/core/java/android/window/flags/windowing_sdk.aconfig
+++ b/core/java/android/window/flags/windowing_sdk.aconfig
@@ -42,14 +42,6 @@ flag {
flag {
namespace: "windowing_sdk"
- name: "activity_window_info_flag"
- description: "To dispatch ActivityWindowInfo through ClientTransaction"
- bug: "287582673"
- is_fixed_read_only: true
-}
-
-flag {
- namespace: "windowing_sdk"
name: "untrusted_embedding_state_sharing"
is_exported: true
description: "Feature flag to enable state sharing in untrusted embedding when apps opt in."
diff --git a/core/java/com/android/internal/inputmethod/IInputMethodClient.aidl b/core/java/com/android/internal/inputmethod/IInputMethodClient.aidl
index 6a7fa99f1caf..6eb9d2e0c02e 100644
--- a/core/java/com/android/internal/inputmethod/IInputMethodClient.aidl
+++ b/core/java/com/android/internal/inputmethod/IInputMethodClient.aidl
@@ -16,6 +16,7 @@
package com.android.internal.inputmethod;
+import android.view.inputmethod.ImeTracker;
import com.android.internal.inputmethod.InputBindResult;
/**
@@ -30,7 +31,7 @@ oneway interface IInputMethodClient {
void onUnbindAccessibilityService(int sequence, int id);
void setActive(boolean active, boolean fullscreen);
void setInteractive(boolean active, boolean fullscreen);
- void setImeVisibility(boolean visible);
+ void setImeVisibility(boolean visible, in @nullable ImeTracker.Token statsToken);
void scheduleStartInputIfNecessary(boolean fullscreen);
void reportFullscreenMode(boolean fullscreen);
void setImeTraceEnabled(boolean enabled);
diff --git a/core/java/com/android/internal/os/WebViewZygoteInit.java b/core/java/com/android/internal/os/WebViewZygoteInit.java
index 9ed738406707..8dee2230fd1f 100644
--- a/core/java/com/android/internal/os/WebViewZygoteInit.java
+++ b/core/java/com/android/internal/os/WebViewZygoteInit.java
@@ -16,18 +16,15 @@
package com.android.internal.os;
-import android.app.ApplicationLoaders;
import android.app.LoadedApk;
import android.content.pm.ApplicationInfo;
import android.net.LocalSocket;
-import android.text.TextUtils;
import android.util.Log;
import android.webkit.WebViewFactory;
import android.webkit.WebViewFactoryProvider;
import android.webkit.WebViewLibraryLoader;
import java.io.DataOutputStream;
-import java.io.File;
import java.io.IOException;
import java.lang.reflect.Method;
@@ -83,28 +80,6 @@ class WebViewZygoteInit {
Log.i(TAG, "Application preload done");
}
- @Override
- protected void handlePreloadPackage(String packagePath, String libsPath, String libFileName,
- String cacheKey) {
- Log.i(TAG, "Beginning package preload");
- // Ask ApplicationLoaders to create and cache a classloader for the WebView APK so that
- // our children will reuse the same classloader instead of creating their own.
- // This enables us to preload Java and native code in the webview zygote process and
- // have the preloaded versions actually be used post-fork.
- ClassLoader loader = ApplicationLoaders.getDefault().createAndCacheWebViewClassLoader(
- packagePath, libsPath, cacheKey);
-
- // Add the APK to the Zygote's list of allowed files for children.
- String[] packageList = TextUtils.split(packagePath, File.pathSeparator);
- for (String packageEntry : packageList) {
- Zygote.nativeAllowFileAcrossFork(packageEntry);
- }
-
- doPreload(loader, libFileName);
-
- Log.i(TAG, "Package preload done");
- }
-
private void doPreload(ClassLoader loader, String libFileName) {
// Load the native library using WebViewLibraryLoader to share the RELRO data with other
// processes.
diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java
index cab84bb01f70..fafa08536d6c 100644
--- a/core/java/com/android/internal/os/Zygote.java
+++ b/core/java/com/android/internal/os/Zygote.java
@@ -938,8 +938,6 @@ public final class Zygote {
throw new IllegalArgumentException(USAP_ERROR_PREFIX + "--get-pid");
} else if (args.mPreloadDefault) {
throw new IllegalArgumentException(USAP_ERROR_PREFIX + "--preload-default");
- } else if (args.mPreloadPackage != null) {
- throw new IllegalArgumentException(USAP_ERROR_PREFIX + "--preload-package");
} else if (args.mPreloadApp != null) {
throw new IllegalArgumentException(USAP_ERROR_PREFIX + "--preload-app");
} else if (args.mStartChildZygote) {
diff --git a/core/java/com/android/internal/os/ZygoteArguments.java b/core/java/com/android/internal/os/ZygoteArguments.java
index 86b9a59fef72..27ce64e3ae29 100644
--- a/core/java/com/android/internal/os/ZygoteArguments.java
+++ b/core/java/com/android/internal/os/ZygoteArguments.java
@@ -141,33 +141,12 @@ class ZygoteArguments {
String mAppDataDir;
/**
- * The APK path of the package to preload, when using --preload-package.
- */
- String mPreloadPackage;
-
- /**
* A Base64 string representing a serialize ApplicationInfo Parcel,
when using --preload-app.
*/
String mPreloadApp;
/**
- * The native library path of the package to preload, when using --preload-package.
- */
- String mPreloadPackageLibs;
-
- /**
- * The filename of the native library to preload, when using --preload-package.
- */
- String mPreloadPackageLibFileName;
-
- /**
- * The cache key under which to enter the preloaded package into the classloader cache, when
- * using --preload-package.
- */
- String mPreloadPackageCacheKey;
-
- /**
* Whether this is a request to start preloading the default resources and classes. This
* argument only makes sense when the zygote is in lazy preload mode (i.e, when it's started
* with --enable-lazy-preload).
@@ -419,12 +398,6 @@ class ZygoteArguments {
} else if (arg.equals("--preload-app")) {
++curArg;
mPreloadApp = args.nextArg();
- } else if (arg.equals("--preload-package")) {
- curArg += 4;
- mPreloadPackage = args.nextArg();
- mPreloadPackageLibs = args.nextArg();
- mPreloadPackageLibFileName = args.nextArg();
- mPreloadPackageCacheKey = args.nextArg();
} else if (arg.equals("--preload-default")) {
mPreloadDefault = true;
expectRuntimeArgs = false;
@@ -504,11 +477,6 @@ class ZygoteArguments {
if (argCount > curArg) {
throw new IllegalArgumentException("Unexpected arguments after --query-abi-list.");
}
- } else if (mPreloadPackage != null) {
- if (argCount > curArg) {
- throw new IllegalArgumentException(
- "Unexpected arguments after --preload-package.");
- }
} else if (mPreloadApp != null) {
if (argCount > curArg) {
throw new IllegalArgumentException(
diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java
index d4dcec948e31..2eab0813956d 100644
--- a/core/java/com/android/internal/os/ZygoteConnection.java
+++ b/core/java/com/android/internal/os/ZygoteConnection.java
@@ -165,14 +165,6 @@ class ZygoteConnection {
return null;
}
- if (parsedArgs.mPreloadPackage != null) {
- handlePreloadPackage(parsedArgs.mPreloadPackage,
- parsedArgs.mPreloadPackageLibs,
- parsedArgs.mPreloadPackageLibFileName,
- parsedArgs.mPreloadPackageCacheKey);
- return null;
- }
-
if (canPreloadApp() && parsedArgs.mPreloadApp != null) {
byte[] rawParcelData = Base64.getDecoder().decode(parsedArgs.mPreloadApp);
Parcel appInfoParcel = Parcel.obtain();
@@ -475,11 +467,6 @@ class ZygoteConnection {
return mSocketOutStream;
}
- protected void handlePreloadPackage(String packagePath, String libsPath, String libFileName,
- String cacheKey) {
- throw new RuntimeException("Zygote does not support package preloading");
- }
-
protected boolean canPreloadApp() {
return false;
}
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index 011ef30c7466..ca984c03b174 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -117,7 +117,6 @@ cc_library_shared_for_libandroid_runtime {
],
static_libs: [
- "libnativehelper_lazy",
"libziparchive_for_incfs",
"libguiflags",
],
@@ -292,6 +291,7 @@ cc_library_shared_for_libandroid_runtime {
"libgif",
"libgui_window_info_static",
"libkernelconfigs",
+ "libnativehelper_lazy",
"libseccomp_policy",
"libgrallocusage",
"libscrypt_static",
@@ -421,6 +421,7 @@ cc_library_shared_for_libandroid_runtime {
"libimage_type_recognition",
"libinput",
"libjpeg",
+ "libnativehelper_jvm",
"libpiex",
"libpng",
"libtiff_directory",
diff --git a/core/jni/com_android_internal_content_FileSystemUtils.cpp b/core/jni/com_android_internal_content_FileSystemUtils.cpp
index d426f1240a7f..6c72544a7958 100644
--- a/core/jni/com_android_internal_content_FileSystemUtils.cpp
+++ b/core/jni/com_android_internal_content_FileSystemUtils.cpp
@@ -87,9 +87,10 @@ bool punchHoles(const char *filePath, const uint64_t offset,
IF_ALOGD() {
ALOGD("Total number of LOAD segments %zu", programHeaders.size());
- ALOGD("Size before punching holes st_blocks: %" PRIu64
- ", st_blksize: %d, st_size: %" PRIu64 "",
- beforePunch.st_blocks, beforePunch.st_blksize,
+ ALOGD("Size before punching holes st_blocks: %" PRIu64 ", st_blksize: %" PRIu64
+ ", st_size: %" PRIu64 "",
+ static_cast<uint64_t>(beforePunch.st_blocks),
+ static_cast<uint64_t>(beforePunch.st_blksize),
static_cast<uint64_t>(beforePunch.st_size));
}
@@ -193,9 +194,10 @@ bool punchHoles(const char *filePath, const uint64_t offset,
ALOGD("lstat64 failed for filePath %s, error:%d", filePath, errno);
return false;
}
- ALOGD("Size after punching holes st_blocks: %" PRIu64 ", st_blksize: %d, st_size: %" PRIu64
- "",
- afterPunch.st_blocks, afterPunch.st_blksize,
+ ALOGD("Size after punching holes st_blocks: %" PRIu64 ", st_blksize: %" PRIu64
+ ", st_size: %" PRIu64 "",
+ static_cast<uint64_t>(afterPunch.st_blocks),
+ static_cast<uint64_t>(afterPunch.st_blksize),
static_cast<uint64_t>(afterPunch.st_size));
}
@@ -271,8 +273,9 @@ bool punchHolesInZip(const char *filePath, uint64_t offset, uint16_t extraFieldL
uint64_t blockSize = beforePunch.st_blksize;
IF_ALOGD() {
ALOGD("Extra field length: %hu, Size before punching holes st_blocks: %" PRIu64
- ", st_blksize: %d, st_size: %" PRIu64 "",
- extraFieldLen, beforePunch.st_blocks, beforePunch.st_blksize,
+ ", st_blksize: %" PRIu64 ", st_size: %" PRIu64 "",
+ extraFieldLen, static_cast<uint64_t>(beforePunch.st_blocks),
+ static_cast<uint64_t>(beforePunch.st_blksize),
static_cast<uint64_t>(beforePunch.st_size));
}
@@ -346,8 +349,9 @@ bool punchHolesInZip(const char *filePath, uint64_t offset, uint16_t extraFieldL
return false;
}
ALOGD("punchHolesInApk:: Size after punching holes st_blocks: %" PRIu64
- ", st_blksize: %d, st_size: %" PRIu64 "",
- afterPunch.st_blocks, afterPunch.st_blksize,
+ ", st_blksize: %" PRIu64 ", st_size: %" PRIu64 "",
+ static_cast<uint64_t>(afterPunch.st_blocks),
+ static_cast<uint64_t>(afterPunch.st_blksize),
static_cast<uint64_t>(afterPunch.st_size));
}
return true;
diff --git a/core/proto/android/widget/remoteviews.proto b/core/proto/android/widget/remoteviews.proto
index f08ea1b6f092..37d1c5b03ee5 100644
--- a/core/proto/android/widget/remoteviews.proto
+++ b/core/proto/android/widget/remoteviews.proto
@@ -21,6 +21,7 @@ option java_multiple_files = true;
package android.widget;
import "frameworks/base/core/proto/android/privacy.proto";
+import "frameworks/base/core/proto/android/content/res/color_state_list.proto";
/**
* An android.widget.RemoteViews object. This is used by RemoteViews.createPreviewFromProto
@@ -71,6 +72,23 @@ message RemoteViewsProto {
optional int32 view_type_count = 4;
optional bool attached = 5;
}
+
+ /**
+ * An android.graphics.drawable Icon.
+ */
+ message Icon {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+ optional int32 blend_mode = 1;
+ optional android.content.res.ColorStateListProto tint_list = 2;
+ oneof icon {
+ bytes bitmap = 3;
+ string resource = 4;
+ bytes data = 5;
+ string uri = 6;
+ string uri_adaptive_bitmap = 7;
+ bytes adaptive_bitmap = 8;
+ };
+ }
}
diff --git a/core/res/Android.bp b/core/res/Android.bp
index a44e92ca4019..9207aa8e9c24 100644
--- a/core/res/Android.bp
+++ b/core/res/Android.bp
@@ -163,6 +163,7 @@ android_app {
"android.net.platform.flags-aconfig",
"com.android.window.flags.window-aconfig",
"android.permission.flags-aconfig",
+ "android.os.flags-aconfig",
],
}
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 9f00d5e08bbf..193836ed9b15 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -8243,7 +8243,8 @@
<p>Not for use by third-party applications. -->
<permission
android:name="android.permission.CAPTURE_CONSENTLESS_BUGREPORT_DELEGATED_CONSENT"
- android:protectionLevel="signature|privileged" />
+ android:protectionLevel="signature|privileged"
+ android:featureFlag="android.os.allow_consentless_bugreport_delegated_consent" />
<!-- @SystemApi Allows to call APIs that log process lifecycle events
@hide -->
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 5b6de34c831d..043f2b2f3fe8 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -1411,10 +1411,8 @@
<string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Kies om draadlose ontfouting te deaktiveer."</string>
<string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Toetsraamwerkmodus is geaktiveer"</string>
<string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Voer \'n fabriekterugstelling uit om Toetsraamwerkmodus te deaktiveer."</string>
- <!-- no translation found for wrong_hsum_configuration_notification_title (7212758829332714385) -->
- <skip />
- <!-- no translation found for wrong_hsum_configuration_notification_message (5353475441480684381) -->
- <skip />
+ <string name="wrong_hsum_configuration_notification_title" msgid="7212758829332714385">"Verkeerde bou-opstelling van Stelselgebruiker sonder Koppelvlak (HSUM)"</string>
+ <string name="wrong_hsum_configuration_notification_message" msgid="5353475441480684381">"Die Stelselgebruiker sonder Koppelvlak-modustoestand van hierdie toestel verskil van sy bou-opstelling. Doen ’n fabriekterugstelling van die toestel."</string>
<string name="console_running_notification_title" msgid="6087888939261635904">"Reekskonsole is geaktiveer"</string>
<string name="console_running_notification_message" msgid="7892751888125174039">"Werkverrigting word beïnvloed. Gaan selflaaiprogram na om te deaktiveer."</string>
<string name="mte_override_notification_title" msgid="4731115381962792944">"Eksperimentele MTE is geaktiveer"</string>
@@ -1430,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"DEEL"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"WEIER"</string>
<string name="select_input_method" msgid="3971267998568587025">"Kies invoermetode"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Taalinstellings"</string>
<string name="show_ime" msgid="6406112007347443383">"Hou dit op die skerm terwyl fisieke sleutelbord aktief is"</string>
<string name="hardware" msgid="3611039921284836033">"Gebruik skermsleutelbord"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Stel <xliff:g id="DEVICE_NAME">%s</xliff:g> op"</string>
@@ -1759,12 +1758,9 @@
<string name="accessibility_shortcut_enabling_service" msgid="5473495203759847687">"Het volumesleutels ingehou. <xliff:g id="SERVICE_NAME">%1$s</xliff:g> aangeskakel."</string>
<string name="accessibility_shortcut_disabling_service" msgid="8675244165062700619">"Het volumesleutels ingehou. <xliff:g id="SERVICE_NAME">%1$s</xliff:g> is afgeskakel"</string>
<string name="accessibility_shortcut_spoken_feedback" msgid="3760999147597564314">"Los die volumesleutels. Druk en hou albei volumesleutels weer 3 sekondes lank in om <xliff:g id="SERVICE_NAME">%1$s</xliff:g> aan te skakel."</string>
- <!-- no translation found for accessibility_button_prompt_text (6105393217162198616) -->
- <skip />
- <!-- no translation found for accessibility_gesture_prompt_text (6452246951969541792) -->
- <skip />
- <!-- no translation found for accessibility_gesture_3finger_prompt_text (77745752309056152) -->
- <skip />
+ <string name="accessibility_button_prompt_text" msgid="6105393217162198616">"Kies ’n kenmerk"</string>
+ <string name="accessibility_gesture_prompt_text" msgid="6452246951969541792">"Kies ’n kenmerk"</string>
+ <string name="accessibility_gesture_3finger_prompt_text" msgid="77745752309056152">"Kies ’n kenmerk"</string>
<string name="accessibility_button_instructional_text" msgid="6831154884557881996">"Die kenmerk sal oopmaak wanneer jy weer op die toeganklikheidknoppie tik"</string>
<string name="accessibility_gesture_instructional_text" msgid="4133877896011098550">"Die kenmerk sal oopmaak wanneer jy weer hierdie kortpad gebruik. Swiep vanaf die onderkant van jou skerm met 2 vingers op en los vinnig."</string>
<string name="accessibility_gesture_3finger_instructional_text" msgid="1124458279366968154">"Die kenmerk sal oopmaak wanneer jy weer hierdie kortpad gebruik. Swiep vanaf die onderkant van jou skerm met 3 vingers op en los vinnig."</string>
@@ -1890,8 +1886,7 @@
<string name="restr_pin_error_too_short" msgid="1547007808237941065">"PIN is te kort. Moet ten minste 4 syfers wees."</string>
<string name="restr_pin_try_later" msgid="5897719962541636727">"Probeer later weer"</string>
<string name="immersive_cling_title" msgid="2307034298721541791">"Bekyk tans volskerm"</string>
- <!-- no translation found for immersive_cling_description (2896205051090870978) -->
- <skip />
+ <string name="immersive_cling_description" msgid="2896205051090870978">"Swiep van die bokant van jou skerm af ondertoe om uit te gaan"</string>
<string name="immersive_cling_positive" msgid="7047498036346489883">"Het dit"</string>
<string name="display_rotation_camera_compat_toast_after_rotation" msgid="7600891546249829854">"Draai vir ’n beter aansig"</string>
<string name="display_rotation_camera_compat_toast_in_multi_window" msgid="2473122980393502775">"Maak <xliff:g id="NAME">%s</xliff:g> in volskerm oop vir ’n beter aansig"</string>
@@ -2443,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Wissel gebruiker"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Demp"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Tik om klank te demp"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Blaaier"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontakte"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-pos"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musiek"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalender"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Sakrekenaar"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apps"</string>
</resources>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 7b40f305668e..c01cb6976b7e 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -312,7 +312,7 @@
<string name="foreground_service_tap_for_details" msgid="9078123626015586751">"በባትሪ እና ውሂብ አጠቃቀም ላይ ዝርዝሮችን ለማግኘት መታ ያድርጉ"</string>
<string name="foreground_service_multiple_separator" msgid="5002287361849863168">"<xliff:g id="LEFT_SIDE">%1$s</xliff:g>፣ <xliff:g id="RIGHT_SIDE">%2$s</xliff:g>"</string>
<string name="safeMode" msgid="8974401416068943888">"የሚያስተማምን ሁነታ"</string>
- <string name="android_system_label" msgid="5974767339591067210">"Android ስርዓት"</string>
+ <string name="android_system_label" msgid="5974767339591067210">"Android ሥርዓት"</string>
<string name="user_owner_label" msgid="8628726904184471211">"ወደ የግል መገለጫ ቀይር"</string>
<string name="managed_profile_label" msgid="7316778766973512382">"ወደ የስራ መገለጫ ቀይር"</string>
<string name="user_owner_app_label" msgid="1553595155465750298">"ወደ የግል <xliff:g id="APP_NAME">%1$s</xliff:g> ቀይር"</string>
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"አጋራ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"አትቀበል"</string>
<string name="select_input_method" msgid="3971267998568587025">"የግቤት ስልት ምረጥ"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"የቋንቋ ቅንብሮች"</string>
<string name="show_ime" msgid="6406112007347443383">"አካላዊ የቁልፍ ሰሌዳ ገቢር ሆኖ ሳለ በማያ ገፅ ላይ አቆየው"</string>
<string name="hardware" msgid="3611039921284836033">"የማያ ገጽ ላይ የቁልፍ ሰሌዳ ይጠቀሙ"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g>ን ያዋቅሩ"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"ተጠቃሚ ቀይር"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"ድምፀ-ከል አድርግ"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"ድምፀ-ከል አድርግ ለማድረግ መታ ያድርጉ"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"አሳሽ"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"ዕውቂያዎች"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"ኢሜይል"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"ኤስኤምኤስ"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"ሙዚቃ"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"ቀን መቁጠሪያ"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"ሒሳብ ማስያ"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"ካርታዎች"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"መተግበሪያዎች"</string>
</resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index e17e0b6942d4..732b81b2b2b7 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -1432,6 +1432,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"مشاركة"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"رفض"</string>
<string name="select_input_method" msgid="3971267998568587025">"اختيار أسلوب الإدخال"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"إعدادات اللغة"</string>
<string name="show_ime" msgid="6406112007347443383">"استمرار عرضها على الشاشة عندما تكون لوحة المفاتيح الخارجية متصلة"</string>
<string name="hardware" msgid="3611039921284836033">"استخدام لوحة المفاتيح على الشاشة"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"إعداد <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2441,22 +2442,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"تبديل المستخدم"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"كتم الصوت"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"انقر لكتم الصوت"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"المتصفّح"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"جهات الاتصال"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"البريد الإلكتروني"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"‏رسائل SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"الموسيقى"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"التقويم"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"الآلة الحاسبة"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"‏خرائط Google"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"التطبيقات"</string>
</resources>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 2642a3228546..4ddef5f2ddf1 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"শ্বেয়াৰ কৰক"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"প্ৰত্যাখ্যান কৰক"</string>
<string name="select_input_method" msgid="3971267998568587025">"ইনপুট পদ্ধতি বাছনি কৰক"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ভাষাৰ ছেটিং"</string>
<string name="show_ime" msgid="6406112007347443383">"কায়িক কীব’ৰ্ড সক্ৰিয় হৈ থাকোঁতে ইয়াক স্ক্ৰীনত ৰাখক"</string>
<string name="hardware" msgid="3611039921284836033">"অন-স্ক্ৰীন কীব’ৰ্ড ব্যৱহাৰ কৰক"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> কনফিগাৰ কৰক"</string>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index 90db2d46c0ae..93976f9d6cdf 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"PAYLAŞIN"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"RƏDD EDİN"</string>
<string name="select_input_method" msgid="3971267998568587025">"Daxiletmə metodunu seçin"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Dil ayarları"</string>
<string name="show_ime" msgid="6406112007347443383">"Fiziki klaviatura aktiv olanda görünsün"</string>
<string name="hardware" msgid="3611039921284836033">"Ekran klaviaturası işlədin"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> cihazını konfiqurasiya edin"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"İstifadəçini dəyişin"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Susdurun"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Susdurmaq üçün toxunun"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Brauzer"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontaktlar"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-poçt"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musiqi"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Təqvim"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulyator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Xəritə"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Tətbiqlər"</string>
</resources>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index a2a885bad85a..33a92e06f51f 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"DELI"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ODBIJ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Izbor metoda unosa"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Podešavanja jezika"</string>
<string name="show_ime" msgid="6406112007347443383">"Zadržava se na ekranu dok je fizička tastatura aktivna"</string>
<string name="hardware" msgid="3611039921284836033">"Koristi tastaturu na ekranu"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfigurišite uređaj <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2438,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Promeni korisnika"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Isključi zvuk"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Dodirnite da biste isključili zvuk"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Pregledač"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontakti"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Imejl"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Muzika"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mape"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikacije"</string>
</resources>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 18d5698ae460..cd040c8cb057 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -1430,6 +1430,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"АБАГУЛІЦЬ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"АДХІЛІЦЬ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Выберыце метад уводу"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Налады мовы"</string>
<string name="show_ime" msgid="6406112007347443383">"Захоўваць яе на экране ў той час, калі фізічная клавіятура актыўная"</string>
<string name="hardware" msgid="3611039921284836033">"Экранная клавіятура"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Наладзьце прыладу \"<xliff:g id="DEVICE_NAME">%s</xliff:g>\""</string>
@@ -2439,22 +2440,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Змяніць карыстальніка"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Выключыць гук"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Націсніце, каб выключыць гук"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Браўзер"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Кантакты"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Электронная пошта"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Музыка"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Каляндар"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Калькулятар"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карты"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Праграмы"</string>
</resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index ea49f521560b..0fe106733fd6 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"СПОДЕЛЯНЕ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ОТХВЪРЛЯНЕ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Избор на метод на въвеждане"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Езикови настройки"</string>
<string name="show_ime" msgid="6406112007347443383">"Показване на екрана, докато физическата клавиатура е активна"</string>
<string name="hardware" msgid="3611039921284836033">"Ползв. на екранната клавиатура"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Конфигуриране на <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2433,26 +2434,17 @@
<string name="face_dangling_notification_msg" msgid="746235263598985384">"Моделът на лицето ви вече не може да бъде разпознат. Настройте отново „Отключване с лице“."</string>
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Настройване"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Не сега"</string>
- <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Будилник за <xliff:g id="USER_NAME">%s</xliff:g>"</string>
+ <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Будилник за: <xliff:g id="USER_NAME">%s</xliff:g>"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Смяна на потребителя"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Спиране на звука"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Докоснете, за да спрете звука"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Браузър"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Контакти"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Имейл"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Музика"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Календар"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Калкулатор"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карти"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Приложения"</string>
</resources>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index 354899358dbc..b32cf2daaf5b 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"শেয়ার করুন"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"অস্বীকার করুন"</string>
<string name="select_input_method" msgid="3971267998568587025">"ইনপুট পদ্ধতি বেছে নিন"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ভাষা সেটিংস"</string>
<string name="show_ime" msgid="6406112007347443383">"ফিজিক্যাল কীবোর্ড সক্রিয় থাকার সময় এটিকে স্ক্রীনে রাখুন"</string>
<string name="hardware" msgid="3611039921284836033">"স্ক্রিনের কীবোর্ড ব্যবহার করুন"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> কনফিগার করুন"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"ব্যবহারকারী পাল্টান"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"মিউট করুন"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"সাউন্ড মিউট করতে ট্যাপ করুন"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"ব্রাউজার"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"পরিচিতি"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"ইমেল"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"এসএমএস"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"মিউজিক"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"ক্যালেন্ডার"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"ক্যালকুলেটর"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"ম্যাপ"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"অ্যাপ্লিকেশন"</string>
</resources>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index eb66410b3f69..78a74a893219 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"PODIJELI"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ODBACI"</string>
<string name="select_input_method" msgid="3971267998568587025">"Odaberite način unosa"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Postavke jezika"</string>
<string name="show_ime" msgid="6406112007347443383">"Prikaži na ekranu dok je fizička tastatura aktivna"</string>
<string name="hardware" msgid="3611039921284836033">"Koristi tastaturu na ekranu"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfigurirajte uređaj <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2438,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Prebaci na drugog korisnika"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Isključi zvuk"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Dodirnite da isključite zvuk"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Preglednik"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontakti"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-pošta"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Muzika"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mape"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikacije"</string>
</resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 9e5c336b9b6a..bf9540c71150 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"COMPARTEIX"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"REBUTJA"</string>
<string name="select_input_method" msgid="3971267998568587025">"Selecciona un mètode d\'introducció"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Configuració d\'idioma"</string>
<string name="show_ime" msgid="6406112007347443383">"Mantén-lo en pantalla mentre el teclat físic està actiu"</string>
<string name="hardware" msgid="3611039921284836033">"Utilitza el teclat en pantalla"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configura <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2438,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Canvia d\'usuari"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Silencia"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Toca per silenciar el so"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Navegador"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contactes"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Correu electrònic"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Música"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculadora"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicacions"</string>
</resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 78b79cb227e6..139058fb0e15 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -1430,6 +1430,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"SDÍLET"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ODMÍTNOUT"</string>
<string name="select_input_method" msgid="3971267998568587025">"Vybrat metodu zadávání"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Nastavení jazyka"</string>
<string name="show_ime" msgid="6406112007347443383">"Ponechat na obrazovce, když je aktivní fyzická klávesnice"</string>
<string name="hardware" msgid="3611039921284836033">"Použít softwarovou klávesnici"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Nakonfigurujte zařízení <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2439,22 +2440,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Přepnout uživatele"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Ztlumit"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Klepnutím ztlumíte zvuk"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Prohlížeč"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontakty"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E‑mail"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Hudba"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalendář"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulačka"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapy"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikace"</string>
</resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index b7e70ef6f7eb..8ec7e223f3d5 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"DEL"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"AFVIS"</string>
<string name="select_input_method" msgid="3971267998568587025">"Vælg inputmetode"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Sprogindstillinger"</string>
<string name="show_ime" msgid="6406112007347443383">"Behold den på skærmen, mens det fysiske tastatur er aktivt"</string>
<string name="hardware" msgid="3611039921284836033">"Brug skærmtastaturet"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfigurer <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Skift bruger"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Slå lyden fra"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Tryk for at slå lyden fra"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Browser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontakter"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Mail"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"Sms"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musik"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalender"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Lommeregner"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Kort"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apps"</string>
</resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index e30f92d4725f..a7ae27824a01 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"TEILEN"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ABLEHNEN"</string>
<string name="select_input_method" msgid="3971267998568587025">"Eingabemethode wählen"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Spracheinstellungen"</string>
<string name="show_ime" msgid="6406112007347443383">"Bildschirmtastatur auch dann anzeigen, wenn physische Tastatur aktiv ist"</string>
<string name="hardware" msgid="3611039921284836033">"Bildschirmtastatur verwenden"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> konfigurieren"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Nutzer wechseln"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Stummschalten"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Zum Stummschalten tippen"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Browser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontakte"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E‑Mail"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musik"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalender"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Rechner"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Anwendungen"</string>
</resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index c7a55634fb4b..a6a3f6f29246 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ΚΟΙΝΟΠΟΙΗΣΗ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ΑΠΟΡΡΙΨΗ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Επιλογή μεθόδου εισόδου"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Ρυθμίσεις γλώσσας"</string>
<string name="show_ime" msgid="6406112007347443383">"Να παραμένει στην οθόνη όταν είναι ενεργό το κανονικό πληκτρολόγιο"</string>
<string name="hardware" msgid="3611039921284836033">"Χρήση πληκτρολογίου οθόνης"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Διαμόρφωση <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Εναλλαγή χρήστη"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Σίγαση"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Πατήστε για σίγαση του ήχου"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Πρόγραμμα περιήγησης"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Επαφές"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Ηλεκτρονικό ταχυδρομείο"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Μουσική"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Ημερολόγιο"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Αριθμομηχανή"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Χάρτες"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Εφαρμογές"</string>
</resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 5dfd2ac76aad..646e87db97e6 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"SHARE"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"DECLINE"</string>
<string name="select_input_method" msgid="3971267998568587025">"Choose input method"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Language settings"</string>
<string name="show_ime" msgid="6406112007347443383">"Keep it on screen while physical keyboard is active"</string>
<string name="hardware" msgid="3611039921284836033">"Use on-screen keyboard"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configure <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Switch user"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Mute"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Tap to mute sound"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Browser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contacts"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Email"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Music"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
</resources>
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index 55c637610f8e..656d1774d6ef 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"SHARE"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"DECLINE"</string>
<string name="select_input_method" msgid="3971267998568587025">"Choose input method"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Language Settings"</string>
<string name="show_ime" msgid="6406112007347443383">"Keep it on screen while physical keyboard is active"</string>
<string name="hardware" msgid="3611039921284836033">"Use on-screen keyboard"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configure <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index bb55bade208b..6f83d88daaa2 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"SHARE"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"DECLINE"</string>
<string name="select_input_method" msgid="3971267998568587025">"Choose input method"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Language settings"</string>
<string name="show_ime" msgid="6406112007347443383">"Keep it on screen while physical keyboard is active"</string>
<string name="hardware" msgid="3611039921284836033">"Use on-screen keyboard"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configure <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Switch user"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Mute"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Tap to mute sound"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Browser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contacts"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Email"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Music"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
</resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 1ab0a1664444..3f194faecdbc 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"SHARE"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"DECLINE"</string>
<string name="select_input_method" msgid="3971267998568587025">"Choose input method"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Language settings"</string>
<string name="show_ime" msgid="6406112007347443383">"Keep it on screen while physical keyboard is active"</string>
<string name="hardware" msgid="3611039921284836033">"Use on-screen keyboard"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configure <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Switch user"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Mute"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Tap to mute sound"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Browser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contacts"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Email"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Music"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
</resources>
diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml
index cac4a51ba497..c59c194209d3 100644
--- a/core/res/res/values-en-rXC/strings.xml
+++ b/core/res/res/values-en-rXC/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‏‎‎‏‎‏‎‏‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‏‏‎‎‏‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‎‏‎‎SHARE‎‏‎‎‏‎"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎DECLINE‎‏‎‎‏‎"</string>
<string name="select_input_method" msgid="3971267998568587025">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‏‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‎‏‎‎‎‏‎Choose input method‎‏‎‎‏‎"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‎‎‏‎‎‎‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‎Language Settings‎‏‎‎‏‎"</string>
<string name="show_ime" msgid="6406112007347443383">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‏‎‏‏‎‏‏‏‎Keep it on screen while physical keyboard is active‎‏‎‎‏‎"</string>
<string name="hardware" msgid="3611039921284836033">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎Use on-screen keyboard‎‏‎‎‏‎"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‎‏‎‏‎Configure ‎‏‎‎‏‏‎<xliff:g id="DEVICE_NAME">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index b1f56b79b201..3235b0e1af51 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -272,7 +272,7 @@
<string name="bugreport_option_interactive_summary" msgid="8493795476325339542">"Usa esta opción en la mayoría de los casos. Te permite realizar un seguimiento del progreso del informe, ingresar más detalles acerca del problema y tomar capturas de pantalla. Es posible que se omitan secciones menos usadas cuyos informes demoran más en completarse."</string>
<string name="bugreport_option_full_title" msgid="7681035745950045690">"Informe completo"</string>
<string name="bugreport_option_full_summary" msgid="1975130009258435885">"Usa esta opción para reducir al mínimo la interferencia del sistema cuando tu dispositivo no responde o funciona muy lento, o cuando necesitas todas las secciones del informe. No permite ingresar más detalles ni tomar capturas de pantalla adicionales."</string>
- <string name="bugreport_countdown" msgid="6418620521782120755">"{count,plural, =1{Se tomará una captura de pantalla para el informe de errores en # segundo.}many{Se tomará una captura de pantalla para el informe de errores en # segundos.}other{Se tomará una captura de pantalla para el informe de errores en # segundos.}}"</string>
+ <string name="bugreport_countdown" msgid="6418620521782120755">"{count,plural, =1{Se tomará una captura de pantalla para el informe de errores en # segundo.}many{Se tomará una captura de pantalla para el informe de errores en # de segundos.}other{Se tomará una captura de pantalla para el informe de errores en # segundos.}}"</string>
<string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Se tomó la captura de pantalla con el informe de errores"</string>
<string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"No se pudo tomar la captura de pantalla con el informe de errores"</string>
<string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Modo silencioso"</string>
@@ -292,7 +292,7 @@
<string name="notification_channel_security" msgid="8516754650348238057">"Seguridad"</string>
<string name="notification_channel_car_mode" msgid="2123919247040988436">"Modo auto"</string>
<string name="notification_channel_account" msgid="6436294521740148173">"Estado de la cuenta"</string>
- <string name="notification_channel_developer" msgid="1691059964407549150">"Mensajes de programadores"</string>
+ <string name="notification_channel_developer" msgid="1691059964407549150">"Mensajes de desarrolladores"</string>
<string name="notification_channel_developer_important" msgid="7197281908918789589">"Mensajes importantes de desarrolladores"</string>
<string name="notification_channel_updates" msgid="7907863984825495278">"Actualizaciones"</string>
<string name="notification_channel_network_status" msgid="2127687368725272809">"Estado de la red"</string>
@@ -966,7 +966,7 @@
<string name="relationTypeCustom" msgid="282938315217441351">"Personalizado"</string>
<string name="relationTypeAssistant" msgid="4057605157116589315">"Asistente"</string>
<string name="relationTypeBrother" msgid="7141662427379247820">"Hermano"</string>
- <string name="relationTypeChild" msgid="9076258911292693601">"Hijo"</string>
+ <string name="relationTypeChild" msgid="9076258911292693601">"Hijo o hija"</string>
<string name="relationTypeDomesticPartner" msgid="7825306887697559238">"Pareja de hecho"</string>
<string name="relationTypeFather" msgid="3856225062864790596">"Padre"</string>
<string name="relationTypeFriend" msgid="3192092625893980574">"Amigo"</string>
@@ -1127,7 +1127,7 @@
<string name="enable_explore_by_touch_warning_message" product="default" msgid="4312979647356179250">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> desea activar la exploración táctil. Cuando esta función esté activada, podrás escuchar o ver descripciones del contenido seleccionado o usar gestos para interactuar con el dispositivo."</string>
<string name="oneMonthDurationPast" msgid="4538030857114635777">"Hace 1 mes."</string>
<string name="beforeOneMonthDurationPast" msgid="8315149541372065392">"Anterior a 1 mes atrás"</string>
- <string name="last_num_days" msgid="2393660431490280537">"{count,plural, =1{Último # día}many{Últimos # días}other{Últimos # días}}"</string>
+ <string name="last_num_days" msgid="2393660431490280537">"{count,plural, =1{Último # día}many{Últimos # de días}other{Últimos # días}}"</string>
<string name="last_month" msgid="1528906781083518683">"Último mes"</string>
<string name="older" msgid="1645159827884647400">"Antiguos"</string>
<string name="preposition_for_date" msgid="2780767868832729599">"activado <xliff:g id="DATE">%s</xliff:g>"</string>
@@ -1155,11 +1155,11 @@
<string name="duration_days_shortest_future" msgid="3392722163935571543">"en <xliff:g id="COUNT">%d</xliff:g> d"</string>
<string name="duration_years_shortest_future" msgid="5537464088352970388">"en <xliff:g id="COUNT">%d</xliff:g> años"</string>
<string name="duration_minutes_relative" msgid="8620337701051015593">"{count,plural, =1{Hace # minuto}many{Hace # minutos}other{Hace # minutos}}"</string>
- <string name="duration_hours_relative" msgid="4836449961693180253">"{count,plural, =1{Hace # hora}many{Hace # horas}other{Hace # horas}}"</string>
- <string name="duration_days_relative" msgid="621965767567258302">"{count,plural, =1{Hace # día}many{Hace # días}other{Hace # días}}"</string>
+ <string name="duration_hours_relative" msgid="4836449961693180253">"{count,plural, =1{Hace # hora}many{Hace # de horas}other{Hace # horas}}"</string>
+ <string name="duration_days_relative" msgid="621965767567258302">"{count,plural, =1{Hace # día}many{Hace # de días}other{Hace # días}}"</string>
<string name="duration_years_relative" msgid="8731202348869424370">"{count,plural, =1{Hace # año}many{Hace # años}other{Hace # años}}"</string>
- <string name="duration_minutes_relative_future" msgid="5259574171747708115">"{count,plural, =1{# minuto}many{# minutos}other{# minutos}}"</string>
- <string name="duration_hours_relative_future" msgid="6670440478481140565">"{count,plural, =1{# hora}many{# horas}other{# horas}}"</string>
+ <string name="duration_minutes_relative_future" msgid="5259574171747708115">"{count,plural, =1{# minuto}many{# de minutos}other{# minutos}}"</string>
+ <string name="duration_hours_relative_future" msgid="6670440478481140565">"{count,plural, =1{# hora}many{# horas}other{# horas}}"</string>
<string name="duration_days_relative_future" msgid="8870658635774250746">"{count,plural, =1{# día}many{# días}other{# días}}"</string>
<string name="duration_years_relative_future" msgid="8855853883925918380">"{count,plural, =1{# año}many{# años}other{# años}}"</string>
<string name="VideoView_error_title" msgid="5750686717225068016">"Problemas de video"</string>
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"COMPARTIR"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"RECHAZAR"</string>
<string name="select_input_method" msgid="3971267998568587025">"Selecciona el método de entrada"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Configuración del idioma"</string>
<string name="show_ime" msgid="6406112007347443383">"Mientras el teclado físico está activo"</string>
<string name="hardware" msgid="3611039921284836033">"Usar teclado en pantalla"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configura <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -1473,7 +1474,7 @@
<string name="ext_media_seamless_action" msgid="8837030226009268080">"Cambiar salida"</string>
<string name="ext_media_missing_title" msgid="3209472091220515046">"Falta <xliff:g id="NAME">%s</xliff:g>"</string>
<string name="ext_media_missing_message" msgid="4408988706227922909">"Vuelve a insertar dispositivo"</string>
- <string name="ext_media_move_specific_title" msgid="8492118544775964250">"Transfiriendo la aplicación <xliff:g id="NAME">%s</xliff:g>"</string>
+ <string name="ext_media_move_specific_title" msgid="8492118544775964250">"Moviendo <xliff:g id="NAME">%s</xliff:g>"</string>
<string name="ext_media_move_title" msgid="2682741525619033637">"Transfiriendo los datos"</string>
<string name="ext_media_move_success_title" msgid="4901763082647316767">"Se transfirió el contenido"</string>
<string name="ext_media_move_success_message" msgid="9159542002276982979">"Se transfirió el contenido a <xliff:g id="NAME">%s</xliff:g>"</string>
@@ -1527,7 +1528,7 @@
<string name="input_method_binding_label" msgid="1166731601721983656">"Método de entrada"</string>
<string name="sync_binding_label" msgid="469249309424662147">"Sincronización"</string>
<string name="accessibility_binding_label" msgid="1974602776545801715">"Accesibilidad"</string>
- <string name="wallpaper_binding_label" msgid="1197440498000786738">"Papel tapiz"</string>
+ <string name="wallpaper_binding_label" msgid="1197440498000786738">"Fondo de pantalla"</string>
<string name="chooser_wallpaper" msgid="3082405680079923708">"Cambiar fondo de pantalla"</string>
<string name="notification_listener_binding_label" msgid="2702165274471499713">"Agente de escucha de notificaciones"</string>
<string name="vr_listener_binding_label" msgid="8013112996671206429">"Procesador de realidad virtual"</string>
@@ -1536,7 +1537,7 @@
<string name="vpn_title" msgid="5906991595291514182">"VPN activada"</string>
<string name="vpn_title_long" msgid="6834144390504619998">"VPN está activado por <xliff:g id="APP">%s</xliff:g>"</string>
<string name="vpn_text" msgid="2275388920267251078">"Pulsa para gestionar la red."</string>
- <string name="vpn_text_long" msgid="278540576806169831">"Conectado a <xliff:g id="SESSION">%s</xliff:g>. Pulsa para gestionar la red."</string>
+ <string name="vpn_text_long" msgid="278540576806169831">"Se estableció conexión con <xliff:g id="SESSION">%s</xliff:g>. Presiona para administrar la red."</string>
<string name="vpn_lockdown_connecting" msgid="6096725311950342607">"Estableciendo conexión con la VPN siempre activada..."</string>
<string name="vpn_lockdown_connected" msgid="2853127976590658469">"Se estableció conexión con la VPN siempre activada."</string>
<string name="vpn_lockdown_disconnected" msgid="5573611651300764955">"Desconectado de la VPN siempre activa"</string>
@@ -1915,14 +1916,14 @@
<string name="data_saver_description" msgid="4995164271550590517">"Para reducir el uso de datos, el modo Ahorro de datos evita que algunas apps envíen y reciban datos en segundo plano. La app que estés usando podrá acceder a los datos, pero con menor frecuencia. De esta forma, por ejemplo, las imágenes no se mostrarán hasta que las presiones."</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"¿Deseas activar Ahorro de datos?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"Activar"</string>
- <string name="zen_mode_duration_minutes_summary" msgid="4555514757230849789">"{count,plural, =1{Por un minuto (hasta {formattedTime})}many{Por # minutos (hasta {formattedTime})}other{Por # minutos (hasta {formattedTime})}}"</string>
+ <string name="zen_mode_duration_minutes_summary" msgid="4555514757230849789">"{count,plural, =1{Por un minuto (hasta la(s) {formattedTime})}many{Por # de minutos (hasta la(s) {formattedTime})}other{Por # minutos (hasta la(s) {formattedTime})}}"</string>
<string name="zen_mode_duration_minutes_summary_short" msgid="1187553788355486950">"{count,plural, =1{Durante 1 min (hasta {formattedTime})}many{Durante # min (hasta {formattedTime})}other{Durante # min (hasta {formattedTime})}}"</string>
<string name="zen_mode_duration_hours_summary" msgid="3866333100793277211">"{count,plural, =1{Durante 1 hora (hasta {formattedTime})}many{Durante # horas (hasta {formattedTime})}other{Durante # horas (hasta {formattedTime})}}"</string>
<string name="zen_mode_duration_hours_summary_short" msgid="687919813833347945">"{count,plural, =1{Durante 1 h (hasta {formattedTime})}many{Durante # h (hasta {formattedTime})}other{Durante # h (hasta {formattedTime})}}"</string>
- <string name="zen_mode_duration_minutes" msgid="2340007982276569054">"{count,plural, =1{Durante un minuto}many{Durante # minutos}other{Durante # minutos}}"</string>
- <string name="zen_mode_duration_minutes_short" msgid="2435756450204526554">"{count,plural, =1{Durante 1 min}many{Durante # min}other{Durante # min}}"</string>
- <string name="zen_mode_duration_hours" msgid="7841806065034711849">"{count,plural, =1{Durante 1 hora}many{Durante # horas}other{Durante # horas}}"</string>
- <string name="zen_mode_duration_hours_short" msgid="3666949653933099065">"{count,plural, =1{Durante 1 h}many{Durante # h}other{Durante # h}}"</string>
+ <string name="zen_mode_duration_minutes" msgid="2340007982276569054">"{count,plural, =1{Durante un minuto}many{Durante # de minutos}other{Durante # minutos}}"</string>
+ <string name="zen_mode_duration_minutes_short" msgid="2435756450204526554">"{count,plural, =1{Durante 1 min}many{Durante # de min}other{Durante # min}}"</string>
+ <string name="zen_mode_duration_hours" msgid="7841806065034711849">"{count,plural, =1{Durante 1 hora}many{Durante # de horas}other{Durante # horas}}"</string>
+ <string name="zen_mode_duration_hours_short" msgid="3666949653933099065">"{count,plural, =1{Durante 1 h}many{Durante # de h}other{Durante # h}}"</string>
<string name="zen_mode_until_next_day" msgid="1403042784161725038">"Hasta las <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_until" msgid="2250286190237669079">"Hasta la(s) <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_alarm" msgid="7046911727540499275">"Hasta la hora <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> (próxima alarma)"</string>
@@ -2434,26 +2435,17 @@
<string name="face_dangling_notification_msg" msgid="746235263598985384">"Ya no se puede reconocer tu modelo de rostro. Vuelve a configurar el Desbloqueo facial."</string>
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configurar"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ahora no"</string>
- <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Alarma para <xliff:g id="USER_NAME">%s</xliff:g>"</string>
+ <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Alarma para: <xliff:g id="USER_NAME">%s</xliff:g>"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Cambiar de usuario"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Silenciar"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Presiona para silenciar el sonido"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Navegador"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contactos"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Correo electrónico"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Música"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendario"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculadora"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicaciones"</string>
</resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index f187cfde4c91..4fa7d72ff3ca 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -123,7 +123,7 @@
<string name="roamingTextSearching" msgid="5323235489657753486">"Buscando servicio"</string>
<string name="wfcRegErrorTitle" msgid="3193072971584858020">"No se ha podido configurar la llamada por Wi‑Fi"</string>
<string-array name="wfcOperatorErrorAlertMessages">
- <item msgid="468830943567116703">"Para hacer llamadas y enviar mensajes por Wi-Fi, pide antes a tu operador que configure este servicio. Una vez hecho esto, vuelva a activar la llamada por Wi-Fi en Ajustes. (Código de error: <xliff:g id="CODE">%1$s</xliff:g>)"</item>
+ <item msgid="468830943567116703">"Para hacer llamadas y enviar mensajes por Wi-Fi, pide antes a tu operador que configure este servicio. Una vez hecho esto, vuelve a activar la llamada por Wi-Fi en Ajustes. (Código de error: <xliff:g id="CODE">%1$s</xliff:g>)"</item>
</string-array>
<string-array name="wfcOperatorErrorNotificationMessages">
<item msgid="4795145070505729156">"No se ha podido registrar la llamada por Wi‑Fi con tu operador: <xliff:g id="CODE">%1$s</xliff:g>"</item>
@@ -131,7 +131,7 @@
<!-- no translation found for wfcSpnFormat_spn (2982505428519096311) -->
<skip />
<string name="wfcSpnFormat_spn_wifi_calling" msgid="3165949348000906194">"Llamada por Wi‑Fi de <xliff:g id="SPN">%s</xliff:g>"</string>
- <string name="wfcSpnFormat_spn_wifi_calling_vo_hyphen" msgid="3836827895369365298">"<xliff:g id="SPN">%s</xliff:g> Llamada por Wi‑Fi"</string>
+ <string name="wfcSpnFormat_spn_wifi_calling_vo_hyphen" msgid="3836827895369365298">"Llamada por Wi‑Fi de <xliff:g id="SPN">%s</xliff:g>"</string>
<string name="wfcSpnFormat_wlan_call" msgid="4895315549916165700">"Llamada por WLAN"</string>
<string name="wfcSpnFormat_spn_wlan_call" msgid="255919245825481510">"Llamada por WLAN de <xliff:g id="SPN">%s</xliff:g>"</string>
<string name="wfcSpnFormat_spn_wifi" msgid="7232899594327126970">"Wi‑Fi de <xliff:g id="SPN">%s</xliff:g>"</string>
@@ -159,7 +159,7 @@
<string name="scIdentifierDisclosureIssueTitle" msgid="2898888825129970328">"Se ha accedido al ID del dispositivo"</string>
<string name="scIdentifierDisclosureIssueSummaryNotification" msgid="3699930821270580416">"A las <xliff:g id="DISCLOSURE_TIME">%1$s</xliff:g>, una red cercana registró el ID único de tu dispositivo (IMSI o IMEI) mientras usabas la SIM de <xliff:g id="DISCLOSURE_NETWORK">%2$s</xliff:g>"</string>
<string name="scIdentifierDisclosureIssueSummary" msgid="7283387338827749276">"A las <xliff:g id="DISCLOSURE_TIME">%1$s</xliff:g>, una red cercana registró el ID único de tu dispositivo (IMSI o IMEI) mientras usabas la SIM de <xliff:g id="DISCLOSURE_NETWORK">%2$s</xliff:g>.\n\nEsto significa que se ha registrado tu ubicación, actividad o identidad. Se trata de una práctica habitual, pero puede ser un problema para quienes les preocupa su privacidad."</string>
- <string name="scNullCipherIssueEncryptedTitle" msgid="234717016411824969">"Conectado a la red cifrada <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
+ <string name="scNullCipherIssueEncryptedTitle" msgid="234717016411824969">"Conexión a la red cifrada <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
<string name="scNullCipherIssueEncryptedSummary" msgid="8577510708842150475">"Ahora, la conexión con la SIM de <xliff:g id="NETWORK_NAME">%1$s</xliff:g> es más segura"</string>
<string name="scNullCipherIssueNonEncryptedTitle" msgid="3978071464929453915">"Conectado a una red no cifrada"</string>
<string name="scNullCipherIssueNonEncryptedSummaryNotification" msgid="7386936934128110388">"Tus llamadas, mensajes y datos son más vulnerables mientras uses la SIM de <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
@@ -228,7 +228,7 @@
<string name="work_profile_telephony_paused_text" msgid="8065762301100978221">"Has pausado las aplicaciones de trabajo. No recibirás llamadas ni mensajes de texto."</string>
<string name="work_profile_telephony_paused_turn_on_button" msgid="7542632318337068821">"Reanudar aplicaciones de trabajo"</string>
<string name="me" msgid="6207584824693813140">"Yo"</string>
- <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opciones del tablet"</string>
+ <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opciones de la tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opciones de Android TV"</string>
<string name="power_dialog" product="default" msgid="1107775420270203046">"Opciones del teléfono"</string>
<string name="silent_mode" msgid="8796112363642579333">"Modo Silencio"</string>
@@ -255,7 +255,7 @@
<string name="reboot_safemode_confirm" msgid="1658357874737219624">"¿Quieres reiniciar el sistema en modo Seguro? Se inhabilitarán todas las aplicaciones externas que hayas instalado. Esas aplicaciones se restaurarán la próxima vez que reinicies el sistema."</string>
<string name="recent_tasks_title" msgid="8183172372995396653">"Reciente"</string>
<string name="no_recent_tasks" msgid="9063946524312275906">"No hay aplicaciones recientes."</string>
- <string name="global_actions" product="tablet" msgid="4412132498517933867">"Opciones del tablet"</string>
+ <string name="global_actions" product="tablet" msgid="4412132498517933867">"Opciones de la tablet"</string>
<string name="global_actions" product="tv" msgid="3871763739487450369">"Opciones de Android TV"</string>
<string name="global_actions" product="default" msgid="6410072189971495460">"Opciones del teléfono"</string>
<string name="global_action_lock" msgid="6949357274257655383">"Bloqueo de pantalla"</string>
@@ -381,9 +381,9 @@
<string name="permlab_answerPhoneCalls" msgid="4131324833663725855">"responder llamadas"</string>
<string name="permdesc_answerPhoneCalls" msgid="894386681983116838">"Permite que la aplicación responda una llamada."</string>
<string name="permlab_receiveSms" msgid="505961632050451881">"recibir mensajes de texto (SMS)"</string>
- <string name="permdesc_receiveSms" msgid="1797345626687832285">"Permite que la aplicación reciba y procese mensajes MMS, lo que significa que podría utilizar este permiso para controlar o eliminar mensajes enviados al dispositivo sin mostrárselos al usuario."</string>
+ <string name="permdesc_receiveSms" msgid="1797345626687832285">"Permite que la aplicación reciba y procese mensajes SMS, lo que significa que podría utilizar este permiso para monitorizar o eliminar mensajes enviados al dispositivo sin mostrárselos al usuario."</string>
<string name="permlab_receiveMms" msgid="4000650116674380275">"recibir mensajes de texto (MMS)"</string>
- <string name="permdesc_receiveMms" msgid="958102423732219710">"Permite que la aplicación reciba y procese mensajes MMS, lo que significa que podría utilizar este permiso para controlar o eliminar mensajes enviados al dispositivo sin mostrárselos al usuario."</string>
+ <string name="permdesc_receiveMms" msgid="958102423732219710">"Permite que la aplicación reciba y procese mensajes MMS, lo que significa que podría usar este permiso para controlar o eliminar mensajes enviados al dispositivo sin mostrártelos."</string>
<string name="permlab_bindCellBroadcastService" msgid="586746677002040651">"Reenviar mensajes de difusión móvil"</string>
<string name="permdesc_bindCellBroadcastService" msgid="6540910200973641606">"Permite que la aplicación se vincule con el módulo de difusión móvil para reenviar los mensajes de ese tipo en cuanto se reciben. En ciertas ubicaciones se envían alertas de difusión móvil para avisar de situaciones de emergencia. Cuando se recibe una alerta de difusión móvil de emergencia, ciertas aplicaciones malintencionadas podrían interferir en el rendimiento o en el funcionamiento del dispositivo."</string>
<string name="permlab_manageOngoingCalls" msgid="281244770664231782">"Gestionar llamadas en curso"</string>
@@ -401,13 +401,13 @@
<string name="permdesc_readSms" product="tv" msgid="3054753345758011986">"Esta aplicación puede leer todos los SMS almacenados en tu dispositivo Android TV."</string>
<string name="permdesc_readSms" product="default" msgid="774753371111699782">"Esta aplicación puede leer todos los SMS (mensajes de texto) almacenados en tu teléfono."</string>
<string name="permlab_receiveWapPush" msgid="4223747702856929056">"recibir mensajes de texto (WAP)"</string>
- <string name="permdesc_receiveWapPush" msgid="1638677888301778457">"Permite que la aplicación reciba y procese mensajes WAP, lo que significa que podría utilizar este permiso para controlar o eliminar mensajes enviados al usuario sin mostrárselos."</string>
+ <string name="permdesc_receiveWapPush" msgid="1638677888301778457">"Permite que la aplicación reciba y procese mensajes WAP, lo que significa que podría utilizar este permiso para monitorizar o eliminar mensajes enviados al usuario sin mostrárselos."</string>
<string name="permlab_getTasks" msgid="7460048811831750262">"recuperar aplicaciones en ejecución"</string>
<string name="permdesc_getTasks" msgid="7388138607018233726">"Permite que aplicación recupere información sobre tareas que se están ejecutando en ese momento o que se han ejecutado recientemente. La aplicación puede utilizar este permiso para descubrir cuáles son las aplicaciones que se utilizan en el dispositivo."</string>
<string name="permlab_manageProfileAndDeviceOwners" msgid="639849495253987493">"administrar propietarios del perfil y del dispositivo"</string>
<string name="permdesc_manageProfileAndDeviceOwners" msgid="7304240671781989283">"Permite que las aplicaciones establezcan los propietarios del perfil y del dispositivo."</string>
<string name="permlab_reorderTasks" msgid="7598562301992923804">"reorganizar aplicaciones en ejecución"</string>
- <string name="permdesc_reorderTasks" msgid="8796089937352344183">"Permite que la aplicación mueva tareas a segundo o a primer plano. La aplicación puede utilizar este permiso para realizar estos movimientos sin que se lo indique el usuario."</string>
+ <string name="permdesc_reorderTasks" msgid="8796089937352344183">"Permite que la aplicación mueva tareas a segundo o a primer plano. La aplicación podrá hacerlo sin que se lo indiques."</string>
<string name="permlab_enableCarMode" msgid="893019409519325311">"habilitar modo coche"</string>
<string name="permdesc_enableCarMode" msgid="56419168820473508">"Permite que la aplicación habilite el modo coche."</string>
<string name="permlab_killBackgroundProcesses" msgid="6559320515561928348">"cerrar otras aplicaciones"</string>
@@ -548,7 +548,7 @@
<string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"leer números de teléfono"</string>
<string name="permdesc_readPhoneNumbers" msgid="7368652482818338871">"Permite que la aplicación acceda a los números de teléfono del dispositivo."</string>
<string name="permlab_wakeLock" product="automotive" msgid="1904736682319375676">"mantener la pantalla del coche encendida"</string>
- <string name="permlab_wakeLock" product="tablet" msgid="1527660973931694000">"impedir que el tablet entre en modo de suspensión"</string>
+ <string name="permlab_wakeLock" product="tablet" msgid="1527660973931694000">"impedir que la tablet entre en modo de suspensión"</string>
<string name="permlab_wakeLock" product="tv" msgid="2856941418123343518">"evitar que tu dispositivo Android TV entre en modo de suspensión"</string>
<string name="permlab_wakeLock" product="default" msgid="569409726861695115">"impedir que el teléfono entre en modo de suspensión"</string>
<string name="permdesc_wakeLock" product="automotive" msgid="5995045369683254571">"Permite que la aplicación deje la pantalla del coche encendida."</string>
@@ -556,7 +556,7 @@
<string name="permdesc_wakeLock" product="tv" msgid="2329298966735118796">"Permite que la aplicación impida que tu dispositivo Android TV entre en modo de suspensión."</string>
<string name="permdesc_wakeLock" product="default" msgid="3689523792074007163">"Permite que la aplicación impida que el teléfono entre en modo de suspensión."</string>
<string name="permlab_transmitIr" msgid="8077196086358004010">"transmitir infrarrojos"</string>
- <string name="permdesc_transmitIr" product="tablet" msgid="5884738958581810253">"Permite que la aplicación utilice el transmisor de infrarrojos del tablet."</string>
+ <string name="permdesc_transmitIr" product="tablet" msgid="5884738958581810253">"Permite que la aplicación use el transmisor de infrarrojos de la tablet."</string>
<string name="permdesc_transmitIr" product="tv" msgid="3278506969529173281">"Permite que la aplicación utilice el transmisor de infrarrojos de tu dispositivo Android TV."</string>
<string name="permdesc_transmitIr" product="default" msgid="8484193849295581808">"Permite que la aplicación utilice el transmisor de infrarrojos del teléfono."</string>
<string name="permlab_setWallpaper" msgid="6959514622698794511">"establecer fondo de pantalla"</string>
@@ -586,7 +586,7 @@
<string name="permlab_changeWifiState" msgid="7947824109713181554">"conectarse a redes Wi-Fi y desconectarse"</string>
<string name="permdesc_changeWifiState" msgid="7170350070554505384">"Permite que la aplicación se conecte a puntos de acceso Wi-Fi y se desconecte de ellos y que realice cambios en la configuración de redes Wi-Fi del dispositivo."</string>
<string name="permlab_changeWifiMulticastState" msgid="285626875870754696">"permitir recepción multidifusión Wi-Fi"</string>
- <string name="permdesc_changeWifiMulticastState" product="tablet" msgid="191079868596433554">"Permite que la aplicación reciba paquetes enviados a todos los dispositivos de una red Wi-Fi que utilicen direcciones de multidifusión, no solo al tablet. Utiliza más batería que el modo de no multidifusión."</string>
+ <string name="permdesc_changeWifiMulticastState" product="tablet" msgid="191079868596433554">"Permite que la aplicación reciba paquetes enviados a todos los dispositivos de una red Wi-Fi que usen direcciones de multicast, no solo a la tablet. Usa más batería que el modo de no multicast."</string>
<string name="permdesc_changeWifiMulticastState" product="tv" msgid="1336952358450652595">"Permite que la aplicación reciba paquetes enviados a través de una red Wi-Fi y mediante direcciones de multidifusión a todos los dispositivos, no solo a tu dispositivo Android TV. Consume más batería que el modo sin multidifusión."</string>
<string name="permdesc_changeWifiMulticastState" product="default" msgid="8296627590220222740">"Permite que la aplicación reciba paquetes enviados a todos los dispositivos de una red Wi-Fi que utilicen direcciones de multidifusión, no solo al teléfono. Utiliza más batería que el modo de no multidifusión."</string>
<string name="permlab_bluetoothAdmin" msgid="6490373569441946064">"acceder a los ajustes de Bluetooth"</string>
@@ -622,17 +622,17 @@
<string name="permlab_disableKeyguard" msgid="3605253559020928505">"inhabilitar el bloqueo de pantalla"</string>
<string name="permdesc_disableKeyguard" msgid="3223710003098573038">"Permite que la aplicación inhabilite el bloqueo del teclado y cualquier protección con contraseña asociada. Por ejemplo, el teléfono puede inhabilitar el bloqueo del teclado cuando se recibe una llamada telefónica y volver a habilitarlo cuando finaliza la llamada."</string>
<string name="permlab_requestPasswordComplexity" msgid="1808977190557794109">"solicitar complejidad del bloqueo de pantalla"</string>
- <string name="permdesc_requestPasswordComplexity" msgid="1130556896836258567">"Permite que la aplicación entienda el nivel de complejidad del bloqueo de pantalla (alto, medio, bajo o ninguno) que indica la longitud y el tipo del bloqueo de pantalla posibles. La aplicación también puede sugerir a los usuarios que actualicen el bloqueo de pantalla para que tenga un nivel concreto de complejidad, pero los usuarios pueden ignorar la advertencia libremente. El bloqueo de pantalla no se almacena en texto sin formato, así que la aplicación no puede saber cuál es la contraseña exacta."</string>
+ <string name="permdesc_requestPasswordComplexity" msgid="1130556896836258567">"Permite que la aplicación entienda el nivel de complejidad del bloqueo de pantalla (alto, medio, bajo o ninguno), que indica la longitud y el tipo del bloqueo de pantalla posibles. La aplicación también puede sugerir a los usuarios que actualicen el bloqueo de pantalla para que tenga un nivel concreto de complejidad, pero los usuarios pueden ignorar la advertencia libremente. El bloqueo de pantalla no se almacena en texto sin formato, así que la aplicación no puede saber cuál es la contraseña exacta."</string>
<string name="permlab_postNotification" msgid="4875401198597803658">"mostrar notificaciones"</string>
<string name="permdesc_postNotification" msgid="5974977162462877075">"Permite que la aplicación muestre notificaciones"</string>
<string name="permlab_turnScreenOn" msgid="219344053664171492">"encender la pantalla"</string>
<string name="permdesc_turnScreenOn" msgid="4394606875897601559">"Permite que la aplicación active la pantalla."</string>
<string name="permlab_useBiometric" msgid="6314741124749633786">"usar hardware biométrico"</string>
<string name="permdesc_useBiometric" msgid="7502858732677143410">"Permite que la aplicación utilice el hardware biométrico para realizar la autenticación"</string>
- <string name="permlab_manageFingerprint" msgid="7432667156322821178">"administrar hardware de huellas digitales"</string>
+ <string name="permlab_manageFingerprint" msgid="7432667156322821178">"gestionar lector de huellas digitales"</string>
<string name="permdesc_manageFingerprint" msgid="2025616816437339865">"Permite que la aplicación invoque métodos para añadir y eliminar plantillas de huellas digitales y utilizarlas."</string>
- <string name="permlab_useFingerprint" msgid="1001421069766751922">"utilizar hardware de huellas digitales"</string>
- <string name="permdesc_useFingerprint" msgid="412463055059323742">"Permite que la aplicación utilice el hardware de huellas digitales para realizar la autenticación"</string>
+ <string name="permlab_useFingerprint" msgid="1001421069766751922">"usar lectores de huellas digitales"</string>
+ <string name="permdesc_useFingerprint" msgid="412463055059323742">"Permite que la aplicación use el hardware de huellas digitales para realizar la autenticación"</string>
<string name="permlab_audioWrite" msgid="8501705294265669405">"modificar tu colección de música"</string>
<string name="permdesc_audioWrite" msgid="8057399517013412431">"Permite que la aplicación modifique tu colección de música."</string>
<string name="permlab_videoWrite" msgid="5940738769586451318">"modificar tu colección de vídeos"</string>
@@ -814,10 +814,10 @@
<string name="permlab_handoverStatus" msgid="7620438488137057281">"recibir estado de transferencias de Android Beam"</string>
<string name="permdesc_handoverStatus" msgid="3842269451732571070">"Permite que esta aplicación reciba información sobre las transferencias actuales de Android Beam"</string>
<string name="permlab_removeDrmCertificates" msgid="710576248717404416">"quitar certificados DRM"</string>
- <string name="permdesc_removeDrmCertificates" msgid="4068445390318355716">"Permite a una aplicación eliminar los certificados DRM. Las aplicaciones normales no deberí­an necesitar este permiso."</string>
+ <string name="permdesc_removeDrmCertificates" msgid="4068445390318355716">"Permite que una aplicación elimine certificados DRM. Las aplicaciones normales no deberían necesitar nunca este permiso."</string>
<string name="permlab_bindCarrierMessagingService" msgid="3363450860593096967">"vincular con el servicio de mensajería de un operador"</string>
<string name="permdesc_bindCarrierMessagingService" msgid="6316457028173478345">"Permite vincular con la interfaz de nivel superior del servicio de mensajería de un operador. Las aplicaciones normales no deberían necesitar este permiso."</string>
- <string name="permlab_bindCarrierServices" msgid="2395596978626237474">"vincular con servicios de operador"</string>
+ <string name="permlab_bindCarrierServices" msgid="2395596978626237474">"vincular con servicios del operador"</string>
<string name="permdesc_bindCarrierServices" msgid="9185614481967262900">"Permite vincular con servicios de operador. Las aplicaciones normales no deberían necesitar este permiso."</string>
<string name="permlab_access_notification_policy" msgid="5524112842876975537">"acceso a No molestar"</string>
<string name="permdesc_access_notification_policy" msgid="8538374112403845013">"Permite que la aplicación lea y modifique la configuración de No molestar."</string>
@@ -856,11 +856,11 @@
<string name="policylab_wipeData_secondaryUser" product="automotive" msgid="115034358520328373">"Borrar datos del perfil"</string>
<string name="policylab_wipeData_secondaryUser" product="default" msgid="413813645323433166">"Borrar datos del usuario"</string>
<string name="policydesc_wipeData_secondaryUser" product="tablet" msgid="2336676480090926470">"Borra los datos del usuario en esta tablet sin avisar."</string>
- <string name="policydesc_wipeData_secondaryUser" product="tv" msgid="2293713284515865200">"Eliminar los datos de este usuario del dispositivo Android TV sin previo aviso."</string>
+ <string name="policydesc_wipeData_secondaryUser" product="tv" msgid="2293713284515865200">"Eliminar los datos de este usuario que hay en este dispositivo Android TV sin previo aviso."</string>
<string name="policydesc_wipeData_secondaryUser" product="automotive" msgid="4658832487305780879">"Borra los datos del perfil de este sistema de infoentretenimiento sin avisar."</string>
- <string name="policydesc_wipeData_secondaryUser" product="default" msgid="2788325512167208654">"Borra los datos del usuario en este teléfono sin avisar."</string>
+ <string name="policydesc_wipeData_secondaryUser" product="default" msgid="2788325512167208654">"Eliminar los datos de este usuario que hay en este teléfono sin previo aviso."</string>
<string name="policylab_setGlobalProxy" msgid="215332221188670221">"Definir el servidor proxy global"</string>
- <string name="policydesc_setGlobalProxy" msgid="7149665222705519604">"Define el servidor proxy global que se debe utilizar mientras la política esté habilitada. Solo el propietario del dispositivo puede definir el proxy global."</string>
+ <string name="policydesc_setGlobalProxy" msgid="7149665222705519604">"Define el servidor proxy global que se debe usar mientras la política esté habilitada. Solo el propietario del dispositivo puede definir el proxy global."</string>
<string name="policylab_expirePassword" msgid="6015404400532459169">"Definir caducidad contraseña"</string>
<string name="policydesc_expirePassword" msgid="9136524319325960675">"Cambia la frecuencia con la que se debe cambiar el patrón, el PIN o la contraseña del bloqueo de pantalla."</string>
<string name="policylab_encryptedStorage" msgid="9012936958126670110">"Cifrado del almacenamiento"</string>
@@ -966,11 +966,11 @@
<string name="relationTypeCustom" msgid="282938315217441351">"Personalizado"</string>
<string name="relationTypeAssistant" msgid="4057605157116589315">"Asistente"</string>
<string name="relationTypeBrother" msgid="7141662427379247820">"Hermano"</string>
- <string name="relationTypeChild" msgid="9076258911292693601">"Hijo"</string>
+ <string name="relationTypeChild" msgid="9076258911292693601">"Hijo/a"</string>
<string name="relationTypeDomesticPartner" msgid="7825306887697559238">"Pareja de hecho"</string>
<string name="relationTypeFather" msgid="3856225062864790596">"Padre"</string>
<string name="relationTypeFriend" msgid="3192092625893980574">"Amigo"</string>
- <string name="relationTypeManager" msgid="2272860813153171857">"Jefe"</string>
+ <string name="relationTypeManager" msgid="2272860813153171857">"Superior"</string>
<string name="relationTypeMother" msgid="2331762740982699460">"Madre"</string>
<string name="relationTypeParent" msgid="4177920938333039882">"Padre/madre"</string>
<string name="relationTypePartner" msgid="4018017075116766194">"Pareja"</string>
@@ -1046,7 +1046,7 @@
<string name="lockscreen_glogin_username_hint" msgid="6916101478673157045">"Nombre de usuario (correo electrónico)"</string>
<string name="lockscreen_glogin_password_hint" msgid="3031027901286812848">"Contraseña"</string>
<string name="lockscreen_glogin_submit_button" msgid="3590556636347843733">"Iniciar sesión"</string>
- <string name="lockscreen_glogin_invalid_input" msgid="4369219936865697679">"Nombre de usuario o contraseña no válido"</string>
+ <string name="lockscreen_glogin_invalid_input" msgid="4369219936865697679">"El nombre de usuario o la contraseña no son válidos."</string>
<string name="lockscreen_glogin_account_recovery_hint" msgid="1683405808525090649">"Si has olvidado tu nombre de usuario o tu contraseña,\naccede a la página "<b>"google.com/accounts/recovery"</b>"."</string>
<string name="lockscreen_glogin_checking_password" msgid="2607271802803381645">"Comprobando..."</string>
<string name="lockscreen_unlock_label" msgid="4648257878373307582">"Desbloquear"</string>
@@ -1212,7 +1212,7 @@
<string name="not_checked" msgid="7972320087569023342">"no seleccionado"</string>
<string name="selected" msgid="6614607926197755875">"seleccionado"</string>
<string name="not_selected" msgid="410652016565864475">"no seleccionado"</string>
- <string name="rating_label" msgid="1837085249662154601">"{rating,plural, =1{Una estrella de {max}}many{# estrellas de {max}}other{# estrellas de {max}}}"</string>
+ <string name="rating_label" msgid="1837085249662154601">"{rating,plural, =1{1 estrella de {max}}many{# estrellas de {max}}other{# estrellas de {max}}}"</string>
<string name="in_progress" msgid="2149208189184319441">"en curso"</string>
<string name="whichApplication" msgid="5432266899591255759">"Completar acción utilizando"</string>
<string name="whichApplicationNamed" msgid="6969946041713975681">"Completar acción con %1$s"</string>
@@ -1279,11 +1279,11 @@
<string name="smv_application" msgid="3775183542777792638">"La aplicación <xliff:g id="APPLICATION">%1$s</xliff:g> (proceso <xliff:g id="PROCESS">%2$s</xliff:g>) ha infringido su política StrictMode autoaplicable."</string>
<string name="smv_process" msgid="1398801497130695446">"El proceso <xliff:g id="PROCESS">%1$s</xliff:g> ha infringido su política StrictMode autoaplicable."</string>
<string name="android_upgrading_title" product="default" msgid="7279077384220829683">"El teléfono se está actualizando…"</string>
- <string name="android_upgrading_title" product="tablet" msgid="4268417249079938805">"El tablet se está actualizando…"</string>
+ <string name="android_upgrading_title" product="tablet" msgid="4268417249079938805">"La tablet se está actualizando…"</string>
<string name="android_upgrading_title" product="device" msgid="6774767702998149762">"El dispositivo se está actualizando…"</string>
<string name="android_start_title" product="default" msgid="4036708252778757652">"El teléfono se está iniciando…"</string>
<string name="android_start_title" product="automotive" msgid="7917984412828168079">"Android se está iniciando…"</string>
- <string name="android_start_title" product="tablet" msgid="4429767260263190344">"El tablet se está iniciando…"</string>
+ <string name="android_start_title" product="tablet" msgid="4429767260263190344">"La tablet se está iniciando…"</string>
<string name="android_start_title" product="device" msgid="6967413819673299309">"El dispositivo se está iniciando…"</string>
<string name="android_upgrading_notification_title" product="default" msgid="3509927005342279257">"Finalizando actualización del sistema…"</string>
<string name="app_upgrading_toast" msgid="1016267296049455585">"<xliff:g id="APPLICATION">%1$s</xliff:g> se está actualizando…"</string>
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"COMPARTIR"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"RECHAZAR"</string>
<string name="select_input_method" msgid="3971267998568587025">"Selecciona un método de entrada"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Ajustes de idioma"</string>
<string name="show_ime" msgid="6406112007347443383">"Mantenlo en pantalla mientras el teclado físico está activo"</string>
<string name="hardware" msgid="3611039921284836033">"Usar teclado en pantalla"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configura <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -1539,7 +1540,7 @@
<string name="vpn_text_long" msgid="278540576806169831">"Conectado a <xliff:g id="SESSION">%s</xliff:g>. Toca para administrar la red."</string>
<string name="vpn_lockdown_connecting" msgid="6096725311950342607">"Conectando VPN siempre activada…"</string>
<string name="vpn_lockdown_connected" msgid="2853127976590658469">"VPN siempre activada conectada"</string>
- <string name="vpn_lockdown_disconnected" msgid="5573611651300764955">"Desconectado de VPN siempre activada"</string>
+ <string name="vpn_lockdown_disconnected" msgid="5573611651300764955">"Desconectado de VPN siempre activa"</string>
<string name="vpn_lockdown_error" msgid="4453048646854247947">"No se ha podido establecer la conexión con la VPN siempre activada"</string>
<string name="vpn_lockdown_config" msgid="8331697329868252169">"Cambiar ajustes de red o VPN"</string>
<string name="upload_file" msgid="8651942222301634271">"Seleccionar archivo"</string>
@@ -1875,7 +1876,7 @@
<string name="reason_service_unavailable" msgid="5288405248063804713">"Servicio de impresión no habilitado"</string>
<string name="print_service_installed_title" msgid="6134880817336942482">"El servicio <xliff:g id="NAME">%s</xliff:g> se ha instalado"</string>
<string name="print_service_installed_message" msgid="7005672469916968131">"Tocar para habilitar"</string>
- <string name="restr_pin_enter_admin_pin" msgid="1199419462726962697">"Introducir el PIN del administrador"</string>
+ <string name="restr_pin_enter_admin_pin" msgid="1199419462726962697">"Introduce el PIN del administrador"</string>
<string name="restr_pin_enter_pin" msgid="373139384161304555">"Introducir PIN"</string>
<string name="restr_pin_incorrect" msgid="3861383632940852496">"Incorrecto"</string>
<string name="restr_pin_enter_old_pin" msgid="7537079094090650967">"PIN actual"</string>
@@ -1937,7 +1938,7 @@
<string name="zen_mode_default_events_name" msgid="2280682960128512257">"Evento"</string>
<string name="zen_mode_default_every_night_name" msgid="1467765312174275823">"Durmiendo"</string>
<string name="zen_mode_implicit_trigger_description" msgid="5714956693073007111">"Gestionado por <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
- <string name="zen_mode_implicit_activated" msgid="2634285680776672994">"Activado"</string>
+ <string name="zen_mode_implicit_activated" msgid="2634285680776672994">"Activada"</string>
<string name="zen_mode_implicit_deactivated" msgid="8688441768371501750">"Desactivado"</string>
<string name="zen_mode_trigger_summary_divider_text" msgid="7461583466043698862">", "</string>
<string name="zen_mode_trigger_summary_range_symbol_combination" msgid="1804900738798069619">"<xliff:g id="START">%1$s</xliff:g>-<xliff:g id="END">%2$s</xliff:g>"</string>
@@ -1956,7 +1957,7 @@
<string name="notification_phishing_alert_content_description" msgid="494227305355958790">"Alerta de phishing"</string>
<string name="notification_work_profile_content_description" msgid="5296477955677725799">"Perfil de trabajo"</string>
<string name="notification_alerted_content_description" msgid="6139691253611265992">"Con sonido"</string>
- <string name="notification_verified_content_description" msgid="6401483602782359391">"Verificado"</string>
+ <string name="notification_verified_content_description" msgid="6401483602782359391">"Verificada"</string>
<string name="expand_button_content_description_collapsed" msgid="3873368935659010279">"Mostrar"</string>
<string name="expand_button_content_description_expanded" msgid="7484217944948667489">"Ocultar"</string>
<string name="content_description_collapsed" msgid="2827748787566489401">"Contraída"</string>
@@ -2438,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Cambiar de usuario"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Silenciar"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Toca para silenciar el sonido"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Navegador"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contactos"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Correo"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Música"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculadora"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicaciones"</string>
</resources>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 5a618d6c5d53..cfcab8ca6361 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"JAGA"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"KEELDU"</string>
<string name="select_input_method" msgid="3971267998568587025">"Valige sisestusmeetod"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Keeleseaded"</string>
<string name="show_ime" msgid="6406112007347443383">"Hoia seda ekraanil, kui füüsiline klaviatuur on aktiivne"</string>
<string name="hardware" msgid="3611039921284836033">"Kasuta ekraaniklaviatuuri"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Seadistage <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Vaheta kasutajat"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Vaigista"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Puudutage heli vaigistamiseks"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Brauser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontaktid"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-post"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Muusika"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalender"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulaator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Kaardid"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Rakendused"</string>
</resources>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index 58192893b337..43ab92c25d90 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"PARTEKATU"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"BAZTERTU"</string>
<string name="select_input_method" msgid="3971267998568587025">"Aukeratu idazketa-metodoa"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Hizkuntza-ezarpenak"</string>
<string name="show_ime" msgid="6406112007347443383">"Erakutsi pantailan teklatu fisikoa aktibo dagoen bitartean"</string>
<string name="hardware" msgid="3611039921284836033">"Erabili pantailako teklatua"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfiguratu <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Aldatu erabiltzailea"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Desaktibatu audioa"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Sakatu audioa desaktibatzeko"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Arakatzailea"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontaktuak"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Posta elektronikoa"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMSak"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musika"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulagailua"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikazioak"</string>
</resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 7a08af6b5184..5d3d42b48a3b 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"اشتراک‌گذاری"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"نپذیرفتن"</string>
<string name="select_input_method" msgid="3971267998568587025">"انتخاب روش ورودی"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"تنظیمات زبان"</string>
<string name="show_ime" msgid="6406112007347443383">"وقتی صفحه‌کلید فیزیکی فعال است این ویرایشگر را روی صفحه نگه‌می‌دارد"</string>
<string name="hardware" msgid="3611039921284836033">"استفاده از صفحه‌کلید مجازی"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"پیکربندی <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2433,26 +2434,17 @@
<string name="face_dangling_notification_msg" msgid="746235263598985384">"مدل چهره‌تان دیگر قابل‌شناسایی نیست. «قفل‌گشایی با چهره» را دوباره راه‌اندازی کنید."</string>
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"راه‌اندازی"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"حالا نه"</string>
- <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"زنگ ساعت <xliff:g id="USER_NAME">%s</xliff:g>"</string>
+ <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"زنگ هشدار برای <xliff:g id="USER_NAME">%s</xliff:g>"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"تغییر کاربر"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"بی‌صدا کردن"</string>
- <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"برای بی‌صدا کردن تک‌ضرب بزنید"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"برای بی‌صدا کردن، تک‌ضرب بزنید"</string>
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"مرورگر"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"مخاطبین"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"ایمیل"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"پیامک"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"موسیقی"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"تقویم"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"ماشین‌حساب"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"نقشه"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"برنامه‌ها"</string>
</resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 8393e9a2697e..67dd02b935ec 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"JAA"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"HYLKÄÄ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Valitse syöttötapa"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Kieliasetukset"</string>
<string name="show_ime" msgid="6406112007347443383">"Pidä näytöllä, kun fyysinen näppäimistö on aktiivinen"</string>
<string name="hardware" msgid="3611039921284836033">"Käytä näyttönäppäimistöä"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Määritä <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Vaihda käyttäjää"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Mykistä"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Mykistä äänet napauttamalla"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Selain"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Yhteystiedot"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Sähköposti"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"Tekstiviesti"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musiikki"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalenteri"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Laskin"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Sovellukset"</string>
</resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index a0f8ec017e64..b4dbd4335afd 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -373,7 +373,7 @@
<string name="permlab_fullScreenIntent" msgid="4310888199502509104">"afficher les notifications en mode plein écran sur un appareil verrouillé"</string>
<string name="permdesc_fullScreenIntent" msgid="1100721419406643997">"Permet à l\'appli d\'afficher les notifications en mode plein écran sur un appareil verrouillé."</string>
<string name="permlab_install_shortcut" msgid="7451554307502256221">"Installer des raccourcis"</string>
- <string name="permdesc_install_shortcut" msgid="4476328467240212503">"Permet à une appli d\'ajouter des raccourcis sans l\'intervention de l\'utilisateur."</string>
+ <string name="permdesc_install_shortcut" msgid="4476328467240212503">"Permet à une application d\'ajouter des raccourcis à l\'écran d\'accueil sans l\'intervention de l\'utilisateur."</string>
<string name="permlab_uninstall_shortcut" msgid="295263654781900390">"désinstaller des raccourcis"</string>
<string name="permdesc_uninstall_shortcut" msgid="1924735350988629188">"Permet à l\'appli de supprimer des raccourcis de la page d\'accueil sans intervention de l\'utilisateur."</string>
<string name="permlab_processOutgoingCalls" msgid="4075056020714266558">"transférer les appels sortants"</string>
@@ -740,7 +740,7 @@
<string name="face_error_timeout" msgid="2598544068593889762">"Réessayez déverrouillage reconnaissance faciale"</string>
<string name="face_error_no_space" msgid="5649264057026021723">"Impossible de stocker de nouveaux visages. Supprimez-en un."</string>
<string name="face_error_canceled" msgid="2164434737103802131">"Opération de reconnaissance du visage annulée."</string>
- <string name="face_error_user_canceled" msgid="5766472033202928373">"Le déverrouillage par reconnaissance faciale a été annulé"</string>
+ <string name="face_error_user_canceled" msgid="5766472033202928373">"Déverrouillage par reconnaissance faciale annulé par l\'utilisateur"</string>
<string name="face_error_lockout" msgid="7864408714994529437">"Trop de tentatives. Veuillez réessayer plus tard."</string>
<string name="face_error_lockout_permanent" msgid="8533257333130473422">"Trop de tentatives. Le déverrouillage par reconnaissance faciale est inaccessible."</string>
<string name="face_error_lockout_screen_lock" msgid="5062609811636860928">"Trop de tentatives. Entrez plutôt le verrouillage de l\'écran."</string>
@@ -977,7 +977,7 @@
<string name="relationTypeReferredBy" msgid="5285082289602849400">"Recommandé par"</string>
<string name="relationTypeRelative" msgid="3396498519818009134">"Proche"</string>
<string name="relationTypeSister" msgid="3721676005094140671">"Sœur"</string>
- <string name="relationTypeSpouse" msgid="6916682664436031703">"Conjoint(e)"</string>
+ <string name="relationTypeSpouse" msgid="6916682664436031703">"Conjoint/Conjointe"</string>
<string name="sipAddressTypeCustom" msgid="6283889809842649336">"Personnaliser"</string>
<string name="sipAddressTypeHome" msgid="5918441930656878367">"Domicile"</string>
<string name="sipAddressTypeWork" msgid="7873967986701216770">"Travail"</string>
@@ -987,7 +987,7 @@
<string name="keyguard_password_enter_puk_code" msgid="3112256684547584093">"Saisissez la clé PUK et le nouveau NIP."</string>
<string name="keyguard_password_enter_puk_prompt" msgid="2825313071899938305">"Clé PUK"</string>
<string name="keyguard_password_enter_pin_prompt" msgid="5505434724229581207">"Nouveau NIP"</string>
- <string name="keyguard_password_entry_touch_hint" msgid="4032288032993261520"><font size="17">"Touchez pour entrer le m. de p."</font></string>
+ <string name="keyguard_password_entry_touch_hint" msgid="4032288032993261520"><font size="17">"Touch. pour taper mot de passe"</font></string>
<string name="keyguard_password_enter_password_code" msgid="2751130557661643482">"Saisissez le mot de passe pour déverrouiller le clavier."</string>
<string name="keyguard_password_enter_pin_password_code" msgid="7792964196473964340">"Saisissez le NIP pour déverrouiller le clavier."</string>
<string name="keyguard_password_wrong_pin_code" msgid="8583732939138432793">"NIP erroné."</string>
@@ -1023,7 +1023,7 @@
<string name="emergency_calls_only" msgid="3057351206678279851">"Appels d\'urgence uniquement"</string>
<string name="lockscreen_network_locked_message" msgid="2814046965899249635">"Réseau verrouillé"</string>
<string name="lockscreen_sim_puk_locked_message" msgid="2867953953604224166">"La carte SIM est verrouillée par clé PUK."</string>
- <string name="lockscreen_sim_puk_locked_instructions" msgid="5307979043730860995">"Veuillez consulter le guide d\'utilisation ou contacter le service à la clientèle."</string>
+ <string name="lockscreen_sim_puk_locked_instructions" msgid="5307979043730860995">"Veuillez consulter le guide d\'utilisation ou contacter l\'assistance à la clientèle."</string>
<string name="lockscreen_sim_locked_message" msgid="5911944931911850164">"La carte SIM est verrouillée."</string>
<string name="lockscreen_sim_unlock_progress_dialog_message" msgid="8381565919325410939">"Déverrouillage de la carte SIM en cours…"</string>
<string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6458790975898594240">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises.\n\nVeuillez réessayer dans <xliff:g id="NUMBER_1">%2$d</xliff:g> secondes."</string>
@@ -1160,7 +1160,7 @@
<string name="duration_years_relative" msgid="8731202348869424370">"{count,plural, =1{Il y a # an}one{Il y a # an}many{Il y a # ans}other{Il y a # ans}}"</string>
<string name="duration_minutes_relative_future" msgid="5259574171747708115">"{count,plural, =1{# minute}one{# minute}many{# minutes}other{# minutes}}"</string>
<string name="duration_hours_relative_future" msgid="6670440478481140565">"{count,plural, =1{# heure}one{# heure}many{# heures}other{# heures}}"</string>
- <string name="duration_days_relative_future" msgid="8870658635774250746">"{count,plural, =1{# jour}one{# jour}many{# jours}other{# jours}}"</string>
+ <string name="duration_days_relative_future" msgid="8870658635774250746">"{count,plural, =1{# jour}one{# jour}many{# de jours}other{# jours}}"</string>
<string name="duration_years_relative_future" msgid="8855853883925918380">"{count,plural, =1{# an}one{# an}many{# ans}other{# ans}}"</string>
<string name="VideoView_error_title" msgid="5750686717225068016">"Problème vidéo"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3782449246085134720">"Impossible de lire cette vidéo en continu sur cet appareil."</string>
@@ -1208,8 +1208,8 @@
<string name="loading" msgid="3138021523725055037">"Chargement en cours..."</string>
<string name="capital_on" msgid="2770685323900821829">"ACTIVÉ"</string>
<string name="capital_off" msgid="7443704171014626777">"DÉSACTIVÉ"</string>
- <string name="checked" msgid="9179896827054513119">"coché"</string>
- <string name="not_checked" msgid="7972320087569023342">"non coché"</string>
+ <string name="checked" msgid="9179896827054513119">"Coché"</string>
+ <string name="not_checked" msgid="7972320087569023342">"Non coché"</string>
<string name="selected" msgid="6614607926197755875">"sélectionné"</string>
<string name="not_selected" msgid="410652016565864475">"non sélectionné"</string>
<string name="rating_label" msgid="1837085249662154601">"{rating,plural, =1{Une étoile sur {max}}one{# étoile sur {max}}many{# d\'étoiles sur {max}}other{# étoiles sur {max}}}"</string>
@@ -1328,7 +1328,7 @@
<string name="volume_icon_description_notification" msgid="579091344110747279">"Volume des notifications"</string>
<string name="ringtone_default" msgid="9118299121288174597">"Sonnerie par défaut"</string>
<string name="ringtone_default_with_actual" msgid="2709686194556159773">"Défaut (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
- <string name="ringtone_silent" msgid="397111123930141876">"Aucun(e)"</string>
+ <string name="ringtone_silent" msgid="397111123930141876">"Aucune"</string>
<string name="ringtone_picker_title" msgid="667342618626068253">"Sonneries"</string>
<string name="ringtone_picker_title_alarm" msgid="7438934548339024767">"Sons d\'alarme"</string>
<string name="ringtone_picker_title_notification" msgid="6387191794719608122">"Sons de notification"</string>
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"PARTAGER"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"REFUSER"</string>
<string name="select_input_method" msgid="3971267998568587025">"Sélectionnez le mode de saisie"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Paramètres de langue"</string>
<string name="show_ime" msgid="6406112007347443383">"Afficher lorsque le clavier physique est activé"</string>
<string name="hardware" msgid="3611039921284836033">"Utiliser le clavier à l\'écran"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configurer <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -1473,7 +1474,7 @@
<string name="ext_media_seamless_action" msgid="8837030226009268080">"Changer de sortie"</string>
<string name="ext_media_missing_title" msgid="3209472091220515046">"Mémoire de stockage <xliff:g id="NAME">%s</xliff:g> manquante"</string>
<string name="ext_media_missing_message" msgid="4408988706227922909">"Insérez l\'appareil de nouveau"</string>
- <string name="ext_media_move_specific_title" msgid="8492118544775964250">"Déplacement de <xliff:g id="NAME">%s</xliff:g> en cours..."</string>
+ <string name="ext_media_move_specific_title" msgid="8492118544775964250">"Déplacement de <xliff:g id="NAME">%s</xliff:g> en cours…"</string>
<string name="ext_media_move_title" msgid="2682741525619033637">"Déplacement des données..."</string>
<string name="ext_media_move_success_title" msgid="4901763082647316767">"Transfert de contenu terminé"</string>
<string name="ext_media_move_success_message" msgid="9159542002276982979">"Contenu déplacé vers <xliff:g id="NAME">%s</xliff:g>"</string>
@@ -1489,7 +1490,7 @@
<string name="ext_media_status_unsupported" msgid="5460509911660539317">"Non compatible"</string>
<string name="ext_media_status_ejecting" msgid="7532403368044013797">"Éjection en cours..."</string>
<string name="ext_media_status_formatting" msgid="774148701503179906">"Formatage en cours..."</string>
- <string name="ext_media_status_missing" msgid="6520746443048867314">"Non insérée"</string>
+ <string name="ext_media_status_missing" msgid="6520746443048867314">"Non inséré"</string>
<string name="activity_list_empty" msgid="4219430010716034252">"Aucune activité correspondante trouvée."</string>
<string name="permlab_route_media_output" msgid="8048124531439513118">"diriger la sortie multimédia"</string>
<string name="permdesc_route_media_output" msgid="1759683269387729675">"Permet à une appli de diriger la sortie multimédia vers d\'autres appareils externes."</string>
@@ -1508,7 +1509,7 @@
<string name="ime_action_go" msgid="5536744546326495436">"Aller"</string>
<string name="ime_action_search" msgid="4501435960587287668">"Rechercher"</string>
<string name="ime_action_send" msgid="8456843745664334138">"Envoyer"</string>
- <string name="ime_action_next" msgid="4169702997635728543">"Suivante"</string>
+ <string name="ime_action_next" msgid="4169702997635728543">"Suivant"</string>
<string name="ime_action_done" msgid="6299921014822891569">"Terminé"</string>
<string name="ime_action_previous" msgid="6548799326860401611">"Précédente"</string>
<string name="ime_action_default" msgid="8265027027659800121">"Exécuter"</string>
@@ -1549,7 +1550,7 @@
<string name="car_mode_disable_notification_title" msgid="8450693275833142896">"L\'appli de conduite est en cours d\'exécution"</string>
<string name="car_mode_disable_notification_message" msgid="8954550232288567515">"Touchez pour quitter l\'appli de conduite."</string>
<string name="back_button_label" msgid="4078224038025043387">"Précédent"</string>
- <string name="next_button_label" msgid="6040209156399907780">"Suivante"</string>
+ <string name="next_button_label" msgid="6040209156399907780">"Suivant"</string>
<string name="skip_button_label" msgid="3566599811326688389">"Ignorer"</string>
<string name="no_matches" msgid="6472699895759164599">"Aucune partie"</string>
<string name="find_on_page" msgid="5400537367077438198">"Rechercher sur la page"</string>
@@ -1938,7 +1939,7 @@
<string name="zen_mode_default_every_night_name" msgid="1467765312174275823">"Sommeil"</string>
<string name="zen_mode_implicit_trigger_description" msgid="5714956693073007111">"Géré par <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="zen_mode_implicit_activated" msgid="2634285680776672994">"Activé"</string>
- <string name="zen_mode_implicit_deactivated" msgid="8688441768371501750">"Désactivé"</string>
+ <string name="zen_mode_implicit_deactivated" msgid="8688441768371501750">"Désactivée"</string>
<string name="zen_mode_trigger_summary_divider_text" msgid="7461583466043698862">", "</string>
<string name="zen_mode_trigger_summary_range_symbol_combination" msgid="1804900738798069619">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
<string name="zen_mode_trigger_event_calendar_any" msgid="2086784607921121803">"N\'importe quel agenda"</string>
@@ -2437,23 +2438,14 @@
<string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Alarme pour <xliff:g id="USER_NAME">%s</xliff:g>"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Changer d\'utilisateur"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Désactiver le son"</string>
- <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Toucher pour désactiver le son"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Touchez pour désactiver le son"</string>
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Navigateur"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contacts"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Courriel"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"Messages texte"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musique"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Agenda"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculatrice"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
</resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 0f58c47a3dc5..1711b286aa10 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"PARTAGER"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"REFUSER"</string>
<string name="select_input_method" msgid="3971267998568587025">"Sélectionnez le mode de saisie"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Paramètres de langue"</string>
<string name="show_ime" msgid="6406112007347443383">"Afficher le clavier virtuel même lorsque le clavier physique est actif"</string>
<string name="hardware" msgid="3611039921284836033">"Utiliser le clavier à l\'écran"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configurer <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,23 +2438,14 @@
<string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Alarme pour <xliff:g id="USER_NAME">%s</xliff:g>"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Changer d\'utilisateur"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Couper le son"</string>
- <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Appuyer pour couper le son"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Appuyez pour couper le son"</string>
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Navigateur"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contacts"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Messagerie"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musique"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Agenda"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculatrice"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applications"</string>
</resources>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index d016747ea3c6..7152818f4718 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -1411,10 +1411,8 @@
<string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Selecciona para desactivar a depuración sen fíos."</string>
<string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Activouse o modo de axente de proba"</string>
<string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Restablece a configuración de fábrica para desactivar o modo de axente de proba."</string>
- <!-- no translation found for wrong_hsum_configuration_notification_title (7212758829332714385) -->
- <skip />
- <!-- no translation found for wrong_hsum_configuration_notification_message (5353475441480684381) -->
- <skip />
+ <string name="wrong_hsum_configuration_notification_title" msgid="7212758829332714385">"Configuración incorrecta de compilación do modo de usuario do sistema sen interface"</string>
+ <string name="wrong_hsum_configuration_notification_message" msgid="5353475441480684381">"O estado do modo de usuario do sistema sen interface deste dispositivo é distinto ao da súa configuración de compilación. Restablece a configuración de fábrica do dispositivo."</string>
<string name="console_running_notification_title" msgid="6087888939261635904">"A consola de serie está activada"</string>
<string name="console_running_notification_message" msgid="7892751888125174039">"O rendemento vese afectado. Para desactivar a consola, comproba o cargador de arranque."</string>
<string name="mte_override_notification_title" msgid="4731115381962792944">"A MTE experimental está activada"</string>
@@ -1430,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"COMPARTIR"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ANULAR"</string>
<string name="select_input_method" msgid="3971267998568587025">"Escoller método de introdución de texto"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Configuración de idioma"</string>
<string name="show_ime" msgid="6406112007347443383">"Móstrase na pantalla mentres o teclado físico estea activo"</string>
<string name="hardware" msgid="3611039921284836033">"Utilizar o teclado en pantalla"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configura o teclado (<xliff:g id="DEVICE_NAME">%s</xliff:g>)"</string>
@@ -1759,12 +1758,9 @@
<string name="accessibility_shortcut_enabling_service" msgid="5473495203759847687">"Teclas de volume premidas. Activouse o servizo <xliff:g id="SERVICE_NAME">%1$s</xliff:g>."</string>
<string name="accessibility_shortcut_disabling_service" msgid="8675244165062700619">"Teclas de volume premidas. Desactivouse <xliff:g id="SERVICE_NAME">%1$s</xliff:g>."</string>
<string name="accessibility_shortcut_spoken_feedback" msgid="3760999147597564314">"Solta as teclas de volume. Para activar <xliff:g id="SERVICE_NAME">%1$s</xliff:g>, mantenas premidas de novo durante 3 segundos."</string>
- <!-- no translation found for accessibility_button_prompt_text (6105393217162198616) -->
- <skip />
- <!-- no translation found for accessibility_gesture_prompt_text (6452246951969541792) -->
- <skip />
- <!-- no translation found for accessibility_gesture_3finger_prompt_text (77745752309056152) -->
- <skip />
+ <string name="accessibility_button_prompt_text" msgid="6105393217162198616">"Escolle unha función"</string>
+ <string name="accessibility_gesture_prompt_text" msgid="6452246951969541792">"Escolle unha función"</string>
+ <string name="accessibility_gesture_3finger_prompt_text" msgid="77745752309056152">"Escolle unha función"</string>
<string name="accessibility_button_instructional_text" msgid="6831154884557881996">"A función abrirase cando volvas tocar o botón Accesibilidade"</string>
<string name="accessibility_gesture_instructional_text" msgid="4133877896011098550">"A función abrirase cando volvas usar este atallo. Pasa dous dedos desde a parte inferior da pantalla e solta rapidamente."</string>
<string name="accessibility_gesture_3finger_instructional_text" msgid="1124458279366968154">"A función abrirase cando volvas usar este atallo. Pasa tres dedos desde a parte inferior da pantalla e solta rapidamente."</string>
@@ -1890,8 +1886,7 @@
<string name="restr_pin_error_too_short" msgid="1547007808237941065">"O PIN é demasiado curto. Debe conter polo menos 4 díxitos."</string>
<string name="restr_pin_try_later" msgid="5897719962541636727">"Téntao de novo máis tarde"</string>
<string name="immersive_cling_title" msgid="2307034298721541791">"Vendo pantalla completa"</string>
- <!-- no translation found for immersive_cling_description (2896205051090870978) -->
- <skip />
+ <string name="immersive_cling_description" msgid="2896205051090870978">"Para saír, pasa o dedo cara abaixo desde a parte superior da pantalla"</string>
<string name="immersive_cling_positive" msgid="7047498036346489883">"Entendido"</string>
<string name="display_rotation_camera_compat_toast_after_rotation" msgid="7600891546249829854">"Xira a pantalla para que se vexa mellor"</string>
<string name="display_rotation_camera_compat_toast_in_multi_window" msgid="2473122980393502775">"Abre <xliff:g id="NAME">%s</xliff:g> en pantalla completa para unha mellor visualización"</string>
@@ -2439,26 +2434,17 @@
<string name="face_dangling_notification_msg" msgid="746235263598985384">"Xa non se recoñece o teu modelo facial. Configura de novo o desbloqueo facial."</string>
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configurar"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Agora non"</string>
- <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Alarma para <xliff:g id="USER_NAME">%s</xliff:g>"</string>
+ <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Alarma para: <xliff:g id="USER_NAME">%s</xliff:g>"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Cambiar de usuario"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Silenciar"</string>
- <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Tocar para silenciar o son"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Toca para silenciar o son"</string>
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Navegador"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contactos"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Correo electrónico"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Música"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendario"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculadora"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapas"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicacións"</string>
</resources>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 7204703fb9f1..a9ad4b7c56fe 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"શેર કરો"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"નકારો"</string>
<string name="select_input_method" msgid="3971267998568587025">"ઇનપુટ પદ્ધતિ પસંદ કરો"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ભાષા સંબંધિત સેટિંગ"</string>
<string name="show_ime" msgid="6406112007347443383">"જ્યારે ભૌતિક કીબોર્ડ સક્રિય હોય ત્યારે તેને સ્ક્રીન પર રાખો"</string>
<string name="hardware" msgid="3611039921284836033">"ઑન-સ્ક્રીન કીબોર્ડનો ઉપયોગ કરો"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g>ની ગોઠવણી કરો"</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index c4d6f4afdff8..428e9afe638a 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"शेयर करें"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"अस्वीकार करें"</string>
<string name="select_input_method" msgid="3971267998568587025">"इनपुट का तरीका चुनें"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"भाषा की सेटिंग"</string>
<string name="show_ime" msgid="6406112007347443383">"सामान्य कीबोर्ड के सक्रिय होने के दौरान इसे स्‍क्रीन पर बनाए रखें"</string>
<string name="hardware" msgid="3611039921284836033">"ऑन-स्क्रीन कीबोर्ड इस्तेमाल करें"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> को कॉन्फ़िगर करें"</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index c3a6ec20c0b3..5c56ec436916 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"DIJELI"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ODBIJ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Odabir načina unosa"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Postavke jezika"</string>
<string name="show_ime" msgid="6406112007347443383">"Zadržava se na zaslonu dok je fizička tipkovnica aktivna"</string>
<string name="hardware" msgid="3611039921284836033">"Upotreba zaslonske tipkovnice"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfigurirajte uređaj <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2438,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Promijeni korisnika"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Isključi zvuk"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Dodirnite za isključivanje zvuka"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Preglednik"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontakti"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-pošta"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Glazba"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Karte"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikacije"</string>
</resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 396a482d0e9a..3da77226bb24 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"MEGOSZTÁS"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ELUTASÍTÁS"</string>
<string name="select_input_method" msgid="3971267998568587025">"Beviteli mód kiválasztása"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Nyelvi beállítások"</string>
<string name="show_ime" msgid="6406112007347443383">"Maradjon a képernyőn, amíg a billentyűzet aktív"</string>
<string name="hardware" msgid="3611039921284836033">"Képernyő-billentyűzet"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"A(z) <xliff:g id="DEVICE_NAME">%s</xliff:g> beállítása"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Felhasználóváltás"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Némítás"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Koppintson a hang elnémításához"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Böngésző"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Névjegyek"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-mail"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Zene"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Naptár"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Számológép"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Térkép"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Alkalmazások"</string>
</resources>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index aad776043bc4..dba601443130 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ՏՐԱՄԱԴՐԵԼ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ՄԵՐԺԵԼ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Ընտրեք ներածման եղանակը"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Լեզվի կարգավորումներ"</string>
<string name="show_ime" msgid="6406112007347443383">"Պահել էկրանին, երբ ֆիզիկական ստեղնաշարն ակտիվ է"</string>
<string name="hardware" msgid="3611039921284836033">"Օգտագործել էկրանային ստեղնաշար"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Կարգավորեք <xliff:g id="DEVICE_NAME">%s</xliff:g> սարքը"</string>
@@ -2433,26 +2434,17 @@
<string name="face_dangling_notification_msg" msgid="746235263598985384">"Ձեր դեմքի նմուշն այլևս չի կարող ճանաչվել։ Նորից կարգավորեք դեմքով ապակողպումը։"</string>
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Կարգավորել"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ոչ հիմա"</string>
- <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"<xliff:g id="USER_NAME">%s</xliff:g>-ի զարթուցիչ"</string>
+ <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"«<xliff:g id="USER_NAME">%s</xliff:g>» օգտատիրոջ զարթուցիչ"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Անցնել մյուս հաշիվ"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Անտեսել"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Հպեք՝ ձայնն անջատելու համար"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Դիտարկիչ"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Կոնտակտներ"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Էլփոստ"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Երաժշտություն"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Օրացույց"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Հաշվիչ"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Քարտեզներ"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Հավելվածներ"</string>
</resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 9668f0e52719..0e431f49f576 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"BAGIKAN"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"TOLAK"</string>
<string name="select_input_method" msgid="3971267998568587025">"Pilih metode masukan"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Setelan Bahasa"</string>
<string name="show_ime" msgid="6406112007347443383">"Biarkan di layar meski keyboard fisik aktif"</string>
<string name="hardware" msgid="3611039921284836033">"Gunakan keyboard virtual"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfigurasi <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Ganti pengguna"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Bisukan"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Ketuk untuk membisukan suara"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Browser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontak"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Email"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musik"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalender"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikasi"</string>
</resources>
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index b179c15d1f83..a81566c7ea15 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"DEILA"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"HAFNA"</string>
<string name="select_input_method" msgid="3971267998568587025">"Veldu innsláttaraðferð"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Tungumálastillingar"</string>
<string name="show_ime" msgid="6406112007347443383">"Halda því á skjánum meðan vélbúnaðarlyklaborðið er virkt"</string>
<string name="hardware" msgid="3611039921284836033">"Nota skjályklaborð"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Stilla <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Skipta um notanda"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Þagga"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Ýttu til að þagga hljóð"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Vafri"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Tengiliðir"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Tölvupóstur"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Tónlist"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Dagatal"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Reiknivél"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Kort"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Forrit"</string>
</resources>
diff --git a/core/res/res/values-it-feminine/strings.xml b/core/res/res/values-it-feminine/strings.xml
new file mode 100644
index 000000000000..407417d3292d
--- /dev/null
+++ b/core/res/res/values-it-feminine/strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="relationTypeChild" msgid="9076258911292693601">"Figlia"</string>
+ <string name="relationTypeFriend" msgid="3192092625893980574">"Amica"</string>
+ <string name="relationTypeSpouse" msgid="6916682664436031703">"Moglie"</string>
+</resources>
diff --git a/core/res/res/values-it-masculine/strings.xml b/core/res/res/values-it-masculine/strings.xml
new file mode 100644
index 000000000000..823006bbe72d
--- /dev/null
+++ b/core/res/res/values-it-masculine/strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="relationTypeChild" msgid="9076258911292693601">"Figlio"</string>
+ <string name="relationTypeFriend" msgid="3192092625893980574">"Amico"</string>
+ <string name="relationTypeSpouse" msgid="6916682664436031703">"Marito"</string>
+</resources>
diff --git a/core/res/res/values-it-neuter/strings.xml b/core/res/res/values-it-neuter/strings.xml
new file mode 100644
index 000000000000..d5ec313ea1b3
--- /dev/null
+++ b/core/res/res/values-it-neuter/strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="relationTypeChild" msgid="9076258911292693601">"Figliə"</string>
+ <string name="relationTypeFriend" msgid="3192092625893980574">"Amicə"</string>
+ <string name="relationTypeSpouse" msgid="6916682664436031703">"Coniuge"</string>
+</resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 06aa308d6378..52fd5b19e6d1 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -47,7 +47,7 @@
<string name="needPuk2" msgid="3910763547447344963">"Digita il codice PUK2 per sbloccare la SIM."</string>
<string name="enablePin" msgid="2543771964137091212">"Operazione non riuscita; attiva blocco SIM/RUIM."</string>
<plurals name="pinpuk_attempts" formatted="false" msgid="1619867269012213584">
- <item quantity="many">Hai ancora <xliff:g id="NUMBER_1">%d</xliff:g> tentativi a disposizione prima che la SIM venga bloccata.</item>
+ <item quantity="many">Hai ancora <xliff:g id="NUMBER_1">%d</xliff:g> di tentativi a disposizione prima che la SIM venga bloccata.</item>
<item quantity="other">Hai ancora <xliff:g id="NUMBER_1">%d</xliff:g> tentativi a disposizione prima che la SIM venga bloccata.</item>
<item quantity="one">Hai ancora <xliff:g id="NUMBER_0">%d</xliff:g> tentativo a disposizione prima che la SIM venga bloccata.</item>
</plurals>
@@ -521,7 +521,7 @@
<string name="permlab_backgroundCamera" msgid="7549917926079731681">"Acquisizione di foto e video in background"</string>
<string name="permdesc_backgroundCamera" msgid="1615291686191138250">"Questa app può scattare foto e registrare video tramite la fotocamera in qualsiasi momento."</string>
<string name="permlab_systemCamera" msgid="3642917457796210580">"Consenti a un\'applicazione o a un servizio di accedere alle videocamere del sistema per fare foto e video"</string>
- <string name="permdesc_systemCamera" msgid="5938360914419175986">"Questa app di sistema o con privilegi può scattare foto e registrare video tramite una videocamera di sistema in qualsiasi momento. Richiede che anche l\'app disponga dell\'autorizzazione android.permission.CAMERA"</string>
+ <string name="permdesc_systemCamera" msgid="5938360914419175986">"Questa app di sistema o con privilegi può scattare foto e registrare video tramite una fotocamera di sistema in qualsiasi momento. Richiede che anche l\'app disponga dell\'autorizzazione android.permission.CAMERA"</string>
<string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Consenti a un\'applicazione o a un servizio di ricevere callback relativi all\'apertura o alla chiusura di videocamere."</string>
<string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"Questa app può ricevere callback quando una videocamera viene aperta (da una specifica applicazione) o chiusa."</string>
<string name="permlab_cameraHeadlessSystemUser" msgid="680194666834500050">"Consenti a un\'applicazione o a un servizio di accedere alla fotocamera come utente di sistema senza testa."</string>
@@ -622,7 +622,7 @@
<string name="permlab_disableKeyguard" msgid="3605253559020928505">"disattivazione blocco schermo"</string>
<string name="permdesc_disableKeyguard" msgid="3223710003098573038">"Consente all\'applicazione di disattivare il blocco tastiera ed eventuali protezioni tramite password associate. Ad esempio, il telefono disattiva il blocco tastiera quando riceve una telefonata in arrivo e lo riattiva al termine della chiamata."</string>
<string name="permlab_requestPasswordComplexity" msgid="1808977190557794109">"richiesta di complessità del blocco schermo"</string>
- <string name="permdesc_requestPasswordComplexity" msgid="1130556896836258567">"Consente all\'app di conoscere il livello di complessità del blocco schermo (alto, medio, basso o nessuno), che indica l\'intervallo di caratteri possibile e il tipo di blocco schermo. L\'app può inoltre suggerire agli utenti di aggiornare il blocco schermo a un livello specifico di complessità, ma gli utenti possono ignorare liberamente il suggerimento e uscire. Tieni presente che il blocco schermo non viene memorizzato come testo non crittografato, quindi l\'app non conosce la password esatta."</string>
+ <string name="permdesc_requestPasswordComplexity" msgid="1130556896836258567">"Consente all\'app di conoscere il livello di complessità del blocco schermo (alto, medio, basso o nessuno), che indica l\'intervallo di lunghezza di caratteri possibile e il tipo di blocco schermo. L\'app può inoltre suggerire agli utenti di aggiornare il blocco schermo a un livello specifico di complessità, ma gli utenti possono ignorare liberamente il suggerimento e uscire. Tieni presente che il blocco schermo non viene memorizzato come testo non crittografato, quindi l\'app non conosce la password esatta."</string>
<string name="permlab_postNotification" msgid="4875401198597803658">"Visualizzazione di notifiche"</string>
<string name="permdesc_postNotification" msgid="5974977162462877075">"Consente all\'app di mostrare notifiche"</string>
<string name="permlab_turnScreenOn" msgid="219344053664171492">"attiva lo schermo"</string>
@@ -738,7 +738,7 @@
</string-array>
<string name="face_error_hw_not_available" msgid="5085202213036026288">"Imposs. verificare volto. Hardware non disponibile."</string>
<string name="face_error_timeout" msgid="2598544068593889762">"Riprova lo Sblocco con il Volto"</string>
- <string name="face_error_no_space" msgid="5649264057026021723">"Imposs. salvare dati nuovi volti. Elimina un volto vecchio."</string>
+ <string name="face_error_no_space" msgid="5649264057026021723">"Impossibile salvare nuovi dati del volto. Elimina un volto vecchio."</string>
<string name="face_error_canceled" msgid="2164434737103802131">"Operazione associata al volto annullata."</string>
<string name="face_error_user_canceled" msgid="5766472033202928373">"Sblocco con il Volto annullato dall\'utente"</string>
<string name="face_error_lockout" msgid="7864408714994529437">"Troppi tentativi. Riprova più tardi."</string>
@@ -969,7 +969,7 @@
<string name="relationTypeChild" msgid="9076258911292693601">"Figlio"</string>
<string name="relationTypeDomesticPartner" msgid="7825306887697559238">"Convivente"</string>
<string name="relationTypeFather" msgid="3856225062864790596">"Padre"</string>
- <string name="relationTypeFriend" msgid="3192092625893980574">"Amico"</string>
+ <string name="relationTypeFriend" msgid="3192092625893980574">"Persona amica"</string>
<string name="relationTypeManager" msgid="2272860813153171857">"Dirigente"</string>
<string name="relationTypeMother" msgid="2331762740982699460">"Madre"</string>
<string name="relationTypeParent" msgid="4177920938333039882">"Genitore"</string>
@@ -1127,7 +1127,7 @@
<string name="enable_explore_by_touch_warning_message" product="default" msgid="4312979647356179250">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> vuole attivare la funzione Esplora al tocco. Quando la funzione Esplora al tocco è attiva, puoi ascoltare o visualizzare le descrizioni di ciò che stai toccando oppure interagire con il telefono tramite gesti."</string>
<string name="oneMonthDurationPast" msgid="4538030857114635777">"1 mese fa"</string>
<string name="beforeOneMonthDurationPast" msgid="8315149541372065392">"Oltre 1 mese fa"</string>
- <string name="last_num_days" msgid="2393660431490280537">"{count,plural, =1{Ultimo giorno}many{Ultimi # giorni}other{Ultimi # giorni}}"</string>
+ <string name="last_num_days" msgid="2393660431490280537">"{count,plural, =1{Ultimo giorno}many{Ultimi # di giorni}other{Ultimi # giorni}}"</string>
<string name="last_month" msgid="1528906781083518683">"Ultimo mese"</string>
<string name="older" msgid="1645159827884647400">"Precedente"</string>
<string name="preposition_for_date" msgid="2780767868832729599">"<xliff:g id="DATE">%s</xliff:g>"</string>
@@ -1154,14 +1154,14 @@
<string name="duration_hours_shortest_future" msgid="2979276794547981674">"tra <xliff:g id="COUNT">%d</xliff:g> h"</string>
<string name="duration_days_shortest_future" msgid="3392722163935571543">"tra <xliff:g id="COUNT">%d</xliff:g> g"</string>
<string name="duration_years_shortest_future" msgid="5537464088352970388">"tra <xliff:g id="COUNT">%d</xliff:g> a"</string>
- <string name="duration_minutes_relative" msgid="8620337701051015593">"{count,plural, =1{# minuto fa}many{# minuti fa}other{# minuti fa}}"</string>
- <string name="duration_hours_relative" msgid="4836449961693180253">"{count,plural, =1{# ora fa}many{# ore fa}other{# ore fa}}"</string>
- <string name="duration_days_relative" msgid="621965767567258302">"{count,plural, =1{# giorno fa}many{# giorni fa}other{# giorni fa}}"</string>
- <string name="duration_years_relative" msgid="8731202348869424370">"{count,plural, =1{# anno fa}many{# anni fa}other{# anni fa}}"</string>
- <string name="duration_minutes_relative_future" msgid="5259574171747708115">"{count,plural, =1{# minuto}many{# minuti}other{# minuti}}"</string>
- <string name="duration_hours_relative_future" msgid="6670440478481140565">"{count,plural, =1{# ora}many{# ore}other{# ore}}"</string>
- <string name="duration_days_relative_future" msgid="8870658635774250746">"{count,plural, =1{# giorno}many{# giorni}other{# giorni}}"</string>
- <string name="duration_years_relative_future" msgid="8855853883925918380">"{count,plural, =1{# anno}many{# anni}other{# anni}}"</string>
+ <string name="duration_minutes_relative" msgid="8620337701051015593">"{count,plural, =1{# minuto fa}many{# di minuti fa}other{# minuti fa}}"</string>
+ <string name="duration_hours_relative" msgid="4836449961693180253">"{count,plural, =1{# ora fa}many{# di ore fa}other{# ore fa}}"</string>
+ <string name="duration_days_relative" msgid="621965767567258302">"{count,plural, =1{# giorno fa}many{# di giorni fa}other{# giorni fa}}"</string>
+ <string name="duration_years_relative" msgid="8731202348869424370">"{count,plural, =1{# anno fa}many{# di anni fa}other{# anni fa}}"</string>
+ <string name="duration_minutes_relative_future" msgid="5259574171747708115">"{count,plural, =1{# minuto}many{# di minuti}other{# minuti}}"</string>
+ <string name="duration_hours_relative_future" msgid="6670440478481140565">"{count,plural, =1{# ora}many{# di ore}other{# ore}}"</string>
+ <string name="duration_days_relative_future" msgid="8870658635774250746">"{count,plural, =1{# giorno}many{# di giorni}other{# giorni}}"</string>
+ <string name="duration_years_relative_future" msgid="8855853883925918380">"{count,plural, =1{# anno}many{# di anni}other{# anni}}"</string>
<string name="VideoView_error_title" msgid="5750686717225068016">"Problemi video"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3782449246085134720">"Questo video non è valido per lo streaming su questo dispositivo."</string>
<string name="VideoView_error_text_unknown" msgid="7658683339707607138">"Impossibile riprodurre il video."</string>
@@ -1286,7 +1286,7 @@
<string name="android_start_title" product="tablet" msgid="4429767260263190344">"Avvio del tablet…"</string>
<string name="android_start_title" product="device" msgid="6967413819673299309">"Avvio del dispositivo…"</string>
<string name="android_upgrading_notification_title" product="default" msgid="3509927005342279257">"Completamento aggiornamento di sistema…"</string>
- <string name="app_upgrading_toast" msgid="1016267296049455585">"Upgrade dell\'app <xliff:g id="APPLICATION">%1$s</xliff:g>…"</string>
+ <string name="app_upgrading_toast" msgid="1016267296049455585">"Upgrade dell\'app <xliff:g id="APPLICATION">%1$s</xliff:g> in corso…"</string>
<string name="android_preparing_apk" msgid="589736917792300956">"<xliff:g id="APPNAME">%1$s</xliff:g> in preparazione."</string>
<string name="android_upgrading_starting_apps" msgid="6206161195076057075">"Avvio app."</string>
<string name="android_upgrading_complete" msgid="409800058018374746">"Conclusione dell\'avvio."</string>
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"CONDIVIDI"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"RIFIUTO"</string>
<string name="select_input_method" msgid="3971267998568587025">"Scegli il metodo di immissione"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Impostazioni della lingua"</string>
<string name="show_ime" msgid="6406112007347443383">"Tieni sullo schermo quando è attiva la tastiera fisica"</string>
<string name="hardware" msgid="3611039921284836033">"Usa tastiera sullo schermo"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configura <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -1767,7 +1768,7 @@
<string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ingrandimento"</string>
<string name="user_switched" msgid="7249833311585228097">"Utente corrente <xliff:g id="NAME">%1$s</xliff:g>."</string>
<string name="user_switching_message" msgid="1912993630661332336">"Passaggio a <xliff:g id="NAME">%1$s</xliff:g>…"</string>
- <string name="user_logging_out_message" msgid="7216437629179710359">"Disconnessione di <xliff:g id="NAME">%1$s</xliff:g>…"</string>
+ <string name="user_logging_out_message" msgid="7216437629179710359">"Disconnessione di <xliff:g id="NAME">%1$s</xliff:g> in corso…"</string>
<string name="owner_name" msgid="8713560351570795743">"Proprietario"</string>
<string name="guest_name" msgid="8502103277839834324">"Ospite"</string>
<string name="error_message_title" msgid="4082495589294631966">"Errore"</string>
@@ -1915,14 +1916,14 @@
<string name="data_saver_description" msgid="4995164271550590517">"Per contribuire a ridurre l\'utilizzo dei dati, la funzionalità Risparmio dati impedisce ad alcune app di inviare o ricevere dati in background. Un\'app in uso può accedere ai dati, ma potrebbe farlo con meno frequenza. Per esempio, è possibile che le immagini non vengano visualizzate finché non le tocchi."</string>
<string name="data_saver_enable_title" msgid="7080620065745260137">"Attivare Risparmio dati?"</string>
<string name="data_saver_enable_button" msgid="4399405762586419726">"Attiva"</string>
- <string name="zen_mode_duration_minutes_summary" msgid="4555514757230849789">"{count,plural, =1{Per un minuto (fino alle ore {formattedTime})}many{Per # minuti (fino alle ore {formattedTime})}other{Per # minuti (fino alle ore {formattedTime})}}"</string>
- <string name="zen_mode_duration_minutes_summary_short" msgid="1187553788355486950">"{count,plural, =1{Per 1 min (fino alle ore {formattedTime})}many{Per # min (fino alle ore {formattedTime})}other{Per # min (fino alle ore {formattedTime})}}"</string>
- <string name="zen_mode_duration_hours_summary" msgid="3866333100793277211">"{count,plural, =1{Per 1 ora (fino alle ore {formattedTime})}many{Per # ore (fino alle ore {formattedTime})}other{Per # ore (fino alle ore {formattedTime})}}"</string>
- <string name="zen_mode_duration_hours_summary_short" msgid="687919813833347945">"{count,plural, =1{Per 1 h (fino alle ore {formattedTime})}many{Per # h (fino alle ore {formattedTime})}other{Per # h (fino alle ore {formattedTime})}}"</string>
- <string name="zen_mode_duration_minutes" msgid="2340007982276569054">"{count,plural, =1{Per un minuto}many{Per # minuti}other{Per # minuti}}"</string>
- <string name="zen_mode_duration_minutes_short" msgid="2435756450204526554">"{count,plural, =1{Per 1 min}many{Per # min}other{Per # min}}"</string>
- <string name="zen_mode_duration_hours" msgid="7841806065034711849">"{count,plural, =1{Per 1 ora}many{Per # ore}other{Per # ore}}"</string>
- <string name="zen_mode_duration_hours_short" msgid="3666949653933099065">"{count,plural, =1{Per 1 h}many{Per # h}other{Per # h}}"</string>
+ <string name="zen_mode_duration_minutes_summary" msgid="4555514757230849789">"{count,plural, =1{Per un minuto (fino alle ore {formattedTime})}many{Per # di minuti (fino alle ore {formattedTime})}other{Per # minuti (fino alle ore {formattedTime})}}"</string>
+ <string name="zen_mode_duration_minutes_summary_short" msgid="1187553788355486950">"{count,plural, =1{Per 1 min (fino alle ore {formattedTime})}many{Per # di min (fino alle ore {formattedTime})}other{Per # min (fino alle ore {formattedTime})}}"</string>
+ <string name="zen_mode_duration_hours_summary" msgid="3866333100793277211">"{count,plural, =1{Per 1 ora (fino alle ore {formattedTime})}many{Per # di ore (fino alle ore {formattedTime})}other{Per # ore (fino alle ore {formattedTime})}}"</string>
+ <string name="zen_mode_duration_hours_summary_short" msgid="687919813833347945">"{count,plural, =1{Per 1 h (fino alle ore {formattedTime})}many{Per # di h (fino alle ore {formattedTime})}other{Per # h (fino alle ore {formattedTime})}}"</string>
+ <string name="zen_mode_duration_minutes" msgid="2340007982276569054">"{count,plural, =1{Per un minuto}many{Per # di minuti}other{Per # minuti}}"</string>
+ <string name="zen_mode_duration_minutes_short" msgid="2435756450204526554">"{count,plural, =1{Per 1 min}many{Per # di min}other{Per # min}}"</string>
+ <string name="zen_mode_duration_hours" msgid="7841806065034711849">"{count,plural, =1{Per 1 ora}many{Per # di ore}other{Per # ore}}"</string>
+ <string name="zen_mode_duration_hours_short" msgid="3666949653933099065">"{count,plural, =1{Per 1 h}many{Per # di h}other{Per # h}}"</string>
<string name="zen_mode_until_next_day" msgid="1403042784161725038">"Fino a: <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_until" msgid="2250286190237669079">"Fino a <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
<string name="zen_mode_alarm" msgid="7046911727540499275">"Fino a <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> (prossima sveglia)"</string>
@@ -2438,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Cambia utente"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Disattiva audio"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Tocca per disattivare l\'audio"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Browser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contatti"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Email"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musica"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendario"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calcolatrice"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Applicazioni"</string>
</resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index dd9f6b82c3fa..355a0e9185a8 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"שיתוף"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"עדיף שלא"</string>
<string name="select_input_method" msgid="3971267998568587025">"בחירה של שיטת הזנה"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"הגדרות שפה"</string>
<string name="show_ime" msgid="6406112007347443383">"להשאיר במסך בזמן שהמקלדת הפיזית פעילה"</string>
<string name="hardware" msgid="3611039921284836033">"שימוש במקלדת שמופיעה במסך"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"הגדרה של <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,23 +2438,14 @@
<string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"שעון מעורר של <xliff:g id="USER_NAME">%s</xliff:g>"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"החלפת משתמש"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"השתקה"</string>
- <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"צריך להקיש כדי להשתיק את הצליל"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"כדי להשתיק את הצליל, צריך להקיש כאן"</string>
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"דפדפן"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"אנשי קשר"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"אימייל"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"מוזיקה"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"יומן"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"מחשבון"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"מפות"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"אפליקציות"</string>
</resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 29644862065c..4364b28838cd 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -1144,7 +1144,7 @@
<string name="weeks" msgid="3516247214269821391">"週間"</string>
<string name="year" msgid="5182610307741238982">"年"</string>
<string name="years" msgid="5797714729103773425">"年"</string>
- <string name="now_string_shortest" msgid="3684914126941650330">"現在"</string>
+ <string name="now_string_shortest" msgid="3684914126941650330">"今"</string>
<string name="duration_minutes_shortest" msgid="5744379079540806690">"<xliff:g id="COUNT">%d</xliff:g> 分"</string>
<string name="duration_hours_shortest" msgid="1477752094141971675">"<xliff:g id="COUNT">%d</xliff:g> 時間"</string>
<string name="duration_days_shortest" msgid="4083124701676227233">"<xliff:g id="COUNT">%d</xliff:g> 日"</string>
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"共有する"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"共有しない"</string>
<string name="select_input_method" msgid="3971267998568587025">"入力方法の選択"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"言語設定"</string>
<string name="show_ime" msgid="6406112007347443383">"物理キーボードが有効になっていても画面に表示させます"</string>
<string name="hardware" msgid="3611039921284836033">"画面キーボードを使用"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g>の設定"</string>
@@ -2436,23 +2437,14 @@
<string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"<xliff:g id="USER_NAME">%s</xliff:g> さんのアラーム"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"ユーザーを切り替え"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"ミュート"</string>
- <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"音声をミュートするにはタップします"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"通知音をミュートするにはタップしてください"</string>
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"ブラウザ"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"連絡先"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"メール"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"音楽"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"カレンダー"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"電卓"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"マップ"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"アプリ"</string>
</resources>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index a45176fce061..1e5cf9356f1f 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"გაზიარება"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"უარყოფა"</string>
<string name="select_input_method" msgid="3971267998568587025">"აირჩიეთ შეყვანის მეთოდი"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ენის პარამეტრები"</string>
<string name="show_ime" msgid="6406112007347443383">"აქტიური ფიზიკური კლავიატურისას ეკრანზე შენარჩუნება"</string>
<string name="hardware" msgid="3611039921284836033">"ეკრანული კლავიატურის გამოყენება"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"მოახდინეთ <xliff:g id="DEVICE_NAME">%s</xliff:g>-ის კონფიგურირება"</string>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index c526870ddbab..2acf35db1571 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"БӨЛІСУ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ҚАБЫЛДАМАУ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Енгізу әдісін таңдау"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Тіл параметрлері"</string>
<string name="show_ime" msgid="6406112007347443383">"Физикалық пернетақта қосулы кезде оны экранға шығару"</string>
<string name="hardware" msgid="3611039921284836033">"Экрандағы пернетақтаны пайдалану"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> конфигурациялау"</string>
@@ -2433,26 +2434,17 @@
<string name="face_dangling_notification_msg" msgid="746235263598985384">"Бет үлгіңіз бұдан былай танылмайды. Бет тану функциясын қайта реттеңіз."</string>
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Реттеу"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Қазір емес"</string>
- <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"<xliff:g id="USER_NAME">%s</xliff:g> атына қойылған дабыл"</string>
+ <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"<xliff:g id="USER_NAME">%s</xliff:g> оятқышы"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Пайдаланушыны ауыстыру"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Дыбысын өшіру"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Дыбысын өшіру үшін түртіңіз."</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Браузер"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Контактілер"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Электрондық пошта"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Музыка"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Күнтізбе"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Калькулятор"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Қолданбалар"</string>
</resources>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 2bf799c9e8cf..7f3c09ec7cec 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ចែករំលែក"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"បដិសេធ"</string>
<string name="select_input_method" msgid="3971267998568587025">"ជ្រើស​វិធីសាស្ត្រ​បញ្ចូល"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ការកំណត់​ភាសា"</string>
<string name="show_ime" msgid="6406112007347443383">"ទុកវានៅលើអេក្រង់ខណៈពេលក្តារចុចពិតប្រាកដកំពុងសកម្ម"</string>
<string name="hardware" msgid="3611039921284836033">"ប្រើក្ដារចុច​លើអេក្រង់"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"កំណត់រចនាសម្ព័ន្ធ <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"ប្ដូរអ្នកប្រើប្រាស់"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"បិទសំឡេង"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"ចុចដើម្បីបិទសំឡេង"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"កម្មវិធី​រុករក​តាម​អ៊ីនធឺណិត"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"ទំនាក់ទំនង"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"អ៊ីមែល"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"តន្ត្រី"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"ប្រតិទិន"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"ម៉ាស៊ីនគិតលេខ"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"ផែនទី"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"កម្មវិធី"</string>
</resources>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index 413a35a92c48..4ef70dfba6bc 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -1144,7 +1144,7 @@
<string name="weeks" msgid="3516247214269821391">"ವಾರಗಳು"</string>
<string name="year" msgid="5182610307741238982">"ವರ್ಷ"</string>
<string name="years" msgid="5797714729103773425">"ವರ್ಷಗಳು"</string>
- <string name="now_string_shortest" msgid="3684914126941650330">"ಇದೀಗ"</string>
+ <string name="now_string_shortest" msgid="3684914126941650330">"ಈಗ"</string>
<string name="duration_minutes_shortest" msgid="5744379079540806690">"<xliff:g id="COUNT">%d</xliff:g>ನಿ"</string>
<string name="duration_hours_shortest" msgid="1477752094141971675">"<xliff:g id="COUNT">%d</xliff:g>ಗಂ"</string>
<string name="duration_days_shortest" msgid="4083124701676227233">"<xliff:g id="COUNT">%d</xliff:g>ದಿ"</string>
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ಹಂಚಿಕೊಳ್ಳಿ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ನಿರಾಕರಿಸಿ"</string>
<string name="select_input_method" msgid="3971267998568587025">"ಇನ್‌ಪುಟ್‌‌ ವಿಧಾನವನ್ನು ಆರಿಸಿ"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ಭಾಷೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
<string name="show_ime" msgid="6406112007347443383">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್ ಸಕ್ರಿಯವಾಗಿರುವಾಗ ಅದನ್ನು ಸ್ಕ್ರೀನ್ ಮೇಲಿರಿಸಿ"</string>
<string name="hardware" msgid="3611039921284836033">"ಆನ್-ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್ ಬಳಸಿ"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> ಕಾನ್ಫಿಗರ್ ಮಾಡಿ"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index e0d3fb7ae1d1..2cdc59cb4749 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"공유"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"거부"</string>
<string name="select_input_method" msgid="3971267998568587025">"입력 방법 선택"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"언어 설정"</string>
<string name="show_ime" msgid="6406112007347443383">"물리적 키보드가 활성 상태인 경우 화면에 켜 둠"</string>
<string name="hardware" msgid="3611039921284836033">"터치 키보드 사용"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> 설정"</string>
@@ -2436,23 +2437,14 @@
<string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"<xliff:g id="USER_NAME">%s</xliff:g>님의 알람"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"사용자 전환"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"음소거"</string>
- <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"탭하여 소리 음소거"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="bg_user_sound_notification_message" msgid="8613881975316976673">"탭하여 음소거"</string>
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"브라우저"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"연락처"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"이메일"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"음악"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"캘린더"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"계산기"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"지도"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"애플리케이션"</string>
</resources>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index e4c460381134..82cb94400ea5 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"БӨЛҮШҮҮ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ЧЕТКЕ КАГУУ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Дайын киргизүү ыкмасын тандаңыз"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Тил параметрлери"</string>
<string name="show_ime" msgid="6406112007347443383">"Баскычтоп иштетилгенде экранда көрүнүп турат"</string>
<string name="hardware" msgid="3611039921284836033">"Экрандагы баскычтопту колдонуу"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> түзмөгүн конфигурациялоо"</string>
@@ -2434,25 +2435,16 @@
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Тууралоо"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Азыр эмес"</string>
<string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"<xliff:g id="USER_NAME">%s</xliff:g> үчүн ойготкуч"</string>
- <string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Колдонуучуну которуштуруу"</string>
+ <string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Башка колдонуучуга которулуу"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Үнүн басуу"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Үнүн басуу үчүн таптап коюңуз"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Серепчи"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Байланыштар"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Электрондук почта"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Музыка"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Жылнаама"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Эсептегич"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карталар"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Колдонмолор"</string>
</resources>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index ef5e51dc6dc5..1f4bb88d7b43 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ແບ່ງປັນ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ປະຕິເສດ"</string>
<string name="select_input_method" msgid="3971267998568587025">"ເລືອກຮູບແບບການປ້ອນ"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ການຕັ້ງຄ່າພາສາ"</string>
<string name="show_ime" msgid="6406112007347443383">"ເປີດໃຊ້ໃຫ້ມັນຢູ່ໃນໜ້າຈໍໃນຂະນະທີ່ໃຊ້ແປ້ນພິມພາຍນອກຢູ່"</string>
<string name="hardware" msgid="3611039921284836033">"ໃຊ້ແປ້ນພິມໃນໜ້າຈໍ"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"ຕັ້ງຄ່າ <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"ສະຫຼັບຜູ້ໃຊ້"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"ປິດສຽງ"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"ແຕະເພື່ອປິດສຽງ"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"ໂປຣແກຣມທ່ອງເວັບ"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"ລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"ອີເມວ"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"ເພງ"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"ປະຕິທິນ"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"ຈັກຄິດໄລ່"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"ແຜນທີ່"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ແອັບພລິເຄຊັນ"</string>
</resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index e2d59fd81d12..04ac536b3f0a 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -1430,6 +1430,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"BENDRINTI"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ATMESTI"</string>
<string name="select_input_method" msgid="3971267998568587025">"Pasirinkite įvesties metodą"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Kalbos nustatymai"</string>
<string name="show_ime" msgid="6406112007347443383">"Palikti ekrane, kol fizinė klaviatūra aktyvi"</string>
<string name="hardware" msgid="3611039921284836033">"Ekrano klaviatūros naudojimas"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"„<xliff:g id="DEVICE_NAME">%s</xliff:g>“ konfigūravimas"</string>
@@ -2439,22 +2440,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Perjungti naudotoją"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Nutildyti"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Palieskite, kad nutildytumėte garsą"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Naršyklė"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontaktai"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"El. paštas"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Muzika"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalendorius"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Skaičiuotuvas"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Žemėlapiai"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Programos"</string>
</resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 42fb763bda65..6d362e76bb13 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -1412,10 +1412,8 @@
<string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Atlasiet, lai atspējotu bezvadu atkļūdošanu."</string>
<string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Drošības pārbaudes režīms ir iespējots"</string>
<string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Lai atspējotu drošības pārbaudes režīmu, veiciet rūpnīcas datu atiestatīšanu."</string>
- <!-- no translation found for wrong_hsum_configuration_notification_title (7212758829332714385) -->
- <skip />
- <!-- no translation found for wrong_hsum_configuration_notification_message (5353475441480684381) -->
- <skip />
+ <string name="wrong_hsum_configuration_notification_title" msgid="7212758829332714385">"Nepareiza bezgalvas sistēmas lietotāja režīma būvējuma konfigurācija"</string>
+ <string name="wrong_hsum_configuration_notification_message" msgid="5353475441480684381">"Šīs ierīces bezgalvas sistēmas lietotāja režīma stāvoklis atšķiras no tā būvējuma konfigurācijas. Lūdzu, atiestatiet ierīcē rūpnīcas datus."</string>
<string name="console_running_notification_title" msgid="6087888939261635904">"Seriālā konsole ir iespējota"</string>
<string name="console_running_notification_message" msgid="7892751888125174039">"Tiek ietekmēta veiktspēja. Lai atspējotu, pārbaudiet operētājsistēmu ielādes rīku."</string>
<string name="mte_override_notification_title" msgid="4731115381962792944">"Eksperimentālais paplašinājums MTE iespējots"</string>
@@ -1431,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"KOPĪGOT"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"NORAIDĪT"</string>
<string name="select_input_method" msgid="3971267998568587025">"Ievades metodes izvēle"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Valodas iestatījumi"</string>
<string name="show_ime" msgid="6406112007347443383">"Paturēt ekrānā, kamēr ir aktīva fiziskā tastatūra"</string>
<string name="hardware" msgid="3611039921284836033">"Izmantojiet ekrāna tastatūru"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Jākonfigurē <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -1760,12 +1759,9 @@
<string name="accessibility_shortcut_enabling_service" msgid="5473495203759847687">"Turējāt nospiestas skaļuma pogas. Pakalpojums <xliff:g id="SERVICE_NAME">%1$s</xliff:g> tika ieslēgts."</string>
<string name="accessibility_shortcut_disabling_service" msgid="8675244165062700619">"Turējāt nospiestas skaļuma pogas. Pakalpojums <xliff:g id="SERVICE_NAME">%1$s</xliff:g> tika izslēgts."</string>
<string name="accessibility_shortcut_spoken_feedback" msgid="3760999147597564314">"Atlaidiet skaļuma pogas. Lai ieslēgtu pakalpojumu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>, vēlreiz nospiediet un trīs sekundes turiet nospiestas abas skaļuma pogas."</string>
- <!-- no translation found for accessibility_button_prompt_text (6105393217162198616) -->
- <skip />
- <!-- no translation found for accessibility_gesture_prompt_text (6452246951969541792) -->
- <skip />
- <!-- no translation found for accessibility_gesture_3finger_prompt_text (77745752309056152) -->
- <skip />
+ <string name="accessibility_button_prompt_text" msgid="6105393217162198616">"Izvēlieties funkciju"</string>
+ <string name="accessibility_gesture_prompt_text" msgid="6452246951969541792">"Izvēlieties funkciju"</string>
+ <string name="accessibility_gesture_3finger_prompt_text" msgid="77745752309056152">"Izvēlieties funkciju"</string>
<string name="accessibility_button_instructional_text" msgid="6831154884557881996">"Funkcija tiks atvērta, kad nākamreiz pieskarsieties pieejamības pogai."</string>
<string name="accessibility_gesture_instructional_text" msgid="4133877896011098550">"Funkcija tiks atvērta, kad nākamreiz izmantosiet šo saīsni. Velciet augšup ar diviem pirkstiem no ekrāna apakšdaļas un ātri atlaidiet."</string>
<string name="accessibility_gesture_3finger_instructional_text" msgid="1124458279366968154">"Funkcija tiks atvērta, kad nākamreiz izmantosiet šo saīsni. Velciet augšup ar trim pirkstiem no ekrāna apakšdaļas un ātri atlaidiet."</string>
@@ -1891,8 +1887,7 @@
<string name="restr_pin_error_too_short" msgid="1547007808237941065">"PIN ir pārāk īss. Tam ir jābūt vismaz 4 ciparus garam."</string>
<string name="restr_pin_try_later" msgid="5897719962541636727">"Vēlāk mēģiniet vēlreiz."</string>
<string name="immersive_cling_title" msgid="2307034298721541791">"Skatīšanās pilnekrāna režīmā"</string>
- <!-- no translation found for immersive_cling_description (2896205051090870978) -->
- <skip />
+ <string name="immersive_cling_description" msgid="2896205051090870978">"Lai izietu, velciet lejup no ekrāna augšdaļas."</string>
<string name="immersive_cling_positive" msgid="7047498036346489883">"Labi"</string>
<string name="display_rotation_camera_compat_toast_after_rotation" msgid="7600891546249829854">"Lai uzlabotu skatu, pagrieziet ekrānu."</string>
<string name="display_rotation_camera_compat_toast_in_multi_window" msgid="2473122980393502775">"Labākam skatam atveriet lietotni <xliff:g id="NAME">%s</xliff:g> pilnekrāna režīmā."</string>
@@ -2444,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Mainīt lietotāju"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Izslēgt skaņu"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Pieskarieties, lai izslēgtu skaņu"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Pārlūkprogramma"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontaktpersonas"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-pasts"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"Īsziņas"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Mūzika"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalendārs"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulators"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Lietojumprogrammas"</string>
</resources>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index b3b3e37cf2b5..c7640265ea2f 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -1411,10 +1411,8 @@
<string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Изберете за да се оневозможи безжично отстранување грешки."</string>
<string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Овозможен е режимот на рамка за тестирање"</string>
<string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Извршете фабричко ресетирање за да го оневозможите режимот на рамка за тестирање."</string>
- <!-- no translation found for wrong_hsum_configuration_notification_title (7212758829332714385) -->
- <skip />
- <!-- no translation found for wrong_hsum_configuration_notification_message (5353475441480684381) -->
- <skip />
+ <string name="wrong_hsum_configuration_notification_title" msgid="7212758829332714385">"Погрешна конфигурација на верзија на HSUM"</string>
+ <string name="wrong_hsum_configuration_notification_message" msgid="5353475441480684381">"Состојбата на „Режимот на системскиот корисник без кориснички интерфејс“ на уредов се разликува од неговата конфигурација на верзија. Ресетирајте го уредот на фабрички поставки."</string>
<string name="console_running_notification_title" msgid="6087888939261635904">"Сериската конзола е овозможена"</string>
<string name="console_running_notification_message" msgid="7892751888125174039">"Перформансите се засегнати. За да оневозможите, проверете го подигнувачот."</string>
<string name="mte_override_notification_title" msgid="4731115381962792944">"Овозможена е експериментална MTE"</string>
@@ -1430,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"СПОДЕЛИ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ОДБИЈ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Одбери метод на внес"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Поставки за јазик"</string>
<string name="show_ime" msgid="6406112007347443383">"Прикажувај ја на екранот додека е активна физичката тастатура"</string>
<string name="hardware" msgid="3611039921284836033">"Користете тастатура на екран"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Конфигурирање на <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -1759,12 +1758,9 @@
<string name="accessibility_shortcut_enabling_service" msgid="5473495203759847687">"Ги задржавте копчињата за јачина на звук. <xliff:g id="SERVICE_NAME">%1$s</xliff:g> е вклучена."</string>
<string name="accessibility_shortcut_disabling_service" msgid="8675244165062700619">"Ги задржавте копчињата за јачина на звук. <xliff:g id="SERVICE_NAME">%1$s</xliff:g> е исклучена."</string>
<string name="accessibility_shortcut_spoken_feedback" msgid="3760999147597564314">"Ослободете ги копчињата за јачина на звукот. Притиснете ги и задржете ги двете копчиња за јачина на звукот во траење од 3 секунди за да вклучите <xliff:g id="SERVICE_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for accessibility_button_prompt_text (6105393217162198616) -->
- <skip />
- <!-- no translation found for accessibility_gesture_prompt_text (6452246951969541792) -->
- <skip />
- <!-- no translation found for accessibility_gesture_3finger_prompt_text (77745752309056152) -->
- <skip />
+ <string name="accessibility_button_prompt_text" msgid="6105393217162198616">"Изберете функција"</string>
+ <string name="accessibility_gesture_prompt_text" msgid="6452246951969541792">"Изберете функција"</string>
+ <string name="accessibility_gesture_3finger_prompt_text" msgid="77745752309056152">"Изберете функција"</string>
<string name="accessibility_button_instructional_text" msgid="6831154884557881996">"Функцијата ќе се отвори следниот пат кога ќе го допрете копчето за пристапност"</string>
<string name="accessibility_gesture_instructional_text" msgid="4133877896011098550">"Функцијата ќе се отвори следниот пат кога ќе ја користите кратенкава. Повлечете нагоре со 2 прста од долниот дел на екранот и брзо отпуштете."</string>
<string name="accessibility_gesture_3finger_instructional_text" msgid="1124458279366968154">"Функцијата ќе се отвори следниот пат кога ќе ја користите кратенкава. Повлечете нагоре со 3 прста од долниот дел на екранот и брзо отпуштете."</string>
@@ -1890,8 +1886,7 @@
<string name="restr_pin_error_too_short" msgid="1547007808237941065">"PIN кодот е премногу краток. Мора да има најмалку 4 цифри."</string>
<string name="restr_pin_try_later" msgid="5897719962541636727">"Обиди се повторно подоцна"</string>
<string name="immersive_cling_title" msgid="2307034298721541791">"Се прикажува на цел екран"</string>
- <!-- no translation found for immersive_cling_description (2896205051090870978) -->
- <skip />
+ <string name="immersive_cling_description" msgid="2896205051090870978">"За да излезете, повлечете надолу од горниот дел на екранот"</string>
<string name="immersive_cling_positive" msgid="7047498036346489883">"Сфатив"</string>
<string name="display_rotation_camera_compat_toast_after_rotation" msgid="7600891546249829854">"Ротирајте за подобар приказ"</string>
<string name="display_rotation_camera_compat_toast_in_multi_window" msgid="2473122980393502775">"За подобар приказ, отворете ја апликацијата <xliff:g id="NAME">%s</xliff:g> на цел екран"</string>
@@ -2439,26 +2434,17 @@
<string name="face_dangling_notification_msg" msgid="746235263598985384">"Вашиот модел на лик веќе не може да се препознае. Поставете „Отклучување со лик“ повторно."</string>
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Поставете"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Не сега"</string>
- <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Аларм за <xliff:g id="USER_NAME">%s</xliff:g>"</string>
+ <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Аларм за: <xliff:g id="USER_NAME">%s</xliff:g>"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Сменете го корисникот"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Исклучи звук"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Допрете за да го исклучите звукот"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Прелистувач"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Контакти"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Е-пошта"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Музика"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Календар"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Калкулатор"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карти"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Апликации"</string>
</resources>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index f9a74e79750c..e1cff81a1479 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"പങ്കിടുക"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"നിരസിക്കുക"</string>
<string name="select_input_method" msgid="3971267998568587025">"ഇൻപുട്ട് രീതി തിരഞ്ഞെടുക്കുക"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ഭാഷാ ക്രമീകരണം"</string>
<string name="show_ime" msgid="6406112007347443383">"ഫിസിക്കൽ കീബോർഡ് സജീവമായിരിക്കുമ്പോൾ സ്ക്രീനിൽ നിലനിർത്തുക"</string>
<string name="hardware" msgid="3611039921284836033">"ഓൺ-സ്ക്രീൻ കീബോർഡ് ഉപയോഗിക്കൂ"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> കോൺഫിഗർ ചെയ്യുക"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"ഉപയോക്താവിനെ മാറുക"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"മ്യൂട്ടുചെയ്യുക"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"ശബ്ദം മ്യൂട്ട് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"ബ്രൗസർ"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"കോൺടാക്റ്റുകൾ"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"ഇമെയിൽ"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"സംഗീതം"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"കലണ്ടർ"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"കാൽക്കുലേറ്റർ"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"മാപ്പുകൾ"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ആപ്പുകൾ"</string>
</resources>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index dc92f63c30d4..90aee05ef722 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -312,7 +312,7 @@
<string name="foreground_service_tap_for_details" msgid="9078123626015586751">"Батарей, дата ашиглалтын талаар дэлгэрэнгүйг харахын тулд товшино уу"</string>
<string name="foreground_service_multiple_separator" msgid="5002287361849863168">"<xliff:g id="LEFT_SIDE">%1$s</xliff:g>, <xliff:g id="RIGHT_SIDE">%2$s</xliff:g>"</string>
<string name="safeMode" msgid="8974401416068943888">"Аюулгүй горим"</string>
- <string name="android_system_label" msgid="5974767339591067210">"Андройд систем"</string>
+ <string name="android_system_label" msgid="5974767339591067210">"Android систем"</string>
<string name="user_owner_label" msgid="8628726904184471211">"Хувийн профайл руу сэлгэх"</string>
<string name="managed_profile_label" msgid="7316778766973512382">"Ажлын профайл руу сэлгэх"</string>
<string name="user_owner_app_label" msgid="1553595155465750298">"Хувийн <xliff:g id="APP_NAME">%1$s</xliff:g> руу сэлгэх"</string>
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ХУВААЛЦАХ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ТАТГАЛЗАХ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Оруулах аргыг сонгоно уу"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Хэлний тохиргоо"</string>
<string name="show_ime" msgid="6406112007347443383">"Биет гар идэвхтэй үед үүнийг дэлгэцэд харуулна уу"</string>
<string name="hardware" msgid="3611039921284836033">"Дэлгэц дээрх гарыг ашиглах"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g>-г тохируулна уу"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Хэрэглэгч сэлгэх"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Дууг хаах"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Дууг хаахын тулд товшино уу"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Хөтөч"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Харилцагчид"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Имэйл"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Хөгжим"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Календарь"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Тооны машин"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Газрын зураг"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Аппликэйшн"</string>
</resources>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 3874200418c6..9f88b1c9ed77 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"शेअर करा"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"नकार द्या"</string>
<string name="select_input_method" msgid="3971267998568587025">"इनपुट पद्धत निवडा"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"भाषा सेटिंग्ज"</string>
<string name="show_ime" msgid="6406112007347443383">"भौतिक कीबोर्ड सक्रिय असताना त्यास स्क्रीनवर ठेवा"</string>
<string name="hardware" msgid="3611039921284836033">"ऑन-स्क्रीन कीबोर्ड वापरा"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> कॉन्फिगर करा"</string>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index cc866b9049b0..85a984da0a78 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"KONGSI"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"TOLAK"</string>
<string name="select_input_method" msgid="3971267998568587025">"Pilih kaedah input"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Tetapan Bahasa"</string>
<string name="show_ime" msgid="6406112007347443383">"Pastikannya pada skrin, semasa papan kekunci fizikal aktif"</string>
<string name="hardware" msgid="3611039921284836033">"Guna papan kekunci pada skrin"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfigurasikan <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index fca79cb9ea27..2ed315c79c37 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"မျှဝေပါ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ငြင်းပယ်ပါ"</string>
<string name="select_input_method" msgid="3971267998568587025">"ထည့်သွင်းရေး နည်းကို ရွေးရန်"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ဘာသာစကား ဆက်တင်များ"</string>
<string name="show_ime" msgid="6406112007347443383">"စက်၏ကီးဘုတ် ဖွင့်ထားစဉ်တွင် ၎င်းကို ဖန်သားပြင်ပေါ်တွင် ဆက်ထားပါ"</string>
<string name="hardware" msgid="3611039921284836033">"မျက်နှာပြင် လက်ကွက် သုံးခြင်း"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> ကို စီစဉ်သတ်မှတ်ရန်"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"အသုံးပြုသူ ပြောင်းရန်"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"အသံပိတ်ရန်"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"အသံပိတ်ရန် တို့ပါ"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"ဘရောင်ဇာ"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"အဆက်အသွယ်များ"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"အီးမေးလ်"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS စာတိုစနစ်"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"တေးဂီတ"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"ပြက္ခဒိန်"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"ဂဏန်းတွက်စက်"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"အပလီကေးရှင်းများ"</string>
</resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 03db9c5ac21f..7918aa7571b4 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"DEL"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"AVSLÅ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Velg inndatametode"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Språkinnstillinger"</string>
<string name="show_ime" msgid="6406112007347443383">"Ha den på skjermen mens det fysiske tastaturet er aktivt"</string>
<string name="hardware" msgid="3611039921284836033">"Bruk skjermtastaturet"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfigurer <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Bytt bruker"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Kutt lyden"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Trykk for å kutte lyden"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Nettleser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontakter"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-post"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musikk"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalender"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apper"</string>
</resources>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index 6c58d16cd77c..340358d20fdd 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"सेयर गर्नुहोस्"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"अस्वीकार गर्नुहोस्"</string>
<string name="select_input_method" msgid="3971267998568587025">"निवेश विधि छान्नुहोस्"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"भाषासम्बन्धी सेटिङ"</string>
<string name="show_ime" msgid="6406112007347443383">"फिजिकल किबोर्ड सक्रिय हुँदा यसलाई स्क्रिनमा राख्नुहोस्"</string>
<string name="hardware" msgid="3611039921284836033">"अनस्क्रिन किबोर्ड प्रयोग गर्नुहोस्"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> कन्फिगर गर्नुहोस्"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"प्रयोगकर्ता बदल्नुहोस्"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"म्युट गर्नुहोस्"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"साउन्ड म्युट गर्न ट्याप गर्नुहोस्"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"ब्राउजर"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"कन्ट्याक्टहरू"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"इमेल"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"सङ्गीत"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"पात्रो"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"क्याल्कुलेटर"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"नक्सा"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"एपहरू"</string>
</resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 5fd6d42268a2..45f00cdf0089 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"DELEN"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"WEIGEREN"</string>
<string name="select_input_method" msgid="3971267998568587025">"Invoermethode selecteren"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Taalinstellingen"</string>
<string name="show_ime" msgid="6406112007347443383">"Toon op het scherm terwijl het fysieke toetsenbord actief is"</string>
<string name="hardware" msgid="3611039921284836033">"Schermtoetsenbord gebruiken"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> instellen"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Gebruiker wijzigen"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Geluid uitzetten"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Tik om het geluid uit te zetten"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Browser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contacten"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-mail"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"Sms"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Muziek"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Agenda"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Rekenmachine"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Kaarten"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apps"</string>
</resources>
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index 883ef1f58559..97cd1dab82dd 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ସେୟାର୍‌ କରନ୍ତୁ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ଅଗ୍ରାହ୍ୟ କରନ୍ତୁ"</string>
<string name="select_input_method" msgid="3971267998568587025">"ଇନପୁଟ୍ ପଦ୍ଧତି ବାଛନ୍ତୁ"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ଭାଷା ସେଟିଂସ"</string>
<string name="show_ime" msgid="6406112007347443383">"ଫିଜିକାଲ୍‌ କୀବୋର୍ଡ ସକ୍ରିୟ ଥିବାବେଳେ ଏହାକୁ ସ୍କ୍ରିନ୍‌ ଉପରେ ରଖନ୍ତୁ"</string>
<string name="hardware" msgid="3611039921284836033">"ଅନ-ସ୍କ୍ରିନ କୀବୋର୍ଡ ବ୍ୟବହାର କର"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g>କୁ କନଫିଗର କରନ୍ତୁ"</string>
@@ -2434,25 +2435,16 @@
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"ସେଟ ଅପ କରନ୍ତୁ"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ବର୍ତ୍ତମାନ ନୁହେଁ"</string>
<string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"<xliff:g id="USER_NAME">%s</xliff:g>ଙ୍କ ପାଇଁ ଆଲାରାମ"</string>
- <string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"ୟୁଜରଙ୍କୁ ସ୍ୱିଚ କରନ୍ତୁ"</string>
+ <string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"ୟୁଜରଙ୍କୁ ସୁଇଚ କରନ୍ତୁ"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"ମ୍ୟୁଟ କରନ୍ତୁ"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"ସାଉଣ୍ଡ ମ୍ୟୁଟ କରିବାକୁ ଟାପ କରନ୍ତୁ"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"ବ୍ରାଉଜର"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contacts"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"ଇମେଲ"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"ମ୍ୟୁଜିକ"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"କାଲକୁଲେଟର"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ଆପ୍ଲିକେସନଗୁଡ଼ିକ"</string>
</resources>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index fda4943bed41..5cd397e16974 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ਸਾਂਝਾ ਕਰੋ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ਅਸਵੀਕਾਰ ਕਰੋ"</string>
<string name="select_input_method" msgid="3971267998568587025">"ਇਨਪੁਟ ਵਿਧੀ ਚੁਣੋ"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"ਭਾਸ਼ਾ ਸੈਟਿੰਗਾਂ"</string>
<string name="show_ime" msgid="6406112007347443383">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਸਰਗਰਮ ਹੋਣ ਦੌਰਾਨ ਇਸ ਨੂੰ ਸਕ੍ਰੀਨ \'ਤੇ ਬਣਾਈ ਰੱਖੋ"</string>
<string name="hardware" msgid="3611039921284836033">"ਆਨ-ਸਕ੍ਰੀਨ ਕੀ-ਬੋਰਡ ਨੂੰ ਵਰਤੋ"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> ਦਾ ਸੰਰੂਪਣ ਕਰੋ"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"ਵਰਤੋਂਕਾਰ ਬਦਲੋ"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"ਮਿਊਟ ਕਰੋ"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"ਧੁਨੀ ਮਿਊਟ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"ਬ੍ਰਾਊਜ਼ਰ"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contacts"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Email"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Music"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ਐਪਲੀਕੇਸ਼ਨਾਂ"</string>
</resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index bfaf21ceca07..474eb01b7a9b 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -1430,6 +1430,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"UDOSTĘPNIJ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ODRZUĆ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Wybierz metodę wprowadzania"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Ustawienia języka"</string>
<string name="show_ime" msgid="6406112007347443383">"Pozostaw na ekranie, gdy aktywna jest klawiatura fizyczna"</string>
<string name="hardware" msgid="3611039921284836033">"Używaj klawiatury ekranowej"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Skonfiguruj urządzenie <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index a6c07ef21064..0b9cbf3a1601 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"COMPARTILHAR"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"RECUSAR"</string>
<string name="select_input_method" msgid="3971267998568587025">"Selecione o método de entrada"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Configurações de idioma"</string>
<string name="show_ime" msgid="6406112007347443383">"Mantém o teclado virtual na tela enquanto o teclado físico está ativo"</string>
<string name="hardware" msgid="3611039921284836033">"Usar teclado na tela"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configure o dispositivo <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2438,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Trocar usuário"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Desativar som"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Toque para silenciar"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Navegador"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contatos"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-mail"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Música"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Agenda"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculadora"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapas"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apps"</string>
</resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 6c8840862988..94f446ac1733 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"PARTILHAR"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"RECUSAR"</string>
<string name="select_input_method" msgid="3971267998568587025">"Escolher o método de entrada"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Definições de idioma"</string>
<string name="show_ime" msgid="6406112007347443383">"Mantê-lo no ecrã enquanto o teclado físico estiver ativo"</string>
<string name="hardware" msgid="3611039921284836033">"Usar o teclado no ecrã"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configure o dispositivo <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index a6c07ef21064..0b9cbf3a1601 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"COMPARTILHAR"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"RECUSAR"</string>
<string name="select_input_method" msgid="3971267998568587025">"Selecione o método de entrada"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Configurações de idioma"</string>
<string name="show_ime" msgid="6406112007347443383">"Mantém o teclado virtual na tela enquanto o teclado físico está ativo"</string>
<string name="hardware" msgid="3611039921284836033">"Usar teclado na tela"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configure o dispositivo <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2438,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Trocar usuário"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Desativar som"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Toque para silenciar"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Navegador"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Contatos"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-mail"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Música"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Agenda"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculadora"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapas"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Apps"</string>
</resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 4a9471590c5a..e7f490277fa8 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"TRIMITE"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"REFUZ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Alege metoda de introducere de text"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Setări de limbă"</string>
<string name="show_ime" msgid="6406112007347443383">"Se păstrează pe ecran cât timp este activată tastatura fizică"</string>
<string name="hardware" msgid="3611039921284836033">"Folosește tastatura pe ecran"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configurează <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2438,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Schimbă utilizatorul"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Dezactivează sunetul"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Atinge pentru a dezactiva sunetul"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Browser"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Agendă"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-mail"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Muzică"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Calendar"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Calculator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplicații"</string>
</resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 96da7325ec5c..370d015d8b7a 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -1430,6 +1430,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ПРЕДОСТАВИТЬ ДОСТУП"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ОТКЛОНИТЬ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Выберите способ ввода"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Языковые настройки"</string>
<string name="show_ime" msgid="6406112007347443383">"Не скрывать экранную клавиатуру, когда включена физическая"</string>
<string name="hardware" msgid="3611039921284836033">"Использовать экранную клавиатуру"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Настройте устройство \"<xliff:g id="DEVICE_NAME">%s</xliff:g>\""</string>
@@ -2439,22 +2440,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Сменить пользователя"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Отключить звук"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Нажмите, чтобы отключить звук."</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Браузер"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Контакты"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Электронная почта"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Музыка"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Календарь"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Калькулятор"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карты"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Приложения"</string>
</resources>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index 6549a7ef8989..f3f5a7007b58 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"බෙදා ගන්න"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ප්‍රතික්ෂේප කරන්න"</string>
<string name="select_input_method" msgid="3971267998568587025">"ආදාන ක්‍රමයක් තෝරන්න"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"භාෂා සැකසීම්"</string>
<string name="show_ime" msgid="6406112007347443383">"භෞතික යතුරු පුවරුව සක්‍රිය අතරතුර එය තිරය මත තබා ගන්න"</string>
<string name="hardware" msgid="3611039921284836033">"තිරය මත යතුරු පුවරුව භාවිතය"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> වින්‍යාස කරන්න"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"පරිශීලක මාරු කරන්න"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"නිහඬ කරන්න"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"ශබ්දය නිශ්ශබ්ද කිරීමට තට්ටු කරන්න"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"බ්‍රවුසරය"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"සම්බන්ධතා"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"ඉ-තැපෑල"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"සංගීතය"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"දින දර්ශනය"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"ගණක යන්ත්‍රය"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"සිතියම්"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"යෙදුම්"</string>
</resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 27500c4526d0..cd89ebbcd6da 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -1430,6 +1430,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ZDIEĽAŤ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ODMIETNUŤ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Zvoliť metódu vstupu"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Nastavenia jazyka"</string>
<string name="show_ime" msgid="6406112007347443383">"Ponechať na obrazovke, keď je aktívna fyzická klávesnica"</string>
<string name="hardware" msgid="3611039921284836033">"Použiť klávesnicu na obrazovke"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Nakonfigurujte <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2439,22 +2440,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Prepnúť používateľa"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Ignorovať"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Klepnutím vypnite zvuk"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Prehliadač"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontakty"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E‑mail"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Hudba"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalendár"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulačka"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Mapy"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikácie"</string>
</resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 08043ecbbbca..568718dd92cd 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -1430,6 +1430,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"DELJENJE"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"NE SPREJMEM"</string>
<string name="select_input_method" msgid="3971267998568587025">"Izberite način vnosa"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Jezikovne nastavitve"</string>
<string name="show_ime" msgid="6406112007347443383">"Ohrani na zaslonu, dokler je aktivna fizična tipkovnica"</string>
<string name="hardware" msgid="3611039921284836033">"Uporaba zaslonske tipkovnice"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfiguriranje naprave <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index 9adae6714fbc..5124c27311ec 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -1428,6 +1428,8 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"SHPËRNDAJ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"REFUZO"</string>
<string name="select_input_method" msgid="3971267998568587025">"Zgjidh metodën e hyrjes"</string>
+ <!-- no translation found for input_method_language_settings (8069089418056819437) -->
+ <skip />
<string name="show_ime" msgid="6406112007347443383">"Mbaje në ekran ndërsa tastiera fizike është aktive"</string>
<string name="hardware" msgid="3611039921284836033">"Përdor tastierën në ekran"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfiguro <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Ndërro përdoruesin"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Hiqi zërin"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Trokit për t\'i hequr zërin"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Shfletuesi"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontaktet"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Email-i"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS-të"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Muzika"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalendari"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Makina llogaritëse"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Aplikacionet"</string>
</resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 6cea89f898d2..a88045cd8637 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -1429,6 +1429,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ДЕЛИ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ОДБИЈ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Избор метода уноса"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Подешавања језика"</string>
<string name="show_ime" msgid="6406112007347443383">"Задржава се на екрану док је физичка тастатура активна"</string>
<string name="hardware" msgid="3611039921284836033">"Користи тастатуру на екрану"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Конфигуришите уређај <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2438,22 +2439,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Промени корисника"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Искључи звук"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Додирните да бисте искључили звук"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Прегледач"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Контакти"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Имејл"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Музика"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Календар"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Калкулатор"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Мапе"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Апликације"</string>
</resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 53f1408b6115..8a8c3f371e93 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"DELA"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"AVVISA"</string>
<string name="select_input_method" msgid="3971267998568587025">"Välj inmatningsmetod"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Språkinställningar"</string>
<string name="show_ime" msgid="6406112007347443383">"Ha kvar det på skärmen när det fysiska tangentbordet används"</string>
<string name="hardware" msgid="3611039921284836033">"Använd skärmtangentbord"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Konfigurera <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Byt användare"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Ljud av"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Tryck för att stänga av ljudet"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Webbläsare"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontakter"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-post"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"Sms"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musik"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalender"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkylator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Appar"</string>
</resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index c096d4b74135..06a4b20db003 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"SHIRIKI"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"KATAA"</string>
<string name="select_input_method" msgid="3971267998568587025">"Chagua njia ya ingizo"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Mipangilio ya Lugha"</string>
<string name="show_ime" msgid="6406112007347443383">"Ionyeshe kwenye skrini wakati kibodi halisi inatumika"</string>
<string name="hardware" msgid="3611039921284836033">"Tumia kibodi ya skrini"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Wekea mipangilio <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2433,26 +2434,17 @@
<string name="face_dangling_notification_msg" msgid="746235263598985384">"Muundo wa uso wako hautambuliki tena. Weka tena mipangilio ya Kufungua kwa Uso."</string>
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Weka mipangilio"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Si sasa"</string>
- <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"King\'ora cha <xliff:g id="USER_NAME">%s</xliff:g>"</string>
+ <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Kengele ya <xliff:g id="USER_NAME">%s</xliff:g>"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Badilisha mtumiaji"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Zima sauti"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Gusa ili uzime sauti"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Kivinjari"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Anwani"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Barua pepe"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Muziki"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Kalenda"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kikokotoo"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Ramani"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Programu"</string>
</resources>
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index 429862b65a82..4f2dee270655 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"பகிர்"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"வேண்டாம்"</string>
<string name="select_input_method" msgid="3971267998568587025">"உள்ளீட்டு முறையைத் தேர்வுசெய்க"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"மொழி அமைப்புகள்"</string>
<string name="show_ime" msgid="6406112007347443383">"கைமுறை கீபோர்டு இயக்கத்தில் இருக்கும் போது IMEஐ திரையில் வைத்திரு"</string>
<string name="hardware" msgid="3611039921284836033">"ஸ்கிரீன் கீபோர்டை உபயோகி"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> சாதனத்தை உள்ளமைத்தல்"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"பயனரை மாற்றுங்கள்"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"ஒலியடக்கு"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"ஒலியடக்க தட்டவும்"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"உலாவி"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"தொடர்புகள்"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"மின்னஞ்சல்"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"மெசேஜ்"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"இசை"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"கேலெண்டர்"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"கால்குலேட்டர்"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"ஆப்ஸ்"</string>
</resources>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 830c4f64e37f..5c1f8b8cebce 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"షేర్ చేయండి"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"తిరస్కరిస్తున్నాను"</string>
<string name="select_input_method" msgid="3971267998568587025">"ఇన్‌పుట్ పద్ధతిని ఎంచుకోండి"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"భాషా సెట్టింగ్‌లు"</string>
<string name="show_ime" msgid="6406112007347443383">"దీన్ని భౌతిక కీబోర్డ్ యాక్టివ్‌గా ఉన్నప్పుడు స్క్రీన్‌పై ఉంచుతుంది"</string>
<string name="hardware" msgid="3611039921284836033">"స్క్రీన్‌పై కీబోర్డ్ ఉపయోగించు"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g>‌ను కాన్ఫిగర్ చేయండి"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"యూజర్‌ను మార్చండి"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"మ్యూట్ చేయండి"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"సౌండ్‌ను మ్యూట్ చేయడానికి ట్యాప్ చేయండి"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"బ్రౌజర్"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"కాంటాక్ట్‌లు"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"ఈమెయిల్"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"మ్యూజిక్"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"క్యాలెండర్"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"క్యాలిక్యులేటర్"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Maps"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"అప్లికేషన్‌లు"</string>
</resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index b4f39791fb0d..9096a03e208c 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"แชร์"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ปฏิเสธ"</string>
<string name="select_input_method" msgid="3971267998568587025">"เลือกวิธีการป้อนข้อมูล"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"การตั้งค่าภาษา"</string>
<string name="show_ime" msgid="6406112007347443383">"เปิดทิ้งไว้บนหน้าจอในระหว่างใช้งานแป้นพิมพ์จริง"</string>
<string name="hardware" msgid="3611039921284836033">"ใช้แป้นพิมพ์บนหน้าจอ"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"กำหนดค่า <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2433,7 +2434,7 @@
<string name="face_dangling_notification_msg" msgid="746235263598985384">"ระบบไม่จดจำรูปแบบใบหน้าของคุณอีกต่อไป ตั้งค่าการปลดล็อกด้วยใบหน้าอีกครั้ง"</string>
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"ตั้งค่า"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ไว้ทีหลัง"</string>
- <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"นาฬิกาปลุกสำหรับ <xliff:g id="USER_NAME">%s</xliff:g>"</string>
+ <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"นาฬิกาปลุกสำหรับ \"<xliff:g id="USER_NAME">%s</xliff:g>\""</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"สลับผู้ใช้"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"ปิดเสียง"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"แตะเพื่อปิดเสียง"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index bebc2b45eb08..9febadbc081a 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"IBAHAGI"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"TANGGIHAN"</string>
<string name="select_input_method" msgid="3971267998568587025">"Pumili ng pamamaraan ng pag-input"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Mga Setting ng Wika"</string>
<string name="show_ime" msgid="6406112007347443383">"Panatilihin ito sa screen habang aktibo ang pisikal na keyboard"</string>
<string name="hardware" msgid="3611039921284836033">"Gumamit ng on-screen keyboard"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"I-configure ang <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2433,7 +2434,7 @@
<string name="face_dangling_notification_msg" msgid="746235263598985384">"Hindi na makilala ang iyong face model. I-set up ulit ang Pag-unlock Gamit ang Mukha."</string>
<string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"I-set up"</string>
<string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Huwag muna"</string>
- <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Alarm para kay <xliff:g id="USER_NAME">%s</xliff:g>"</string>
+ <string name="bg_user_sound_notification_title_alarm" msgid="5251678483393143527">"Alarm para kay/sa <xliff:g id="USER_NAME">%s</xliff:g>"</string>
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Magpalit ng user"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"I-mute"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"I-tap para i-mute ang tunog"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 72404af417fb..9e73054f730e 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"PAYLAŞ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"REDDET"</string>
<string name="select_input_method" msgid="3971267998568587025">"Giriş yöntemini seçin"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Dil Ayarları"</string>
<string name="show_ime" msgid="6406112007347443383">"Fiziksel klavye etkin durumdayken ekranda tut"</string>
<string name="hardware" msgid="3611039921284836033">"Ekran klavyesi kullanın"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> ayarlarını yapılandır"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Kullanıcı değiştir"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Sesi kapat"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Sesi kapat düğmesine dokunun"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Tarayıcı"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kişiler"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"E-posta"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Müzik"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Takvim"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Hesap Makinesi"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Haritalar"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Uygulamalar"</string>
</resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 246cce925e9a..e7f9ddf18df2 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -1430,6 +1430,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"ПОДІЛИТИСЯ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"ВІДХИЛИТИ"</string>
<string name="select_input_method" msgid="3971267998568587025">"Вибрати метод введення"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Налаштування мови"</string>
<string name="show_ime" msgid="6406112007347443383">"Утримуйте на екрані, коли активна фізична клавіатура"</string>
<string name="hardware" msgid="3611039921284836033">"Екранна клавіатура"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Налаштуйте клавіатуру \"<xliff:g id="DEVICE_NAME">%s</xliff:g>\""</string>
@@ -2439,22 +2440,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Змінити користувача"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Вимкнути звук"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Натисніть, щоб вимкнути звук"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Вебпереглядач"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Контакти"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Електронна пошта"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Музика"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Календар"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Калькулятор"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Карти"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Додатки"</string>
</resources>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index e613dd72d56b..26f8f63a8602 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"اشتراک کریں"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"مسترد کریں"</string>
<string name="select_input_method" msgid="3971267998568587025">"ان پٹ کا طریقہ منتخب کریں"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"زبان کی ترتیبات"</string>
<string name="show_ime" msgid="6406112007347443383">"‏جب فزیکل کی بورڈ فعال ہو تو IME کو اسکرین پر رکھیں"</string>
<string name="hardware" msgid="3611039921284836033">"آن اسکرین کی بورڈ استعمال کریں"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"<xliff:g id="DEVICE_NAME">%s</xliff:g> کنفیگر کریں"</string>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index 994950cec574..1670050f3bcb 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"BAHAM KO‘RISH"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"RAD ETISH"</string>
<string name="select_input_method" msgid="3971267998568587025">"Matn kiritish usulini tanlang"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Til sozlamalari"</string>
<string name="show_ime" msgid="6406112007347443383">"Tashqi klaviatura ulanganida ekranda chiqib turadi"</string>
<string name="hardware" msgid="3611039921284836033">"Ekrandagi klaviatura"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Sozlang: <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Foydalanuvchini almashtirish"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Ovozsiz qilish"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Tovushsiz qilish uchun bosing"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Brauzer"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Kontaktlar"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Email"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Musiqa"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Taqvim"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Kalkulyator"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Xaritalar"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Ilovalar"</string>
</resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index f825f7b501ee..6e976a95af6f 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"CHIA SẺ"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"TỪ CHỐI"</string>
<string name="select_input_method" msgid="3971267998568587025">"Chọn phương thức nhập"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Cài đặt ngôn ngữ"</string>
<string name="show_ime" msgid="6406112007347443383">"Hiện bàn phím ảo trên màn hình trong khi bàn phím vật lý đang hoạt động"</string>
<string name="hardware" msgid="3611039921284836033">"Sử dụng bàn phím ảo"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Định cấu hình <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Chuyển đổi người dùng"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Tắt tiếng"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Nhấn để tắt tiếng"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Trình duyệt"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Danh bạ"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"Email"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Âm nhạc"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Lịch"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Máy tính"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Bản đồ"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Ứng dụng"</string>
</resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 2d1873dc8170..1cc0bfefc44e 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"分享"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"拒绝"</string>
<string name="select_input_method" msgid="3971267998568587025">"选择输入法"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"语言设置"</string>
<string name="show_ime" msgid="6406112007347443383">"连接到实体键盘时,在屏幕上显示一个虚拟键盘"</string>
<string name="hardware" msgid="3611039921284836033">"使用屏幕键盘"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"配置“<xliff:g id="DEVICE_NAME">%s</xliff:g>”"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"切换用户"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"静音"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"点按即可设为静音"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"浏览器"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"通讯录"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"电子邮件"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"短信"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"音乐"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"日历"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"计算器"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"地图"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"应用"</string>
</resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index ca88600b2c6b..b0c4cfbac68b 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"分享"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"拒絕"</string>
<string name="select_input_method" msgid="3971267998568587025">"選擇輸入法"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"語言設定"</string>
<string name="show_ime" msgid="6406112007347443383">"在實體鍵盤處於連接狀態時保持顯示"</string>
<string name="hardware" msgid="3611039921284836033">"使用屏幕鍵盤"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"設定「<xliff:g id="DEVICE_NAME">%s</xliff:g>」"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"切換使用者"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"靜音"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"輕按即可靜音"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"瀏覽器"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"通訊錄"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"電郵"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"短訊"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"音樂"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"日曆"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"計算機"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"地圖"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"應用程式"</string>
</resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index b22ad0ad62f9..731905f57cd8 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"分享"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"拒絕"</string>
<string name="select_input_method" msgid="3971267998568587025">"選擇輸入法"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"語言設定"</string>
<string name="show_ime" msgid="6406112007347443383">"使用實體鍵盤時仍繼續顯示螢幕小鍵盤"</string>
<string name="hardware" msgid="3611039921284836033">"使用螢幕小鍵盤"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"設定「<xliff:g id="DEVICE_NAME">%s</xliff:g>」"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"切換使用者"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"靜音"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"輕觸即可設為靜音"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"瀏覽器"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"聯絡人"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"電子郵件"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"簡訊"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"音樂"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"日曆"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"計算機"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"地圖"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"應用程式"</string>
</resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index f9aa9253776a..2ce294795843 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -1428,6 +1428,7 @@
<string name="share_remote_bugreport_action" msgid="7630880678785123682">"YABELANA"</string>
<string name="decline_remote_bugreport_action" msgid="4040894777519784346">"YENQABA"</string>
<string name="select_input_method" msgid="3971267998568587025">"Khetha indlela yokufaka"</string>
+ <string name="input_method_language_settings" msgid="8069089418056819437">"Amasethingi Olimi"</string>
<string name="show_ime" msgid="6406112007347443383">"Yigcine kusikrini ngenkathi kusebenza ikhibhodi ephathekayo"</string>
<string name="hardware" msgid="3611039921284836033">"Sebenzisa ikhibhodi ekuskrini"</string>
<string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Lungisa i-<xliff:g id="DEVICE_NAME">%s</xliff:g>"</string>
@@ -2437,22 +2438,13 @@
<string name="bg_user_sound_notification_button_switch_user" msgid="3091969648572788946">"Shintsha umsebenzisi"</string>
<string name="bg_user_sound_notification_button_mute" msgid="4942158515665615243">"Thulisa"</string>
<string name="bg_user_sound_notification_message" msgid="8613881975316976673">"Thepha ukuze uthulise umsindo"</string>
- <!-- no translation found for keyboard_shortcut_group_applications_browser (6535007304687100909) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_contacts (2750702518068326356) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_email (4229037666415353683) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_sms (3523799286376321137) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_music (2051507523525651067) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calendar (3571770335653387606) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_calculator (6753209559716091507) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications_maps (7950000659522589471) -->
- <skip />
- <!-- no translation found for keyboard_shortcut_group_applications (3010389163951364798) -->
- <skip />
+ <string name="keyboard_shortcut_group_applications_browser" msgid="6535007304687100909">"Ibhrawuza"</string>
+ <string name="keyboard_shortcut_group_applications_contacts" msgid="2750702518068326356">"Oxhumana nabo"</string>
+ <string name="keyboard_shortcut_group_applications_email" msgid="4229037666415353683">"I-imeyili"</string>
+ <string name="keyboard_shortcut_group_applications_sms" msgid="3523799286376321137">"I-SMS"</string>
+ <string name="keyboard_shortcut_group_applications_music" msgid="2051507523525651067">"Umculo"</string>
+ <string name="keyboard_shortcut_group_applications_calendar" msgid="3571770335653387606">"Ikhalenda"</string>
+ <string name="keyboard_shortcut_group_applications_calculator" msgid="6753209559716091507">"Isibali"</string>
+ <string name="keyboard_shortcut_group_applications_maps" msgid="7950000659522589471">"Amamephu"</string>
+ <string name="keyboard_shortcut_group_applications" msgid="3010389163951364798">"Ama-application"</string>
</resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 236e7c5b7a62..8cb7646939ea 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -7069,6 +7069,9 @@
<!-- Whether desktop mode is supported on the current device -->
<bool name="config_isDesktopModeSupported">false</bool>
+ <!-- Maximum number of active tasks on a given Desktop Windowing session. Set to 0 for unlimited. -->
+ <integer name="config_maxDesktopWindowingActiveTasks">0</integer>
+
<!-- Frame rate compatibility value for Wallpaper
FRAME_RATE_COMPATIBILITY_MIN (102) is used by default for lower power consumption -->
<integer name="config_wallpaperFrameRateCompatibility">102</integer>
@@ -7093,4 +7096,8 @@
<!-- Whether to enable usb state update via udc sysfs. -->
<bool name="config_enableUdcSysfsUsbStateUpdate">false</bool>
+
+ <!-- Whether to enable the private space search illustration and search tile content in "Hide Private Space" settings page.
+ OEM/Partner can explicitly opt to hide the illustration and search tile content. -->
+ <bool name="config_enableSearchTileHideIllustrationInPrivateSpace">true</bool>
</resources>
diff --git a/core/res/res/values/config_device_idle.xml b/core/res/res/values/config_device_idle.xml
index 7a707c0a6cdc..cc7b891b9377 100644
--- a/core/res/res/values/config_device_idle.xml
+++ b/core/res/res/values/config_device_idle.xml
@@ -28,7 +28,7 @@
<integer name="device_idle_flex_time_short_ms">60000</integer>
<!-- Default for DeviceIdleController.Constants.LIGHT_IDLE_AFTER_INACTIVE_TIMEOUT -->
- <integer name="device_idle_light_after_inactive_to_ms">60000</integer>
+ <integer name="device_idle_light_after_inactive_to_ms">240000</integer>
<!-- Default for DeviceIdleController.Constants.LIGHT_IDLE_TIMEOUT -->
<integer name="device_idle_light_idle_to_ms">300000</integer>
@@ -67,10 +67,10 @@
<integer name="device_idle_min_deep_maintenance_time_ms">30000</integer>
<!-- Default for DeviceIdleController.Constants.INACTIVE_TIMEOUT -->
- <integer name="device_idle_inactive_to_ms">60000</integer>
+ <integer name="device_idle_inactive_to_ms">15000</integer>
<!-- Default for DeviceIdleController.Constants.SENSING_TIMEOUT -->
- <integer name="device_idle_sensing_to_ms">30000</integer>
+ <integer name="device_idle_sensing_to_ms">15000</integer>
<!-- Default for DeviceIdleController.Constants.LOCATING_TIMEOUT -->
<integer name="device_idle_locating_to_ms">15000</integer>
@@ -79,13 +79,13 @@
<item name="device_idle_location_accuracy" format="float" type="integer">20.0</item>
<!-- Default for DeviceIdleController.Constants.MOTION_INACTIVE_TIMEOUT -->
- <integer name="device_idle_motion_inactive_to_ms">600000</integer>
+ <integer name="device_idle_motion_inactive_to_ms">30000</integer>
<!-- Default for DeviceIdleController.Constants.MOTION_INACTIVE_TIMEOUT_FLEX -->
<integer name="device_idle_motion_inactive_to_flex_ms">60000</integer>
<!-- Default for DeviceIdleController.Constants.IDLE_AFTER_INACTIVE_TIMEOUT -->
- <integer name="device_idle_idle_after_inactive_to_ms">60000</integer>
+ <integer name="device_idle_idle_after_inactive_to_ms">15000</integer>
<!-- Default for DeviceIdleController.Constants.IDLE_PENDING_TIMEOUT -->
<integer name="device_idle_idle_pending_to_ms">300000</integer>
@@ -100,7 +100,7 @@
<integer name="device_idle_quick_doze_delay_to_ms">60000</integer>
<!-- Default for DeviceIdleController.Constants.IDLE_TIMEOUT -->
- <integer name="device_idle_idle_to_ms">900000</integer>
+ <integer name="device_idle_idle_to_ms">3600000</integer>
<!-- Default for DeviceIdleController.Constants.MAX_IDLE_TIMEOUT -->
<integer name="device_idle_max_idle_to_ms">21600000</integer>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 09688f2f7bec..4a425cbe009a 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -524,6 +524,7 @@
<java-symbol type="bool" name="config_notificationCloseButtonSupported"/>
<java-symbol type="bool" name="config_enableGaiaEducationInPrivateSpace"/>
<java-symbol type="bool" name="config_enableUdcSysfsUsbStateUpdate"/>
+ <java-symbol type="bool" name="config_enableSearchTileHideIllustrationInPrivateSpace"/>
<java-symbol type="color" name="tab_indicator_text_v4" />
@@ -5522,6 +5523,9 @@
<!-- Whether desktop mode is supported on the current device -->
<java-symbol type="bool" name="config_isDesktopModeSupported" />
+ <!-- Maximum number of active tasks on a given Desktop Windowing session. Set to 0 for unlimited. -->
+ <java-symbol type="integer" name="config_maxDesktopWindowingActiveTasks"/>
+
<!-- Frame rate compatibility value for Wallpaper -->
<java-symbol type="integer" name="config_wallpaperFrameRateCompatibility" />
diff --git a/core/tests/coretests/src/android/app/servertransaction/ClientTransactionListenerControllerTest.java b/core/tests/coretests/src/android/app/servertransaction/ClientTransactionListenerControllerTest.java
index f9609fcad8a1..31a4f16553a0 100644
--- a/core/tests/coretests/src/android/app/servertransaction/ClientTransactionListenerControllerTest.java
+++ b/core/tests/coretests/src/android/app/servertransaction/ClientTransactionListenerControllerTest.java
@@ -50,8 +50,8 @@ import android.view.DisplayInfo;
import android.window.ActivityWindowInfo;
import android.window.WindowTokenClient;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
import org.junit.Before;
import org.junit.Rule;
diff --git a/core/tests/coretests/src/android/view/InsetsControllerTest.java b/core/tests/coretests/src/android/view/InsetsControllerTest.java
index ae7f465baa87..7bc0d2f2fcd3 100644
--- a/core/tests/coretests/src/android/view/InsetsControllerTest.java
+++ b/core/tests/coretests/src/android/view/InsetsControllerTest.java
@@ -56,6 +56,7 @@ import static org.mockito.Mockito.verify;
import static java.util.concurrent.TimeUnit.SECONDS;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.content.Context;
import android.graphics.Insets;
import android.graphics.Point;
@@ -1095,9 +1096,10 @@ public class InsetsControllerTest {
}
@Override
- public void updateRequestedVisibleTypes(@InsetsType int requestedVisibleTypes) {
+ public void updateRequestedVisibleTypes(@InsetsType int requestedVisibleTypes,
+ @Nullable ImeTracker.Token statsToken) {
mRequestedVisibleTypes = requestedVisibleTypes;
- super.updateRequestedVisibleTypes(requestedVisibleTypes);
+ super.updateRequestedVisibleTypes(requestedVisibleTypes, statsToken);
}
public boolean isRequestedVisible(@InsetsType int types) {
diff --git a/core/tests/coretests/src/android/view/ViewGroupTest.java b/core/tests/coretests/src/android/view/ViewGroupTest.java
index bce3f3e8f2e1..ae3ad36b532c 100644
--- a/core/tests/coretests/src/android/view/ViewGroupTest.java
+++ b/core/tests/coretests/src/android/view/ViewGroupTest.java
@@ -19,6 +19,7 @@ package android.view;
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
@@ -29,11 +30,16 @@ import static org.mockito.Mockito.verify;
import android.content.Context;
import android.graphics.Region;
import android.platform.test.annotations.Presubmit;
+import android.view.autofill.AutofillId;
import androidx.test.filters.SmallTest;
import org.junit.Test;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
/**
* Test basic functions of ViewGroup.
@@ -182,6 +188,31 @@ public class ViewGroupTest {
assertRegionContainPoint(3 /* x */, r, false /* contain */); // Outside of bounds
}
+ @Test
+ public void testfindAutofillableViewsByTraversal() {
+ final Context context = getInstrumentation().getContext();
+ final TestView viewGroup = new TestView(context, 200 /* right */);
+
+ // viewA and viewC are autofillable. ViewB isn't.
+ final TestView viewA = spy(new AutofillableTestView(context, 100 /* right */));
+ final TestView viewB = spy(new NonAutofillableTestView(context, 200 /* right */));
+ final TestView viewC = spy(new AutofillableTestView(context, 300 /* right */));
+
+ viewGroup.addView(viewA);
+ viewGroup.addView(viewB);
+ viewGroup.addView(viewC);
+
+ List<View> autofillableViews = new ArrayList<>();
+ viewGroup.findAutofillableViewsByTraversal(autofillableViews);
+
+ verify(viewA).findAutofillableViewsByTraversal(autofillableViews);
+ verify(viewB).findAutofillableViewsByTraversal(autofillableViews);
+ verify(viewC).findAutofillableViewsByTraversal(autofillableViews);
+
+ assertEquals("Size of autofillable views", 2, autofillableViews.size());
+ assertTrue(autofillableViews.containsAll(Arrays.asList(viewA, viewC)));
+ }
+
private static void getUnobscuredTouchableRegion(Region outRegion, View view) {
outRegion.set(view.getLeft(), view.getTop(), view.getRight(), view.getBottom());
final ViewParent parent = view.getParent();
@@ -210,4 +241,29 @@ public class ViewGroupTest {
// We don't layout this view.
}
}
+
+ public static class AutofillableTestView extends TestView {
+ AutofillableTestView(Context context, int right) {
+ super(context, right);
+ setImportantForAutofill(IMPORTANT_FOR_AUTOFILL_YES);
+ // Need to set autofill id in such a way that the view is considered part of activity.
+ setAutofillId(new AutofillId(LAST_APP_AUTOFILL_ID + 5));
+ }
+
+ @Override
+ public @AutofillType int getAutofillType() {
+ return AUTOFILL_TYPE_TEXT;
+ }
+ }
+
+ public static class NonAutofillableTestView extends TestView {
+ NonAutofillableTestView(Context context, int right) {
+ super(context, right);
+ }
+
+ @Override
+ public @AutofillType int getAutofillType() {
+ return AUTOFILL_TYPE_NONE;
+ }
+ }
}
diff --git a/core/tests/coretests/src/android/widget/RemoteViewsSerializersTest.kt b/core/tests/coretests/src/android/widget/RemoteViewsSerializersTest.kt
new file mode 100644
index 000000000000..44d10d32606c
--- /dev/null
+++ b/core/tests/coretests/src/android/widget/RemoteViewsSerializersTest.kt
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package android.widget
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.graphics.Bitmap
+import android.graphics.BlendMode
+import android.graphics.Color
+import android.graphics.drawable.BitmapDrawable
+import android.graphics.drawable.Icon
+import android.util.proto.ProtoInputStream
+import android.util.proto.ProtoOutputStream
+import android.widget.RemoteViewsSerializers.createIconFromProto
+import android.widget.RemoteViewsSerializers.writeIconToProto
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.frameworks.coretests.R
+import com.google.common.truth.Truth.assertThat
+import java.io.ByteArrayOutputStream
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class RemoteViewsSerializersTest {
+ private val context = ApplicationProvider.getApplicationContext<Context>()
+
+ /**
+ * Based on android.graphics.drawable.IconTest#testParcel
+ */
+ @Test
+ fun testWriteIconToProto() {
+ val bitmap = (context.getDrawable(R.drawable.landscape) as BitmapDrawable).bitmap
+ val bitmapData = ByteArrayOutputStream().let {
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, it)
+ it.toByteArray()
+ }
+
+ for (icon in listOf(
+ Icon.createWithBitmap(bitmap),
+ Icon.createWithAdaptiveBitmap(bitmap),
+ Icon.createWithData(bitmapData, 0, bitmapData.size),
+ Icon.createWithResource(context, R.drawable.landscape),
+ Icon.createWithContentUri("content://com.example.myapp/my_icon"),
+ Icon.createWithAdaptiveBitmapContentUri("content://com.example.myapp/my_icon"),
+ )) {
+ icon.tintList = ColorStateList.valueOf(Color.RED)
+ icon.tintBlendMode = BlendMode.SRC_OVER
+ val bytes = ProtoOutputStream().let {
+ writeIconToProto(it, context.resources, icon)
+ it.bytes
+ }
+
+ val copy = ProtoInputStream(bytes).let {
+ createIconFromProto(it).apply(context.resources)
+ }
+ assertThat(copy.type).isEqualTo(icon.type)
+ assertThat(copy.tintBlendMode).isEqualTo(icon.tintBlendMode)
+ assertThat(equalColorStateLists(copy.tintList, icon.tintList)).isTrue()
+
+ when (icon.type) {
+ Icon.TYPE_DATA, Icon.TYPE_URI, Icon.TYPE_URI_ADAPTIVE_BITMAP,
+ Icon.TYPE_RESOURCE -> {
+ assertThat(copy.sameAs(icon)).isTrue()
+ }
+
+ Icon.TYPE_BITMAP, Icon.TYPE_ADAPTIVE_BITMAP -> {
+ assertThat(copy.bitmap.sameAs(icon.bitmap)).isTrue()
+ }
+ }
+ }
+ }
+}
+
+fun equalColorStateLists(a: ColorStateList?, b: ColorStateList?): Boolean {
+ if (a == null && b == null) return true
+ return a != null && b != null &&
+ a.colors.contentEquals(b.colors) &&
+ a.states.foldIndexed(true) { i, acc, it -> acc && it.contentEquals(b.states[i])}
+}
diff --git a/libs/WindowManager/Shell/res/values-af/strings.xml b/libs/WindowManager/Shell/res/values-af/strings.xml
index 6e8a679928f0..e476db050f01 100644
--- a/libs/WindowManager/Shell/res/values-af/strings.xml
+++ b/libs/WindowManager/Shell/res/values-af/strings.xml
@@ -84,10 +84,8 @@
<string name="notification_bubble_title" msgid="6082910224488253378">"Borrel"</string>
<string name="manage_bubbles_text" msgid="7730624269650594419">"Bestuur"</string>
<string name="accessibility_bubble_dismissed" msgid="8367471990421247357">"Borrel is toegemaak."</string>
- <!-- no translation found for bubble_shortcut_label (666269077944378311) -->
- <skip />
- <!-- no translation found for bubble_shortcut_long_label (6088437544312894043) -->
- <skip />
+ <string name="bubble_shortcut_label" msgid="666269077944378311">"Borrels"</string>
+ <string name="bubble_shortcut_long_label" msgid="6088437544312894043">"Wys borrels"</string>
<string name="restart_button_description" msgid="4564728020654658478">"Tik om hierdie app te herbegin vir ’n beter aansig"</string>
<string name="user_aspect_ratio_settings_button_hint" msgid="734835849600713016">"Verander hierdie app se aspekverhouding in Instellings"</string>
<string name="user_aspect_ratio_settings_button_description" msgid="4315566801697411684">"Verander aspekverhouding"</string>
@@ -118,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Sweef"</string>
<string name="select_text" msgid="5139083974039906583">"Kies"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Skermskoot"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Maak in blaaier oop"</string>
<string name="close_text" msgid="4986518933445178928">"Maak toe"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Maak kieslys toe"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Maak kieslys oop"</string>
diff --git a/libs/WindowManager/Shell/res/values-am/strings.xml b/libs/WindowManager/Shell/res/values-am/strings.xml
index ac7935d76bfd..33fea2bcdde5 100644
--- a/libs/WindowManager/Shell/res/values-am/strings.xml
+++ b/libs/WindowManager/Shell/res/values-am/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"ተንሳፋፊ"</string>
<string name="select_text" msgid="5139083974039906583">"ምረጥ"</string>
<string name="screenshot_text" msgid="1477704010087786671">"ቅጽበታዊ ገፅ ዕይታ"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"በአሳሽ ውስጥ ክፈት"</string>
<string name="close_text" msgid="4986518933445178928">"ዝጋ"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"ምናሌ ዝጋ"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"ምናሌን ክፈት"</string>
diff --git a/libs/WindowManager/Shell/res/values-ar/strings.xml b/libs/WindowManager/Shell/res/values-ar/strings.xml
index 53ff6da41d34..b014c3ba7d77 100644
--- a/libs/WindowManager/Shell/res/values-ar/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ar/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"نافذة عائمة"</string>
<string name="select_text" msgid="5139083974039906583">"اختيار"</string>
<string name="screenshot_text" msgid="1477704010087786671">"لقطة شاشة"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"فتح في المتصفِّح"</string>
<string name="close_text" msgid="4986518933445178928">"إغلاق"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"إغلاق القائمة"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"فتح القائمة"</string>
diff --git a/libs/WindowManager/Shell/res/values-az/strings.xml b/libs/WindowManager/Shell/res/values-az/strings.xml
index dd3e0e3b03f4..9ec44a1e6325 100644
--- a/libs/WindowManager/Shell/res/values-az/strings.xml
+++ b/libs/WindowManager/Shell/res/values-az/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Üzən pəncərə"</string>
<string name="select_text" msgid="5139083974039906583">"Seçin"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Skrinşot"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Brauzerdə açın"</string>
<string name="close_text" msgid="4986518933445178928">"Bağlayın"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Menyunu bağlayın"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Menyunu açın"</string>
diff --git a/libs/WindowManager/Shell/res/values-bg/strings.xml b/libs/WindowManager/Shell/res/values-bg/strings.xml
index bba2f999c8ea..8dc791501b1b 100644
--- a/libs/WindowManager/Shell/res/values-bg/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bg/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Плаващо"</string>
<string name="select_text" msgid="5139083974039906583">"Избиране"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Екранна снимка"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Отваряне в браузър"</string>
<string name="close_text" msgid="4986518933445178928">"Затваряне"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Затваряне на менюто"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Отваряне на менюто"</string>
diff --git a/libs/WindowManager/Shell/res/values-bn/strings.xml b/libs/WindowManager/Shell/res/values-bn/strings.xml
index cb081821d719..61294ada298e 100644
--- a/libs/WindowManager/Shell/res/values-bn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bn/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"ফ্লোট"</string>
<string name="select_text" msgid="5139083974039906583">"বেছে নিন"</string>
<string name="screenshot_text" msgid="1477704010087786671">"স্ক্রিনশট"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"ব্রাউজারে খুলুন"</string>
<string name="close_text" msgid="4986518933445178928">"বন্ধ করুন"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"\'মেনু\' বন্ধ করুন"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"মেনু খুলুন"</string>
diff --git a/libs/WindowManager/Shell/res/values-bs/strings.xml b/libs/WindowManager/Shell/res/values-bs/strings.xml
index e7505e50f749..676b226ec8c1 100644
--- a/libs/WindowManager/Shell/res/values-bs/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bs/strings.xml
@@ -116,7 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Lebdeći"</string>
<string name="select_text" msgid="5139083974039906583">"Odabir"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Snimak ekrana"</string>
- <string name="open_in_browser_text" msgid="9181692926376072904">"Otvori u pregledniku"</string>
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Otvaranje u pregledniku"</string>
<string name="close_text" msgid="4986518933445178928">"Zatvaranje"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Zatvaranje menija"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Otvaranje menija"</string>
diff --git a/libs/WindowManager/Shell/res/values-cs/strings.xml b/libs/WindowManager/Shell/res/values-cs/strings.xml
index 06941f6db248..6b9d85f37f00 100644
--- a/libs/WindowManager/Shell/res/values-cs/strings.xml
+++ b/libs/WindowManager/Shell/res/values-cs/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Plovoucí"</string>
<string name="select_text" msgid="5139083974039906583">"Vybrat"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Snímek obrazovky"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Otevřít v prohlížeči"</string>
<string name="close_text" msgid="4986518933445178928">"Zavřít"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Zavřít nabídku"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Otevřít nabídku"</string>
diff --git a/libs/WindowManager/Shell/res/values-da/strings.xml b/libs/WindowManager/Shell/res/values-da/strings.xml
index 7883bb0fab8b..de7d91943a4d 100644
--- a/libs/WindowManager/Shell/res/values-da/strings.xml
+++ b/libs/WindowManager/Shell/res/values-da/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Svævende"</string>
<string name="select_text" msgid="5139083974039906583">"Vælg"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Screenshot"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Åbn i browser"</string>
<string name="close_text" msgid="4986518933445178928">"Luk"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Luk menu"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Åbn menu"</string>
diff --git a/libs/WindowManager/Shell/res/values-de/strings.xml b/libs/WindowManager/Shell/res/values-de/strings.xml
index 6bb85239f397..e4fd3118293f 100644
--- a/libs/WindowManager/Shell/res/values-de/strings.xml
+++ b/libs/WindowManager/Shell/res/values-de/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Frei schwebend"</string>
<string name="select_text" msgid="5139083974039906583">"Auswählen"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Screenshot"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Im Browser öffnen"</string>
<string name="close_text" msgid="4986518933445178928">"Schließen"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Menü schließen"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Menü öffnen"</string>
diff --git a/libs/WindowManager/Shell/res/values-el/strings.xml b/libs/WindowManager/Shell/res/values-el/strings.xml
index a640b941dd6e..964166e16034 100644
--- a/libs/WindowManager/Shell/res/values-el/strings.xml
+++ b/libs/WindowManager/Shell/res/values-el/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Κινούμενο"</string>
<string name="select_text" msgid="5139083974039906583">"Επιλογή"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Στιγμιότυπο οθόνης"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Άνοιγμα σε πρόγραμμα περιήγησης"</string>
<string name="close_text" msgid="4986518933445178928">"Κλείσιμο"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Κλείσιμο μενού"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Άνοιγμα μενού"</string>
diff --git a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
index 4708d5fcd54e..c17b9f7ad8dc 100644
--- a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
@@ -116,8 +116,7 @@
<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>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Open in browser"</string>
<string name="close_text" msgid="4986518933445178928">"Close"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Close menu"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Open menu"</string>
diff --git a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
index 4708d5fcd54e..c17b9f7ad8dc 100644
--- a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
@@ -116,8 +116,7 @@
<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>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Open in browser"</string>
<string name="close_text" msgid="4986518933445178928">"Close"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Close menu"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Open menu"</string>
diff --git a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
index 4708d5fcd54e..c17b9f7ad8dc 100644
--- a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
@@ -116,8 +116,7 @@
<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>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Open in browser"</string>
<string name="close_text" msgid="4986518933445178928">"Close"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Close menu"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Open menu"</string>
diff --git a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
index 72bafcd61e5a..049649f0c748 100644
--- a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Flotante"</string>
<string name="select_text" msgid="5139083974039906583">"Seleccionar"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Captura de pantalla"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Abrir en el navegador"</string>
<string name="close_text" msgid="4986518933445178928">"Cerrar"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Cerrar menú"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Abrir el menú"</string>
diff --git a/libs/WindowManager/Shell/res/values-es/strings.xml b/libs/WindowManager/Shell/res/values-es/strings.xml
index d907a56d15c4..77413186228d 100644
--- a/libs/WindowManager/Shell/res/values-es/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Flotante"</string>
<string name="select_text" msgid="5139083974039906583">"Seleccionar"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Captura de pantalla"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Abrir en el navegador"</string>
<string name="close_text" msgid="4986518933445178928">"Cerrar"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Cerrar menú"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Abrir menú"</string>
diff --git a/libs/WindowManager/Shell/res/values-et/strings.xml b/libs/WindowManager/Shell/res/values-et/strings.xml
index 7d8103edf664..29fc150fd229 100644
--- a/libs/WindowManager/Shell/res/values-et/strings.xml
+++ b/libs/WindowManager/Shell/res/values-et/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Hõljuv"</string>
<string name="select_text" msgid="5139083974039906583">"Vali"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Ekraanipilt"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Avamine brauseris"</string>
<string name="close_text" msgid="4986518933445178928">"Sule"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Sule menüü"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Ava menüü"</string>
diff --git a/libs/WindowManager/Shell/res/values-eu/strings.xml b/libs/WindowManager/Shell/res/values-eu/strings.xml
index 19e028f0f706..580f6e1cd875 100644
--- a/libs/WindowManager/Shell/res/values-eu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-eu/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Leiho gainerakorra"</string>
<string name="select_text" msgid="5139083974039906583">"Hautatu"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Pantaila-argazkia"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Ireki arakatzailean"</string>
<string name="close_text" msgid="4986518933445178928">"Itxi"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Itxi menua"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Ireki menua"</string>
diff --git a/libs/WindowManager/Shell/res/values-fa/strings.xml b/libs/WindowManager/Shell/res/values-fa/strings.xml
index 2bb9415d83a6..766e78734fbc 100644
--- a/libs/WindowManager/Shell/res/values-fa/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fa/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"شناور"</string>
<string name="select_text" msgid="5139083974039906583">"انتخاب"</string>
<string name="screenshot_text" msgid="1477704010087786671">"نماگرفت"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"باز کردن در مرورگر"</string>
<string name="close_text" msgid="4986518933445178928">"بستن"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"بستن منو"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"باز کردن منو"</string>
diff --git a/libs/WindowManager/Shell/res/values-fi/strings.xml b/libs/WindowManager/Shell/res/values-fi/strings.xml
index fcc4150f6fc1..96c7b7504724 100644
--- a/libs/WindowManager/Shell/res/values-fi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fi/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Kelluva ikkuna"</string>
<string name="select_text" msgid="5139083974039906583">"Valitse"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Kuvakaappaus"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Avaa selaimessa"</string>
<string name="close_text" msgid="4986518933445178928">"Sulje"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Sulje valikko"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Avaa valikko"</string>
diff --git a/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml b/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
index 268b409e6eef..e54e59d279fd 100644
--- a/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Flottant"</string>
<string name="select_text" msgid="5139083974039906583">"Sélectionner"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Capture d\'écran"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Ouvrir dans le navigateur"</string>
<string name="close_text" msgid="4986518933445178928">"Fermer"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Fermer le menu"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Ouvrir le menu"</string>
diff --git a/libs/WindowManager/Shell/res/values-fr/strings.xml b/libs/WindowManager/Shell/res/values-fr/strings.xml
index 1762a2921863..d150ad7e89f5 100644
--- a/libs/WindowManager/Shell/res/values-fr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fr/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Flottante"</string>
<string name="select_text" msgid="5139083974039906583">"Sélectionner"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Capture d\'écran"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Ouvrir dans un navigateur"</string>
<string name="close_text" msgid="4986518933445178928">"Fermer"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Fermer le menu"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Ouvrir le menu"</string>
diff --git a/libs/WindowManager/Shell/res/values-gl/strings.xml b/libs/WindowManager/Shell/res/values-gl/strings.xml
index 94e7ad5bcd4e..6429fb31acd7 100644
--- a/libs/WindowManager/Shell/res/values-gl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-gl/strings.xml
@@ -84,10 +84,8 @@
<string name="notification_bubble_title" msgid="6082910224488253378">"Burbulla"</string>
<string name="manage_bubbles_text" msgid="7730624269650594419">"Xestionar"</string>
<string name="accessibility_bubble_dismissed" msgid="8367471990421247357">"Ignorouse a burbulla."</string>
- <!-- no translation found for bubble_shortcut_label (666269077944378311) -->
- <skip />
- <!-- no translation found for bubble_shortcut_long_label (6088437544312894043) -->
- <skip />
+ <string name="bubble_shortcut_label" msgid="666269077944378311">"Burbullas"</string>
+ <string name="bubble_shortcut_long_label" msgid="6088437544312894043">"Mostrar burbullas"</string>
<string name="restart_button_description" msgid="4564728020654658478">"Toca o botón para reiniciar esta aplicación e gozar dunha mellor visualización"</string>
<string name="user_aspect_ratio_settings_button_hint" msgid="734835849600713016">"Cambia a proporción desta aplicación en Configuración"</string>
<string name="user_aspect_ratio_settings_button_description" msgid="4315566801697411684">"Cambiar a proporción"</string>
diff --git a/libs/WindowManager/Shell/res/values-gu/strings.xml b/libs/WindowManager/Shell/res/values-gu/strings.xml
index 8a03a4d33b87..f8bdfaeccc15 100644
--- a/libs/WindowManager/Shell/res/values-gu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-gu/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"ફ્લોટિંગ વિન્ડો"</string>
<string name="select_text" msgid="5139083974039906583">"પસંદ કરો"</string>
<string name="screenshot_text" msgid="1477704010087786671">"સ્ક્રીનશૉટ"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"બ્રાઉઝરમાં ખોલો"</string>
<string name="close_text" msgid="4986518933445178928">"બંધ કરો"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"મેનૂ બંધ કરો"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"મેનૂ ખોલો"</string>
diff --git a/libs/WindowManager/Shell/res/values-hi/strings.xml b/libs/WindowManager/Shell/res/values-hi/strings.xml
index b73f449e4e83..d7c380387509 100644
--- a/libs/WindowManager/Shell/res/values-hi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hi/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"फ़्लोट"</string>
<string name="select_text" msgid="5139083974039906583">"चुनें"</string>
<string name="screenshot_text" msgid="1477704010087786671">"स्क्रीनशॉट"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"ब्राउज़र में खोलें"</string>
<string name="close_text" msgid="4986518933445178928">"बंद करें"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"मेन्यू बंद करें"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"मेन्यू खोलें"</string>
diff --git a/libs/WindowManager/Shell/res/values-hu/strings.xml b/libs/WindowManager/Shell/res/values-hu/strings.xml
index f4cf75472bb7..b1268cc849ab 100644
--- a/libs/WindowManager/Shell/res/values-hu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hu/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Lebegő"</string>
<string name="select_text" msgid="5139083974039906583">"Kiválasztás"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Képernyőkép"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Megnyitás böngészőben"</string>
<string name="close_text" msgid="4986518933445178928">"Bezárás"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Menü bezárása"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Menü megnyitása"</string>
diff --git a/libs/WindowManager/Shell/res/values-in/strings.xml b/libs/WindowManager/Shell/res/values-in/strings.xml
index 0e662f65e1e1..17e91050584d 100644
--- a/libs/WindowManager/Shell/res/values-in/strings.xml
+++ b/libs/WindowManager/Shell/res/values-in/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Mengambang"</string>
<string name="select_text" msgid="5139083974039906583">"Pilih"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Screenshot"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Buka di browser"</string>
<string name="close_text" msgid="4986518933445178928">"Tutup"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Tutup Menu"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Buka Menu"</string>
diff --git a/libs/WindowManager/Shell/res/values-is/strings.xml b/libs/WindowManager/Shell/res/values-is/strings.xml
index fb1df4db5d71..b955ef89759f 100644
--- a/libs/WindowManager/Shell/res/values-is/strings.xml
+++ b/libs/WindowManager/Shell/res/values-is/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Reikult"</string>
<string name="select_text" msgid="5139083974039906583">"Velja"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Skjámynd"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Opna í vafra"</string>
<string name="close_text" msgid="4986518933445178928">"Loka"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Loka valmynd"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Opna valmynd"</string>
diff --git a/libs/WindowManager/Shell/res/values-it/strings.xml b/libs/WindowManager/Shell/res/values-it/strings.xml
index 9c825bee57ce..d33e770f8199 100644
--- a/libs/WindowManager/Shell/res/values-it/strings.xml
+++ b/libs/WindowManager/Shell/res/values-it/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Mobile"</string>
<string name="select_text" msgid="5139083974039906583">"Seleziona"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Screenshot"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Apri nel browser"</string>
<string name="close_text" msgid="4986518933445178928">"Chiudi"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Chiudi il menu"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Apri menu"</string>
diff --git a/libs/WindowManager/Shell/res/values-iw/strings.xml b/libs/WindowManager/Shell/res/values-iw/strings.xml
index abd0f6b34178..6ebbc81046bf 100644
--- a/libs/WindowManager/Shell/res/values-iw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-iw/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"בלונים"</string>
<string name="select_text" msgid="5139083974039906583">"בחירה"</string>
<string name="screenshot_text" msgid="1477704010087786671">"צילום מסך"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"פתיחה בדפדפן"</string>
<string name="close_text" msgid="4986518933445178928">"סגירה"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"סגירת התפריט"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"פתיחת התפריט"</string>
diff --git a/libs/WindowManager/Shell/res/values-kk/strings.xml b/libs/WindowManager/Shell/res/values-kk/strings.xml
index 18183739cb99..3e9b85ecd3a3 100644
--- a/libs/WindowManager/Shell/res/values-kk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kk/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Қалқыма"</string>
<string name="select_text" msgid="5139083974039906583">"Таңдау"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Скриншот"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Браузерден ашу"</string>
<string name="close_text" msgid="4986518933445178928">"Жабу"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Мәзірді жабу"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Мәзірді ашу"</string>
diff --git a/libs/WindowManager/Shell/res/values-ko/strings.xml b/libs/WindowManager/Shell/res/values-ko/strings.xml
index a22667d83858..0f27080d65cd 100644
--- a/libs/WindowManager/Shell/res/values-ko/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ko/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"플로팅"</string>
<string name="select_text" msgid="5139083974039906583">"선택"</string>
<string name="screenshot_text" msgid="1477704010087786671">"스크린샷"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"브라우저에서 열기"</string>
<string name="close_text" msgid="4986518933445178928">"닫기"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"메뉴 닫기"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"메뉴 열기"</string>
diff --git a/libs/WindowManager/Shell/res/values-lt/strings.xml b/libs/WindowManager/Shell/res/values-lt/strings.xml
index 5b0e6b7a7047..21dbb68c8c04 100644
--- a/libs/WindowManager/Shell/res/values-lt/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lt/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Slankusis langas"</string>
<string name="select_text" msgid="5139083974039906583">"Pasirinkti"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Ekrano kopija"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Atidaryti naršyklėje"</string>
<string name="close_text" msgid="4986518933445178928">"Uždaryti"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Uždaryti meniu"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Atidaryti meniu"</string>
diff --git a/libs/WindowManager/Shell/res/values-lv/strings.xml b/libs/WindowManager/Shell/res/values-lv/strings.xml
index 704b2ed43f92..f988c14605c4 100644
--- a/libs/WindowManager/Shell/res/values-lv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lv/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Peldošs"</string>
<string name="select_text" msgid="5139083974039906583">"Atlasīt"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Ekrānuzņēmums"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Atvērt pārlūkā"</string>
<string name="close_text" msgid="4986518933445178928">"Aizvērt"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Aizvērt izvēlni"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Atvērt izvēlni"</string>
diff --git a/libs/WindowManager/Shell/res/values-mk/strings.xml b/libs/WindowManager/Shell/res/values-mk/strings.xml
index b257f802f294..ce34b9749e80 100644
--- a/libs/WindowManager/Shell/res/values-mk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mk/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Лебдечко"</string>
<string name="select_text" msgid="5139083974039906583">"Изберете"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Слика од екранот"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Отвори во прелистувач"</string>
<string name="close_text" msgid="4986518933445178928">"Затворете"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Затворете го менито"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Отвори го менито"</string>
diff --git a/libs/WindowManager/Shell/res/values-mn/strings.xml b/libs/WindowManager/Shell/res/values-mn/strings.xml
index a343065d2506..de58ed89864e 100644
--- a/libs/WindowManager/Shell/res/values-mn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mn/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Хөвөгч"</string>
<string name="select_text" msgid="5139083974039906583">"Сонгох"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Дэлгэцийн агшин"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Хөтчид нээх"</string>
<string name="close_text" msgid="4986518933445178928">"Хаах"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Цэсийг хаах"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Цэс нээх"</string>
diff --git a/libs/WindowManager/Shell/res/values-my/strings.xml b/libs/WindowManager/Shell/res/values-my/strings.xml
index 781148d83a4a..2f313cfe7e26 100644
--- a/libs/WindowManager/Shell/res/values-my/strings.xml
+++ b/libs/WindowManager/Shell/res/values-my/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"မျှောရန်"</string>
<string name="select_text" msgid="5139083974039906583">"ရွေးရန်"</string>
<string name="screenshot_text" msgid="1477704010087786671">"ဖန်သားပြင်ဓာတ်ပုံ"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"ဘရောင်ဇာတွင် ဖွင့်ရန်"</string>
<string name="close_text" msgid="4986518933445178928">"ပိတ်ရန်"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"မီနူး ပိတ်ရန်"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"မီနူး ဖွင့်ရန်"</string>
diff --git a/libs/WindowManager/Shell/res/values-nb/strings.xml b/libs/WindowManager/Shell/res/values-nb/strings.xml
index 9dc8501692a6..11a807b73054 100644
--- a/libs/WindowManager/Shell/res/values-nb/strings.xml
+++ b/libs/WindowManager/Shell/res/values-nb/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Svevende"</string>
<string name="select_text" msgid="5139083974039906583">"Velg"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Skjermbilde"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Åpne i nettleseren"</string>
<string name="close_text" msgid="4986518933445178928">"Lukk"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Lukk menyen"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Åpne menyen"</string>
diff --git a/libs/WindowManager/Shell/res/values-or/strings.xml b/libs/WindowManager/Shell/res/values-or/strings.xml
index 5412bb8c4a85..b3b5e7cd6955 100644
--- a/libs/WindowManager/Shell/res/values-or/strings.xml
+++ b/libs/WindowManager/Shell/res/values-or/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"ଫ୍ଲୋଟ"</string>
<string name="select_text" msgid="5139083974039906583">"ଚୟନ କରନ୍ତୁ"</string>
<string name="screenshot_text" msgid="1477704010087786671">"ସ୍କ୍ରିନସଟ"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"ବ୍ରାଉଜରରେ ଖୋଲନ୍ତୁ"</string>
<string name="close_text" msgid="4986518933445178928">"ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"ମେନୁ ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"ମେନୁ ଖୋଲନ୍ତୁ"</string>
diff --git a/libs/WindowManager/Shell/res/values-pa/strings.xml b/libs/WindowManager/Shell/res/values-pa/strings.xml
index abff90d32cc1..4a08f6762673 100644
--- a/libs/WindowManager/Shell/res/values-pa/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pa/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"ਫ਼ਲੋਟ"</string>
<string name="select_text" msgid="5139083974039906583">"ਚੁਣੋ"</string>
<string name="screenshot_text" msgid="1477704010087786671">"ਸਕ੍ਰੀਨਸ਼ਾਟ"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲ੍ਹੋ"</string>
<string name="close_text" msgid="4986518933445178928">"ਬੰਦ ਕਰੋ"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"ਮੀਨੂ ਬੰਦ ਕਰੋ"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"ਮੀਨੂ ਖੋਲ੍ਹੋ"</string>
diff --git a/libs/WindowManager/Shell/res/values-ro/strings.xml b/libs/WindowManager/Shell/res/values-ro/strings.xml
index 67dc389816a6..503f68c99c38 100644
--- a/libs/WindowManager/Shell/res/values-ro/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ro/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Flotantă"</string>
<string name="select_text" msgid="5139083974039906583">"Selectează"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Captură de ecran"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Deschide în browser"</string>
<string name="close_text" msgid="4986518933445178928">"Închide"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Închide meniul"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Deschide meniul"</string>
diff --git a/libs/WindowManager/Shell/res/values-si/strings.xml b/libs/WindowManager/Shell/res/values-si/strings.xml
index 34eaad0825f6..8589f42dd125 100644
--- a/libs/WindowManager/Shell/res/values-si/strings.xml
+++ b/libs/WindowManager/Shell/res/values-si/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"පාවෙන"</string>
<string name="select_text" msgid="5139083974039906583">"තෝරන්න"</string>
<string name="screenshot_text" msgid="1477704010087786671">"තිර රුව"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"බ්‍රව්සරයේ විවෘත කරන්න"</string>
<string name="close_text" msgid="4986518933445178928">"වසන්න"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"මෙනුව වසන්න"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"මෙනුව විවෘත කරන්න"</string>
diff --git a/libs/WindowManager/Shell/res/values-sk/strings.xml b/libs/WindowManager/Shell/res/values-sk/strings.xml
index 4687f39cb308..895974462576 100644
--- a/libs/WindowManager/Shell/res/values-sk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sk/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Plávajúce"</string>
<string name="select_text" msgid="5139083974039906583">"Vybrať"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Snímka obrazovky"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Otvoriť v prehliadači"</string>
<string name="close_text" msgid="4986518933445178928">"Zavrieť"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Zavrieť ponuku"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Otvoriť ponuku"</string>
diff --git a/libs/WindowManager/Shell/res/values-sq/strings.xml b/libs/WindowManager/Shell/res/values-sq/strings.xml
index 5f8f97e8b7df..406389465aa0 100644
--- a/libs/WindowManager/Shell/res/values-sq/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sq/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Pluskuese"</string>
<string name="select_text" msgid="5139083974039906583">"Zgjidh"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Pamja e ekranit"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Hape në shfletues"</string>
<string name="close_text" msgid="4986518933445178928">"Mbyll"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Mbyll menynë"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Hap menynë"</string>
diff --git a/libs/WindowManager/Shell/res/values-sv/strings.xml b/libs/WindowManager/Shell/res/values-sv/strings.xml
index a991152ddc06..77c7d09fdb24 100644
--- a/libs/WindowManager/Shell/res/values-sv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sv/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Svävande"</string>
<string name="select_text" msgid="5139083974039906583">"Välj"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Skärmbild"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Öppna i webbläsaren"</string>
<string name="close_text" msgid="4986518933445178928">"Stäng"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Stäng menyn"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Öppna menyn"</string>
diff --git a/libs/WindowManager/Shell/res/values-sw/strings.xml b/libs/WindowManager/Shell/res/values-sw/strings.xml
index 94ea2f2ad02e..d367c80c7197 100644
--- a/libs/WindowManager/Shell/res/values-sw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sw/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Inayoelea"</string>
<string name="select_text" msgid="5139083974039906583">"Chagua"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Picha ya skrini"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Fungua katika kivinjari"</string>
<string name="close_text" msgid="4986518933445178928">"Funga"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Funga Menyu"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Fungua Menyu"</string>
diff --git a/libs/WindowManager/Shell/res/values-ta/strings.xml b/libs/WindowManager/Shell/res/values-ta/strings.xml
index 866fe568c470..697f9519688f 100644
--- a/libs/WindowManager/Shell/res/values-ta/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ta/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"மிதக்கும் சாளரம்"</string>
<string name="select_text" msgid="5139083974039906583">"தேர்ந்தெடுக்கும்"</string>
<string name="screenshot_text" msgid="1477704010087786671">"ஸ்கிரீன்ஷாட்"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"உலாவியில் திறக்கும்"</string>
<string name="close_text" msgid="4986518933445178928">"மூடும்"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"மெனுவை மூடும்"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"மெனுவைத் திற"</string>
diff --git a/libs/WindowManager/Shell/res/values-tr/strings.xml b/libs/WindowManager/Shell/res/values-tr/strings.xml
index e70f1708fb75..1a9724079e65 100644
--- a/libs/WindowManager/Shell/res/values-tr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tr/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Havada Süzülen"</string>
<string name="select_text" msgid="5139083974039906583">"Seç"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Ekran görüntüsü"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Tarayıcıda aç"</string>
<string name="close_text" msgid="4986518933445178928">"Kapat"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Menüyü kapat"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Menüyü Aç"</string>
diff --git a/libs/WindowManager/Shell/res/values-uk/strings.xml b/libs/WindowManager/Shell/res/values-uk/strings.xml
index b243a153af8f..a5fcae5775a0 100644
--- a/libs/WindowManager/Shell/res/values-uk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uk/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Плаваюче вікно"</string>
<string name="select_text" msgid="5139083974039906583">"Вибрати"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Знімок екрана"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Відкрити у вебпереглядачі"</string>
<string name="close_text" msgid="4986518933445178928">"Закрити"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Закрити меню"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Відкрити меню"</string>
diff --git a/libs/WindowManager/Shell/res/values-vi/strings.xml b/libs/WindowManager/Shell/res/values-vi/strings.xml
index a813b265a4dc..86e2b3349716 100644
--- a/libs/WindowManager/Shell/res/values-vi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-vi/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"Nổi"</string>
<string name="select_text" msgid="5139083974039906583">"Chọn"</string>
<string name="screenshot_text" msgid="1477704010087786671">"Ảnh chụp màn hình"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"Mở trong trình duyệt"</string>
<string name="close_text" msgid="4986518933445178928">"Đóng"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Đóng trình đơn"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"Mở Trình đơn"</string>
diff --git a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
index 6f21fdfa250e..a56553b786c3 100644
--- a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"悬浮"</string>
<string name="select_text" msgid="5139083974039906583">"选择"</string>
<string name="screenshot_text" msgid="1477704010087786671">"屏幕截图"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"在浏览器中打开"</string>
<string name="close_text" msgid="4986518933445178928">"关闭"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"关闭菜单"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"打开菜单"</string>
diff --git a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
index 159db8f0e82d..78c97e4944c9 100644
--- a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"浮動"</string>
<string name="select_text" msgid="5139083974039906583">"選取"</string>
<string name="screenshot_text" msgid="1477704010087786671">"螢幕截圖"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"在瀏覽器中開啟"</string>
<string name="close_text" msgid="4986518933445178928">"關閉"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"關閉選單"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"打開選單"</string>
diff --git a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
index 8a1b2bf2b14e..307dc9db9381 100644
--- a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
@@ -116,8 +116,7 @@
<string name="float_button_text" msgid="9221657008391364581">"浮動"</string>
<string name="select_text" msgid="5139083974039906583">"選取"</string>
<string name="screenshot_text" msgid="1477704010087786671">"螢幕截圖"</string>
- <!-- no translation found for open_in_browser_text (9181692926376072904) -->
- <skip />
+ <string name="open_in_browser_text" msgid="9181692926376072904">"在瀏覽器中開啟"</string>
<string name="close_text" msgid="4986518933445178928">"關閉"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"關閉選單"</string>
<string name="expand_menu_text" msgid="3847736164494181168">"開啟選單"</string>
diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java
index a1ba24ca366f..282385a16b5f 100644
--- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java
+++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/desktopmode/DesktopModeStatus.java
@@ -89,20 +89,15 @@ public class DesktopModeStatus {
private static final int DESKTOP_DENSITY_MAX = 1000;
/**
- * Default value for {@code MAX_TASK_LIMIT}.
- */
- @VisibleForTesting
- public static final int DEFAULT_MAX_TASK_LIMIT = 4;
-
- // TODO(b/335131008): add a config-overlay field for the max number of tasks in Desktop Mode
- /**
- * Flag declaring the maximum number of Tasks to show in Desktop Mode at any one time.
+ * Sysprop declaring the maximum number of Tasks to show in Desktop Mode at any one time.
+ *
+ * <p>If it is not defined, then {@code R.integer.config_maxDesktopWindowingActiveTasks} is
+ * used.
*
- * <p> The limit does NOT affect Picture-in-Picture, Bubbles, or System Modals (like a screen
+ * <p>The limit does NOT affect Picture-in-Picture, Bubbles, or System Modals (like a screen
* recording window, or Bluetooth pairing window).
*/
- private static final int MAX_TASK_LIMIT = SystemProperties.getInt(
- "persist.wm.debug.desktop_max_task_limit", DEFAULT_MAX_TASK_LIMIT);
+ private static final String MAX_TASK_LIMIT_SYS_PROP = "persist.wm.debug.desktop_max_task_limit";
/**
* Return {@code true} if veiled resizing is active. If false, fluid resizing is used.
@@ -139,8 +134,9 @@ public class DesktopModeStatus {
/**
* Return the maximum limit on the number of Tasks to show in Desktop Mode at any one time.
*/
- public static int getMaxTaskLimit() {
- return MAX_TASK_LIMIT;
+ public static int getMaxTaskLimit(@NonNull Context context) {
+ return SystemProperties.getInt(MAX_TASK_LIMIT_SYS_PROP,
+ context.getResources().getInteger(R.integer.config_maxDesktopWindowingActiveTasks));
}
/**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/OWNERS b/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/OWNERS
new file mode 100644
index 000000000000..bfe1306a60e6
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/OWNERS
@@ -0,0 +1,6 @@
+atsjenk@google.com
+jorgegil@google.com
+madym@google.com
+pbdr@google.com
+tkachenkoi@google.com
+vaniadesmonda@google.com
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
index fca8a625811c..949a7236434a 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
@@ -734,6 +734,9 @@ public class BubbleController implements ConfigurationChangeListener,
public void setBubbleBarLocation(BubbleBarLocation bubbleBarLocation) {
if (canShowAsBubbleBar()) {
mBubblePositioner.setBubbleBarLocation(bubbleBarLocation);
+ if (mLayerView != null && !mLayerView.isExpandedViewDragged()) {
+ mLayerView.updateExpandedView();
+ }
BubbleBarUpdate bubbleBarUpdate = new BubbleBarUpdate();
bubbleBarUpdate.bubbleBarLocation = bubbleBarLocation;
mBubbleStateListener.onBubbleStateChange(bubbleBarUpdate);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewDragController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewDragController.kt
index fa1091c63d00..d45ed0d28f3b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewDragController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarExpandedViewDragController.kt
@@ -38,6 +38,9 @@ class BubbleBarExpandedViewDragController(
var isStuckToDismiss: Boolean = false
private set
+ var isDragged: Boolean = false
+ private set
+
private var expandedViewInitialTranslationX = 0f
private var expandedViewInitialTranslationY = 0f
private val magnetizedExpandedView: MagnetizedObject<BubbleBarExpandedView> =
@@ -94,6 +97,7 @@ class BubbleBarExpandedViewDragController(
// While animating, don't allow new touch events
if (expandedView.isAnimating) return false
pinController.onDragStart(bubblePositioner.isBubbleBarOnLeft)
+ isDragged = true
return true
}
@@ -141,6 +145,7 @@ class BubbleBarExpandedViewDragController(
dismissView.hide()
}
isMoving = false
+ isDragged = false
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
index badc40997902..9fa85cf0c57c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarLayerView.java
@@ -175,6 +175,11 @@ public class BubbleBarLayerView extends FrameLayout
return mIsExpanded;
}
+ /** Return whether the expanded view is being dragged */
+ public boolean isExpandedViewDragged() {
+ return mDragController != null && mDragController.isDragged();
+ }
+
/** Shows the expanded view of the provided bubble. */
public void showExpandedView(BubbleViewProvider b) {
BubbleBarExpandedView expandedView = b.getBubbleBarExpandedView();
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
index f4ac5f260fcd..4fbb5744b64b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
@@ -344,8 +344,7 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
if (android.view.inputmethod.Flags.refactorInsetsController()) {
if (pendingImeStartAnimation) {
- startAnimation(true, true /* forceRestart */,
- null /* statsToken */);
+ startAnimation(true, true /* forceRestart */);
}
}
}
@@ -398,8 +397,7 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
// already (e.g., when focussing an editText in activity B, while and editText in
// activity A is focussed), we will not get a call of #insetsControlChanged, and
// therefore have to start the show animation from here
- startAnimation(mImeRequestedVisible /* show */, false /* forceRestart */,
- null /* TODO statsToken */);
+ startAnimation(mImeRequestedVisible /* show */, false /* forceRestart */);
}
}
@@ -436,16 +434,31 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
.navBarFrameHeight();
}
+ private void startAnimation(final boolean show, final boolean forceRestart) {
+ final var imeSource = mInsetsState.peekSource(InsetsSource.ID_IME);
+ if (imeSource == null || mImeSourceControl == null) {
+ return;
+ }
+ final var statsToken = mImeSourceControl.getImeStatsToken();
+
+ startAnimation(show, forceRestart, statsToken);
+ }
+
private void startAnimation(final boolean show, final boolean forceRestart,
@SoftInputShowHideReason int reason) {
final var imeSource = mInsetsState.peekSource(InsetsSource.ID_IME);
if (imeSource == null || mImeSourceControl == null) {
return;
}
- final var statsToken = ImeTracker.forLogging().onStart(
- show ? ImeTracker.TYPE_SHOW : ImeTracker.TYPE_HIDE, ImeTracker.ORIGIN_WM_SHELL,
- reason, false /* fromUser */);
-
+ final ImeTracker.Token statsToken;
+ if (android.view.inputmethod.Flags.refactorInsetsController()
+ && mImeSourceControl.getImeStatsToken() != null) {
+ statsToken = mImeSourceControl.getImeStatsToken();
+ } else {
+ statsToken = ImeTracker.forLogging().onStart(
+ show ? ImeTracker.TYPE_SHOW : ImeTracker.TYPE_HIDE,
+ ImeTracker.ORIGIN_WM_SHELL, reason, false /* fromUser */);
+ }
startAnimation(show, forceRestart, statsToken);
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java
index 1931212df548..cb087a9113ea 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java
@@ -23,6 +23,8 @@ import static android.app.CameraCompatTaskInfo.CAMERA_COMPAT_CONTROL_TREATMENT_S
import static android.view.WindowManager.LARGE_SCREEN_SMALLEST_SCREEN_WIDTH_DP;
import static android.window.TaskConstants.TASK_CHILD_LAYER_COMPAT_UI;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.DESKTOP_WINDOWING_MODE;
+
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.CameraCompatTaskInfo.CameraCompatControlState;
@@ -91,7 +93,8 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract {
super(context, taskInfo, syncQueue, taskListener, displayLayout);
mCallback = callback;
mHasSizeCompat = taskInfo.appCompatTaskInfo.topActivityInSizeCompat;
- if (Flags.enableDesktopWindowingMode() && Flags.enableWindowingDynamicInitialBounds()) {
+ if (DESKTOP_WINDOWING_MODE.isEnabled(mContext)
+ && Flags.enableWindowingDynamicInitialBounds()) {
// Don't show the SCM button for freeform tasks
mHasSizeCompat &= !taskInfo.isFreeform();
}
@@ -150,7 +153,8 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract {
final boolean prevHasSizeCompat = mHasSizeCompat;
final int prevCameraCompatControlState = mCameraCompatControlState;
mHasSizeCompat = taskInfo.appCompatTaskInfo.topActivityInSizeCompat;
- if (Flags.enableDesktopWindowingMode() && Flags.enableWindowingDynamicInitialBounds()) {
+ if (DESKTOP_WINDOWING_MODE.isEnabled(mContext)
+ && Flags.enableWindowingDynamicInitialBounds()) {
// Don't show the SCM button for freeform tasks
mHasSizeCompat &= !taskInfo.isFreeform();
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
index 32526ff06abb..afe46f500e51 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
@@ -16,6 +16,8 @@
package com.android.wm.shell.dagger;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.DESKTOP_WINDOWING_MODE;
+
import android.annotation.Nullable;
import android.app.KeyguardManager;
import android.content.Context;
@@ -30,7 +32,6 @@ import com.android.internal.jank.InteractionJankMonitor;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.statusbar.IStatusBarService;
import com.android.launcher3.icons.IconProvider;
-import com.android.window.flags.Flags;
import com.android.wm.shell.RootTaskDisplayAreaOrganizer;
import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.WindowManagerShellWrapper;
@@ -566,13 +567,15 @@ public abstract class WMShellModule {
Transitions transitions,
@DynamicOverride DesktopModeTaskRepository desktopModeTaskRepository,
ShellTaskOrganizer shellTaskOrganizer) {
+ int maxTaskLimit = DesktopModeStatus.getMaxTaskLimit(context);
if (!DesktopModeStatus.canEnterDesktopMode(context)
- || !Flags.enableDesktopWindowingTaskLimit()) {
+ || DESKTOP_WINDOWING_MODE.isEnabled(context)
+ || maxTaskLimit <= 0) {
return Optional.empty();
}
return Optional.of(
new DesktopTasksLimiter(
- transitions, desktopModeTaskRepository, shellTaskOrganizer));
+ transitions, desktopModeTaskRepository, shellTaskOrganizer, maxTaskLimit));
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
index 9fd2c274df2d..886609a0c323 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
@@ -67,6 +67,7 @@ import com.android.wm.shell.common.RemoteCallable
import com.android.wm.shell.common.ShellExecutor
import com.android.wm.shell.common.SingleInstanceRemoteListener
import com.android.wm.shell.common.SyncTransactionQueue
+import com.android.wm.shell.shared.desktopmode.DesktopModeFlags.WALLPAPER_ACTIVITY
import com.android.wm.shell.common.desktopmode.DesktopModeTransitionSource
import com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT
import com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_TOP_OR_LEFT
@@ -786,7 +787,7 @@ class DesktopTasksController(
moveHomeTask(wct, toTop = true)
// Currently, we only handle the desktop on the default display really.
- if (displayId == DEFAULT_DISPLAY && Flags.enableDesktopWindowingWallpaperActivity()) {
+ if (displayId == DEFAULT_DISPLAY && WALLPAPER_ACTIVITY.isEnabled(context)) {
// Add translucent wallpaper activity to show the wallpaper underneath
addWallpaperActivity(wct)
}
@@ -974,7 +975,7 @@ class DesktopTasksController(
&& isTopActivityExemptFromDesktopWindowing(context, task)
private fun shouldHandleTaskClosing(request: TransitionRequestInfo): Boolean {
- return Flags.enableDesktopWindowingWallpaperActivity() &&
+ return WALLPAPER_ACTIVITY.isEnabled(context) &&
TransitionUtil.isClosingType(request.type) &&
request.triggerTask != null
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
index 534cc22ada47..c5ed1be004e5 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksLimiter.kt
@@ -26,7 +26,6 @@ import androidx.annotation.VisibleForTesting
import com.android.internal.protolog.ProtoLog
import com.android.wm.shell.ShellTaskOrganizer
import com.android.wm.shell.protolog.ShellProtoLogGroup
-import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
import com.android.wm.shell.transition.Transitions
import com.android.wm.shell.transition.Transitions.TransitionObserver
@@ -40,12 +39,17 @@ class DesktopTasksLimiter (
transitions: Transitions,
private val taskRepository: DesktopModeTaskRepository,
private val shellTaskOrganizer: ShellTaskOrganizer,
+ private val maxTasksLimit: Int,
) {
private val minimizeTransitionObserver = MinimizeTransitionObserver()
@VisibleForTesting
val leftoverMinimizedTasksRemover = LeftoverMinimizedTasksRemover()
init {
+ require(maxTasksLimit > 0) {
+ "DesktopTasksLimiter should not be created with a maxTasksLimit at 0 or less. " +
+ "Current value: $maxTasksLimit."
+ }
transitions.registerObserver(minimizeTransitionObserver)
taskRepository.addActiveTaskListener(leftoverMinimizedTasksRemover)
}
@@ -194,12 +198,6 @@ class DesktopTasksLimiter (
}
/**
- * Returns the maximum number of tasks that should ever be displayed at the same time in Desktop
- * Mode.
- */
- fun getMaxTaskLimit(): Int = DesktopModeStatus.getMaxTaskLimit()
-
- /**
* Returns the Task to minimize given 1. a list of visible tasks ordered from front to back and
* 2. a new task placed in front of all the others.
*/
@@ -216,7 +214,7 @@ class DesktopTasksLimiter (
fun getTaskToMinimizeIfNeeded(
visibleFreeformTaskIdsOrderedFrontToBack: List<Int>
): RunningTaskInfo? {
- if (visibleFreeformTaskIdsOrderedFrontToBack.size <= getMaxTaskLimit()) {
+ if (visibleFreeformTaskIdsOrderedFrontToBack.size <= maxTasksLimit) {
ProtoLog.v(
ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE,
"DesktopTasksLimiter: no need to minimize; tasks below limit")
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksTransitionObserver.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksTransitionObserver.kt
index 246fd9281975..74e53facf9c8 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksTransitionObserver.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksTransitionObserver.kt
@@ -23,9 +23,9 @@ import android.view.WindowManager
import android.window.TransitionInfo
import android.window.WindowContainerTransaction
import com.android.internal.protolog.ProtoLog
-import com.android.window.flags.Flags.enableDesktopWindowingWallpaperActivity
import com.android.wm.shell.ShellTaskOrganizer
import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE
+import com.android.wm.shell.shared.desktopmode.DesktopModeFlags.WALLPAPER_ACTIVITY
import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
import com.android.wm.shell.sysui.ShellInit
import com.android.wm.shell.transition.Transitions
@@ -36,7 +36,7 @@ import com.android.wm.shell.transition.Transitions
* mode and other transitions that originate both within and outside shell.
*/
class DesktopTasksTransitionObserver(
- context: Context,
+ private val context: Context,
private val desktopModeTaskRepository: DesktopModeTaskRepository,
private val transitions: Transitions,
private val shellTaskOrganizer: ShellTaskOrganizer,
@@ -79,7 +79,7 @@ class DesktopTasksTransitionObserver(
}
private fun updateWallpaperToken(info: TransitionInfo) {
- if (!enableDesktopWindowingWallpaperActivity()) {
+ if (!WALLPAPER_ACTIVITY.isEnabled(context)) {
return
}
info.changes.forEach { change ->
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
index 7ad68aac62c5..b01b2b7ad520 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
@@ -2,7 +2,6 @@
atsjenk@google.com
jorgegil@google.com
madym@google.com
-nmusgrave@google.com
pbdr@google.com
tkachenkoi@google.com
vaniadesmonda@google.com
diff --git a/libs/WindowManager/Shell/tests/flicker/service/src/com/android/wm/shell/flicker/service/desktopmode/scenarios/MinimizeWindowOnAppOpen.kt b/libs/WindowManager/Shell/tests/flicker/service/src/com/android/wm/shell/flicker/service/desktopmode/scenarios/MinimizeWindowOnAppOpen.kt
new file mode 100644
index 000000000000..c8477102a7ad
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/flicker/service/src/com/android/wm/shell/flicker/service/desktopmode/scenarios/MinimizeWindowOnAppOpen.kt
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.flicker.service.desktopmode.scenarios
+
+import android.app.Instrumentation
+import android.tools.traces.parsers.WindowManagerStateHelper
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.launcher3.tapl.LauncherInstrumentation
+import com.android.server.wm.flicker.helpers.DesktopModeAppHelper
+import com.android.server.wm.flicker.helpers.ImeAppHelper
+import com.android.server.wm.flicker.helpers.LetterboxAppHelper
+import com.android.server.wm.flicker.helpers.MailAppHelper
+import com.android.server.wm.flicker.helpers.NewTasksAppHelper
+import com.android.server.wm.flicker.helpers.SimpleAppHelper
+import com.android.window.flags.Flags
+import org.junit.After
+import org.junit.Assume
+import org.junit.Before
+import org.junit.Ignore
+import org.junit.Test
+
+/**
+ * Base scenario test for minimizing the least recently used window when a new window is opened
+ * above the window limit. For tangor devices, which this test currently runs on, the window limit
+ * is 4.
+ */
+@Ignore("Base Test Class")
+abstract class MinimizeWindowOnAppOpen()
+{
+ private val instrumentation: Instrumentation = InstrumentationRegistry.getInstrumentation()
+ private val tapl = LauncherInstrumentation()
+ private val wmHelper = WindowManagerStateHelper(instrumentation)
+ private val device = UiDevice.getInstance(instrumentation)
+
+ private val testApp = DesktopModeAppHelper(SimpleAppHelper(instrumentation))
+ private val mailApp = DesktopModeAppHelper(MailAppHelper(instrumentation))
+ private val newTasksApp = DesktopModeAppHelper(NewTasksAppHelper(instrumentation))
+ private val imeApp = DesktopModeAppHelper(ImeAppHelper(instrumentation))
+ private val letterboxAppHelper = DesktopModeAppHelper(LetterboxAppHelper(instrumentation))
+
+ @Before
+ fun setup() {
+ Assume.assumeTrue(Flags.enableDesktopWindowingMode() && tapl.isTablet)
+ testApp.enterDesktopWithDrag(wmHelper, device)
+ mailApp.launchViaIntent(wmHelper)
+ newTasksApp.launchViaIntent(wmHelper)
+ imeApp.launchViaIntent(wmHelper)
+ }
+
+ @Test
+ open fun openAppToMinimizeWindow() {
+ // Launch a new app while 4 apps are already open on desktop. This should result in the
+ // first app we opened to be minimized.
+ letterboxAppHelper.launchViaIntent(wmHelper)
+ }
+
+ @After
+ fun teardown() {
+ testApp.exit(wmHelper)
+ mailApp.exit(wmHelper)
+ newTasksApp.exit(wmHelper)
+ imeApp.exit(wmHelper)
+ letterboxAppHelper.exit(wmHelper)
+ }
+}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
index 37510ef4ba21..e66018f26d46 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
@@ -126,11 +126,11 @@ import org.mockito.Mockito.clearInvocations
import org.mockito.Mockito.mock
import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
+import org.mockito.Mockito.`when` as whenever
import org.mockito.kotlin.anyOrNull
import org.mockito.kotlin.atLeastOnce
import org.mockito.kotlin.capture
import org.mockito.quality.Strictness
-import org.mockito.Mockito.`when` as whenever
/**
* Test class for {@link DesktopTasksController}
@@ -204,7 +204,12 @@ class DesktopTasksControllerTest : ShellTestCase() {
shellInit = spy(ShellInit(testExecutor))
desktopModeTaskRepository = DesktopModeTaskRepository()
desktopTasksLimiter =
- DesktopTasksLimiter(transitions, desktopModeTaskRepository, shellTaskOrganizer)
+ DesktopTasksLimiter(
+ transitions,
+ desktopModeTaskRepository,
+ shellTaskOrganizer,
+ MAX_TASK_LIMIT,
+ )
whenever(shellTaskOrganizer.getRunningTasks(anyInt())).thenAnswer { runningTasks }
whenever(transitions.startTransition(anyInt(), any(), isNull())).thenAnswer { Binder() }
@@ -780,45 +785,41 @@ class DesktopTasksControllerTest : ShellTestCase() {
@Test
@DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
fun moveToDesktop_desktopWallpaperDisabled_bringsTasksOver_dontShowBackTask() {
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
- val freeformTasks = (1..taskLimit).map { _ -> setUpFreeformTask() }
+ val freeformTasks = (1..MAX_TASK_LIMIT).map { _ -> setUpFreeformTask() }
val newTask = setUpFullscreenTask()
val homeTask = setUpHomeTask()
controller.moveToDesktop(newTask, transitionSource = UNKNOWN)
val wct = getLatestEnterDesktopWct()
- assertThat(wct.hierarchyOps.size).isEqualTo(taskLimit + 1) // visible tasks + home
+ assertThat(wct.hierarchyOps.size).isEqualTo(MAX_TASK_LIMIT + 1) // visible tasks + home
wct.assertReorderAt(0, homeTask)
wct.assertReorderSequenceInRange(
- range = 1..<(taskLimit + 1),
- *freeformTasks.drop(1).toTypedArray(), // Skipping freeformTasks[0]
- newTask
- )
+ range = 1..<(MAX_TASK_LIMIT + 1),
+ *freeformTasks.drop(1).toTypedArray(), // Skipping freeformTasks[0]
+ newTask)
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY)
fun moveToDesktop_desktopWallpaperEnabled_bringsTasksOverLimit_dontShowBackTask() {
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
- val freeformTasks = (1..taskLimit).map { _ -> setUpFreeformTask() }
+ val freeformTasks = (1..MAX_TASK_LIMIT).map { _ -> setUpFreeformTask() }
val newTask = setUpFullscreenTask()
val homeTask = setUpHomeTask()
controller.moveToDesktop(newTask, transitionSource = UNKNOWN)
val wct = getLatestEnterDesktopWct()
- assertThat(wct.hierarchyOps.size).isEqualTo(taskLimit + 2) // tasks + home + wallpaper
+ assertThat(wct.hierarchyOps.size).isEqualTo(MAX_TASK_LIMIT + 2) // tasks + home + wallpaper
// Move home to front
wct.assertReorderAt(0, homeTask)
// Add desktop wallpaper activity
wct.assertPendingIntentAt(1, desktopWallpaperIntent)
// Bring freeform tasks to front
wct.assertReorderSequenceInRange(
- range = 2..<(taskLimit + 2),
- *freeformTasks.drop(1).toTypedArray(), // Skipping freeformTasks[0]
- newTask
- )
+ range = 2..<(MAX_TASK_LIMIT + 2),
+ *freeformTasks.drop(1).toTypedArray(), // Skipping freeformTasks[0]
+ newTask)
}
@Test
@@ -932,9 +933,8 @@ class DesktopTasksControllerTest : ShellTestCase() {
@Test
fun moveTaskToFront_bringsTasksOverLimit_minimizesBackTask() {
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
setUpHomeTask()
- val freeformTasks = (1..taskLimit + 1).map { _ -> setUpFreeformTask() }
+ val freeformTasks = (1..MAX_TASK_LIMIT + 1).map { _ -> setUpFreeformTask() }
controller.moveTaskToFront(freeformTasks[0])
@@ -1141,8 +1141,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
fun handleRequest_fullscreenTaskToFreeform_bringsTasksOverLimit_otherTaskIsMinimized() {
assumeTrue(ENABLE_SHELL_TRANSITIONS)
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
- val freeformTasks = (1..taskLimit).map { _ -> setUpFreeformTask() }
+ val freeformTasks = (1..MAX_TASK_LIMIT).map { _ -> setUpFreeformTask() }
freeformTasks.forEach { markTaskVisible(it) }
val fullscreenTask = createFullscreenTask()
@@ -1187,8 +1186,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
fun handleRequest_freeformTask_freeformVisible_aboveTaskLimit_minimize() {
assumeTrue(ENABLE_SHELL_TRANSITIONS)
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
- val freeformTasks = (1..taskLimit).map { _ -> setUpFreeformTask() }
+ val freeformTasks = (1..MAX_TASK_LIMIT).map { _ -> setUpFreeformTask() }
freeformTasks.forEach { markTaskVisible(it) }
val newFreeformTask = createFreeformTask()
@@ -2599,9 +2597,10 @@ class DesktopTasksControllerTest : ShellTestCase() {
return TransitionRequestInfo(type, task, null /* remoteTransition */)
}
- companion object {
+ private companion object {
const val SECOND_DISPLAY = 2
- private val STABLE_BOUNDS = Rect(0, 0, 1000, 1000)
+ val STABLE_BOUNDS = Rect(0, 0, 1000, 1000)
+ const val MAX_TASK_LIMIT = 6
}
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
index 8d9fd9166050..70f3bf8828fa 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksLimiterTest.kt
@@ -38,6 +38,7 @@ import com.android.wm.shell.transition.TransitionInfoBuilder
import com.android.wm.shell.transition.Transitions
import com.android.wm.shell.util.StubTransaction
import com.google.common.truth.Truth.assertThat
+import kotlin.test.assertFailsWith
import org.junit.After
import org.junit.Before
import org.junit.Rule
@@ -77,8 +78,8 @@ class DesktopTasksLimiterTest : ShellTestCase() {
desktopTaskRepo = DesktopModeTaskRepository()
- desktopTasksLimiter = DesktopTasksLimiter(
- transitions, desktopTaskRepo, shellTaskOrganizer)
+ desktopTasksLimiter =
+ DesktopTasksLimiter(transitions, desktopTaskRepo, shellTaskOrganizer, MAX_TASK_LIMIT)
}
@After
@@ -86,12 +87,18 @@ class DesktopTasksLimiterTest : ShellTestCase() {
mockitoSession.finishMocking()
}
- // Currently, the task limit can be overridden through an adb flag. This test ensures the limit
- // hasn't been overridden.
@Test
- fun getMaxTaskLimit_isSameAsConstant() {
- assertThat(desktopTasksLimiter.getMaxTaskLimit()).isEqualTo(
- DesktopModeStatus.DEFAULT_MAX_TASK_LIMIT)
+ fun createDesktopTasksLimiter_withZeroLimit_shouldThrow() {
+ assertFailsWith<IllegalArgumentException> {
+ DesktopTasksLimiter(transitions, desktopTaskRepo, shellTaskOrganizer, 0)
+ }
+ }
+
+ @Test
+ fun createDesktopTasksLimiter_withNegativeLimit_shouldThrow() {
+ assertFailsWith<IllegalArgumentException> {
+ DesktopTasksLimiter(transitions, desktopTaskRepo, shellTaskOrganizer, -5)
+ }
}
@Test
@@ -247,8 +254,7 @@ class DesktopTasksLimiterTest : ShellTestCase() {
@Test
fun addAndGetMinimizeTaskChangesIfNeeded_tasksWithinLimit_noTaskMinimized() {
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
- (1..<taskLimit).forEach { _ -> setUpFreeformTask() }
+ (1..<MAX_TASK_LIMIT).forEach { _ -> setUpFreeformTask() }
val wct = WindowContainerTransaction()
val minimizedTaskId =
@@ -263,9 +269,8 @@ class DesktopTasksLimiterTest : ShellTestCase() {
@Test
fun addAndGetMinimizeTaskChangesIfNeeded_tasksAboveLimit_backTaskMinimized() {
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
// The following list will be ordered bottom -> top, as the last task is moved to top last.
- val tasks = (1..taskLimit).map { setUpFreeformTask() }
+ val tasks = (1..MAX_TASK_LIMIT).map { setUpFreeformTask() }
val wct = WindowContainerTransaction()
val minimizedTaskId =
@@ -282,8 +287,7 @@ class DesktopTasksLimiterTest : ShellTestCase() {
@Test
fun addAndGetMinimizeTaskChangesIfNeeded_nonMinimizedTasksWithinLimit_noTaskMinimized() {
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
- val tasks = (1..taskLimit).map { setUpFreeformTask() }
+ val tasks = (1..MAX_TASK_LIMIT).map { setUpFreeformTask() }
desktopTaskRepo.minimizeTask(displayId = DEFAULT_DISPLAY, taskId = tasks[0].taskId)
val wct = WindowContainerTransaction()
@@ -299,8 +303,7 @@ class DesktopTasksLimiterTest : ShellTestCase() {
@Test
fun getTaskToMinimizeIfNeeded_tasksWithinLimit_returnsNull() {
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
- val tasks = (1..taskLimit).map { setUpFreeformTask() }
+ val tasks = (1..MAX_TASK_LIMIT).map { setUpFreeformTask() }
val minimizedTask = desktopTasksLimiter.getTaskToMinimizeIfNeeded(
visibleFreeformTaskIdsOrderedFrontToBack = tasks.map { it.taskId })
@@ -310,8 +313,7 @@ class DesktopTasksLimiterTest : ShellTestCase() {
@Test
fun getTaskToMinimizeIfNeeded_tasksAboveLimit_returnsBackTask() {
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
- val tasks = (1..taskLimit + 1).map { setUpFreeformTask() }
+ val tasks = (1..MAX_TASK_LIMIT + 1).map { setUpFreeformTask() }
val minimizedTask = desktopTasksLimiter.getTaskToMinimizeIfNeeded(
visibleFreeformTaskIdsOrderedFrontToBack = tasks.map { it.taskId })
@@ -321,9 +323,21 @@ class DesktopTasksLimiterTest : ShellTestCase() {
}
@Test
+ fun getTaskToMinimizeIfNeeded_tasksAboveLimit_otherLimit_returnsBackTask() {
+ desktopTasksLimiter =
+ DesktopTasksLimiter(transitions, desktopTaskRepo, shellTaskOrganizer, MAX_TASK_LIMIT2)
+ val tasks = (1..MAX_TASK_LIMIT2 + 1).map { setUpFreeformTask() }
+
+ val minimizedTask = desktopTasksLimiter.getTaskToMinimizeIfNeeded(
+ visibleFreeformTaskIdsOrderedFrontToBack = tasks.map { it.taskId })
+
+ // first == front, last == back
+ assertThat(minimizedTask).isEqualTo(tasks.last())
+ }
+
+ @Test
fun getTaskToMinimizeIfNeeded_withNewTask_tasksAboveLimit_returnsBackTask() {
- val taskLimit = desktopTasksLimiter.getMaxTaskLimit()
- val tasks = (1..taskLimit).map { setUpFreeformTask() }
+ val tasks = (1..MAX_TASK_LIMIT).map { setUpFreeformTask() }
val minimizedTask = desktopTasksLimiter.getTaskToMinimizeIfNeeded(
visibleFreeformTaskIdsOrderedFrontToBack = tasks.map { it.taskId },
@@ -358,4 +372,9 @@ class DesktopTasksLimiterTest : ShellTestCase() {
visible = false
)
}
+
+ private companion object {
+ const val MAX_TASK_LIMIT = 6
+ const val MAX_TASK_LIMIT2 = 9
+ }
}
diff --git a/libs/androidfw/Android.bp b/libs/androidfw/Android.bp
index 2fff4f5e9f7c..a39f30bbad1f 100644
--- a/libs/androidfw/Android.bp
+++ b/libs/androidfw/Android.bp
@@ -44,6 +44,9 @@ cc_defaults {
"-Werror",
"-Wunreachable-code",
],
+ header_libs: [
+ "native_headers",
+ ],
target: {
windows: {
// The Windows compiler warns incorrectly for value initialization with {}.
diff --git a/libs/hwui/jni/ImageDecoder.cpp b/libs/hwui/jni/ImageDecoder.cpp
index 6744c6c0b9ec..aebc4db37898 100644
--- a/libs/hwui/jni/ImageDecoder.cpp
+++ b/libs/hwui/jni/ImageDecoder.cpp
@@ -162,8 +162,8 @@ static jobject native_create(JNIEnv* env, std::unique_ptr<SkStream> stream,
static jobject ImageDecoder_nCreateFd(JNIEnv* env, jobject /*clazz*/,
jobject fileDescriptor, jlong length, jboolean preferAnimation, jobject source) {
-#ifndef __ANDROID__ // LayoutLib for Windows does not support F_DUPFD_CLOEXEC
- return throw_exception(env, kSourceException, "Only supported on Android", nullptr, source);
+#ifdef _WIN32 // LayoutLib for Windows does not support F_DUPFD_CLOEXEC
+ return throw_exception(env, kSourceException, "Not supported on Windows", nullptr, source);
#else
int descriptor = jniGetFDFromFileDescriptor(env, fileDescriptor);
diff --git a/media/jni/android_media_ImageWriter.cpp b/media/jni/android_media_ImageWriter.cpp
index f64233fb9c79..6776f611559c 100644
--- a/media/jni/android_media_ImageWriter.cpp
+++ b/media/jni/android_media_ImageWriter.cpp
@@ -24,7 +24,6 @@
#include <utils/String8.h>
#include <utils/Thread.h>
-#include <gui/IProducerListener.h>
#include <gui/Surface.h>
#include <ui/PublicFormat.h>
#include <android_runtime/AndroidRuntime.h>
@@ -65,15 +64,18 @@ static struct {
// ----------------------------------------------------------------------------
-class JNIImageWriterContext : public BnProducerListener {
+class JNIImageWriterContext : public SurfaceListener {
public:
JNIImageWriterContext(JNIEnv* env, jobject weakThiz, jclass clazz);
virtual ~JNIImageWriterContext();
- // Implementation of IProducerListener, used to notify the ImageWriter that the consumer
+ // Implementation of SurfaceListener, used to notify the ImageWriter that the consumer
// has returned a buffer and it is ready for ImageWriter to dequeue.
virtual void onBufferReleased();
+ virtual bool needsReleaseNotify() override { return true; };
+ virtual void onBuffersDiscarded(const std::vector<sp<GraphicBuffer>>& /*buffers*/) override {};
+ virtual void onBufferDetached(int /*slot*/) override {};
void setProducer(const sp<Surface>& producer) { mProducer = producer; }
Surface* getProducer() { return mProducer.get(); }
diff --git a/packages/CompanionDeviceManager/res/values-es-rUS/strings.xml b/packages/CompanionDeviceManager/res/values-es-rUS/strings.xml
index 15d97af5ce0d..5ae0c2bfca31 100644
--- a/packages/CompanionDeviceManager/res/values-es-rUS/strings.xml
+++ b/packages/CompanionDeviceManager/res/values-es-rUS/strings.xml
@@ -39,7 +39,7 @@
<string name="helper_summary_computer" msgid="8774832742608187072">"<xliff:g id="APP_NAME">%1$s</xliff:g> solicita tu permiso en nombre de <xliff:g id="DISPLAY_NAME">%2$s</xliff:g> para acceder a las fotos, el contenido multimedia y las notificaciones de tu teléfono"</string>
<string name="title_nearby_device_streaming" msgid="7269956847378799794">"¿Permites que &lt;strong&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/strong&gt; realice esta acción?"</string>
<string name="title_nearby_device_streaming_with_mirroring" msgid="242855799919611657">"¿Quieres permitir que &lt;strong&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/strong&gt; transmita funciones del sistema y apps del teléfono?"</string>
- <string name="summary_nearby_device_streaming" msgid="4039565463149145573">"%1$s tendrá acceso a todo el contenido visible o que se reproduzca en tu teléfono, lo que incluye audio, fotos, información de pago, contraseñas y mensajes.&lt;br/&gt;&lt;br/&gt;%1$s podrá transmitir apps y funciones del sistema, a menos que se quiete el acceso a este permiso."</string>
+ <string name="summary_nearby_device_streaming" msgid="4039565463149145573">"%1$s tendrá acceso a todo el contenido visible o que se reproduzca en tu teléfono, lo que incluye audio, fotos, información de pago, contraseñas y mensajes.&lt;br/&gt;&lt;br/&gt;%1$s podrá transmitir apps y funciones del sistema, a menos que se quite el acceso a este permiso."</string>
<string name="helper_summary_nearby_device_streaming" msgid="2063965070936844876">"<xliff:g id="APP_NAME">%1$s</xliff:g> está solicitando permiso en nombre de tu <xliff:g id="DEVICE_NAME">%2$s</xliff:g> para transmitir apps y otras funciones del sistema a dispositivos cercanos"</string>
<string name="profile_name_generic" msgid="6851028682723034988">"dispositivo"</string>
<string name="summary_generic" msgid="1761976003668044801">"Esta app podrá sincronizar información, como el nombre de la persona que llama, entre el teléfono y el dispositivo elegido"</string>
diff --git a/packages/InputDevices/res/values-af/strings.xml b/packages/InputDevices/res/values-af/strings.xml
index eafe04265ce9..cd9d915d87fd 100644
--- a/packages/InputDevices/res/values-af/strings.xml
+++ b/packages/InputDevices/res/values-af/strings.xml
@@ -54,8 +54,6 @@
<string name="keyboard_layout_thai_pattachote" msgid="2547992342794252205">"Thais (Pattachote)"</string>
<string name="keyboard_layout_serbian_latin" msgid="3128791759390046571">"Serwies (Latyns)"</string>
<string name="keyboard_layout_montenegrin_latin" msgid="1467832503378949945">"Montenegryns (Latyns)"</string>
- <!-- no translation found for keyboard_layout_serbian_cyrillic (7013541044323542196) -->
- <skip />
- <!-- no translation found for keyboard_layout_montenegrin_cyrillic (2391253952894077421) -->
- <skip />
+ <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serwies (Cyrillies)"</string>
+ <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegryns (Cyrillies)"</string>
</resources>
diff --git a/packages/InputDevices/res/values-gl/strings.xml b/packages/InputDevices/res/values-gl/strings.xml
index 46161682547f..058dba52e17b 100644
--- a/packages/InputDevices/res/values-gl/strings.xml
+++ b/packages/InputDevices/res/values-gl/strings.xml
@@ -54,8 +54,6 @@
<string name="keyboard_layout_thai_pattachote" msgid="2547992342794252205">"Tailandés (pattachote)"</string>
<string name="keyboard_layout_serbian_latin" msgid="3128791759390046571">"Serbio (alfabeto latino)"</string>
<string name="keyboard_layout_montenegrin_latin" msgid="1467832503378949945">"Montenegrino (alfabeto latino)"</string>
- <!-- no translation found for keyboard_layout_serbian_cyrillic (7013541044323542196) -->
- <skip />
- <!-- no translation found for keyboard_layout_montenegrin_cyrillic (2391253952894077421) -->
- <skip />
+ <string name="keyboard_layout_serbian_cyrillic" msgid="7013541044323542196">"Serbio (cirílico)"</string>
+ <string name="keyboard_layout_montenegrin_cyrillic" msgid="2391253952894077421">"Montenegrino (cirílico)"</string>
</resources>
diff --git a/packages/PackageInstaller/res/values-fr-rCA-feminine/strings.xml b/packages/PackageInstaller/res/values-fr-rCA-feminine/strings.xml
new file mode 100644
index 000000000000..19d3ec725f9b
--- /dev/null
+++ b/packages/PackageInstaller/res/values-fr-rCA-feminine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="install_apps_user_restriction_dlg_text" msgid="2154119597001074022">"Cette utilisatrice n\'est pas autorisée à installer des applis"</string>
+ <string name="user_is_not_allowed_dlg_text" msgid="3468447791330611681">"L\'utilisatrice actuelle n\'est pas autorisée à effectuer cette désinstallation."</string>
+</resources>
diff --git a/packages/PackageInstaller/res/values-fr-rCA-masculine/strings.xml b/packages/PackageInstaller/res/values-fr-rCA-masculine/strings.xml
new file mode 100644
index 000000000000..2c5234bf533b
--- /dev/null
+++ b/packages/PackageInstaller/res/values-fr-rCA-masculine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="install_apps_user_restriction_dlg_text" msgid="2154119597001074022">"Cet utilisateur n\'est pas autorisé à installer des applis"</string>
+ <string name="user_is_not_allowed_dlg_text" msgid="3468447791330611681">"L\'utilisateur actuel n\'est pas autorisé à effectuer cette désinstallation."</string>
+</resources>
diff --git a/packages/PackageInstaller/res/values-fr-rCA-neuter/strings.xml b/packages/PackageInstaller/res/values-fr-rCA-neuter/strings.xml
new file mode 100644
index 000000000000..6a818b38b908
--- /dev/null
+++ b/packages/PackageInstaller/res/values-fr-rCA-neuter/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="install_apps_user_restriction_dlg_text" msgid="2154119597001074022">"L\'utilisateur·trice n\'est pas autorisé·e à installer des applis"</string>
+ <string name="user_is_not_allowed_dlg_text" msgid="3468447791330611681">"L\'utilisateur·trice actuel·le n\'est pas autorisé·e à effectuer cette désinstallation."</string>
+</resources>
diff --git a/packages/PackageInstaller/res/values-fr-rCA/strings.xml b/packages/PackageInstaller/res/values-fr-rCA/strings.xml
index 2e423396fbd8..64022b979300 100644
--- a/packages/PackageInstaller/res/values-fr-rCA/strings.xml
+++ b/packages/PackageInstaller/res/values-fr-rCA/strings.xml
@@ -51,7 +51,7 @@
<string name="out_of_space_dlg_text" msgid="8727714096031856231">"Impossible d\'installer <xliff:g id="APP_NAME">%1$s</xliff:g>. Veuillez libérer de l\'espace, puis réessayer."</string>
<string name="app_not_found_dlg_title" msgid="5107924008597470285">"Appli non trouvée"</string>
<string name="app_not_found_dlg_text" msgid="5219983779377811611">"L\'appli ne figure pas dans la liste des applis installées."</string>
- <string name="user_is_not_allowed_dlg_title" msgid="6915293433252210232">"Non autorisée"</string>
+ <string name="user_is_not_allowed_dlg_title" msgid="6915293433252210232">"Non autorisé"</string>
<string name="user_is_not_allowed_dlg_text" msgid="3468447791330611681">"L\'utilisateur actuel n\'est pas autorisé à effectuer cette désinstallation."</string>
<string name="generic_error_dlg_title" msgid="5863195085927067752">"Erreur"</string>
<string name="generic_error_dlg_text" msgid="5287861443265795232">"L\'appli n\'a pas pu être désinstallée."</string>
@@ -98,9 +98,9 @@
<string name="untrusted_external_source_warning" product="tv" msgid="7057271609532508035">"À des fins de sécurité, l\'installation d\'applis inconnues provenant de cette source n\'est pas autorisée sur ce téléviseur. Vous pouvez modifier cette option dans les paramètres."</string>
<string name="untrusted_external_source_warning" product="watch" msgid="7195163388090818636">"À des fins de sécurité, l\'installation d\'applis inconnues provenant de cette source n\'est pas autorisée sur cette montre. Vous pouvez modifier cette option dans les paramètres."</string>
<string name="untrusted_external_source_warning" product="default" msgid="8444191224459138919">"À des fins de sécurité, l\'installation d\'applis inconnues provenant de cette source n\'est pas autorisée sur ce téléphone. Vous pouvez modifier cette option dans les paramètres."</string>
- <string name="anonymous_source_warning" product="default" msgid="2784902545920822500">"Votre téléphone et vos données personnelles sont plus vulnérables aux attaques provenant d\'applis inconnues. En installant cette appli, vous acceptez d\'être le seul responsable de tout dommage causé à votre téléphone ou de toute perte de données pouvant découler de l\'utilisation de telles applis."</string>
- <string name="anonymous_source_warning" product="tablet" msgid="3939101621438855516">"Votre tablette et vos données personnelles sont plus vulnérables aux attaques provenant d\'applis inconnues. En installant cette appli, vous acceptez d\'être le seul responsable de tout dommage causé à votre tablette ou de toute perte de données pouvant découler de l\'utilisation de telles applis."</string>
- <string name="anonymous_source_warning" product="tv" msgid="5599483539528168566">"Votre téléviseur et vos données personnelles sont plus vulnérables aux attaques d\'applis inconnues. En installant cette appli, vous acceptez d\'être le seul responsable de tout dommage causé à votre téléviseur ou de toute perte de données pouvant découler de son utilisation."</string>
+ <string name="anonymous_source_warning" product="default" msgid="2784902545920822500">"Votre téléphone et vos données personnelles sont plus vulnérables aux attaques provenant d\'applis inconnues. En installant cette appli, vous acceptez d\'être l\'unique responsable de tout dommage causé à votre téléphone ou de toute perte de données pouvant découler de l\'utilisation de telles applis."</string>
+ <string name="anonymous_source_warning" product="tablet" msgid="3939101621438855516">"Votre tablette et vos données personnelles sont plus vulnérables aux attaques provenant d\'applis inconnues. En installant cette appli, vous acceptez d\'être l\'unique responsable de tout dommage causé à votre tablette ou de toute perte de données pouvant découler de l\'utilisation de telles applis."</string>
+ <string name="anonymous_source_warning" product="tv" msgid="5599483539528168566">"Votre téléviseur et vos données personnelles sont plus vulnérables aux attaques d\'applis inconnues. En installant cette appli, vous acceptez d\'être l\'unique responsable de tout dommage causé à votre téléviseur ou de toute perte de données pouvant découler de son utilisation."</string>
<string name="cloned_app_label" msgid="7503612829833756160">"Clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
<string name="archiving_app_label" msgid="1127085259724124725">"Archiver <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>?"</string>
<string name="anonymous_source_continue" msgid="4375745439457209366">"Continuer"</string>
diff --git a/packages/PackageInstaller/res/values-it-feminine/strings.xml b/packages/PackageInstaller/res/values-it-feminine/strings.xml
new file mode 100644
index 000000000000..b1c9179bee2c
--- /dev/null
+++ b/packages/PackageInstaller/res/values-it-feminine/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="install_apps_user_restriction_dlg_text" msgid="2154119597001074022">"L\'utente non è autorizzata a installare app"</string>
+</resources>
diff --git a/packages/PackageInstaller/res/values-it-masculine/strings.xml b/packages/PackageInstaller/res/values-it-masculine/strings.xml
new file mode 100644
index 000000000000..598d7e6e3855
--- /dev/null
+++ b/packages/PackageInstaller/res/values-it-masculine/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="install_apps_user_restriction_dlg_text" msgid="2154119597001074022">"L\'utente non è autorizzato a installare app"</string>
+</resources>
diff --git a/packages/PackageInstaller/res/values-it-neuter/strings.xml b/packages/PackageInstaller/res/values-it-neuter/strings.xml
new file mode 100644
index 000000000000..ae1b92e78817
--- /dev/null
+++ b/packages/PackageInstaller/res/values-it-neuter/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="install_apps_user_restriction_dlg_text" msgid="2154119597001074022">"L\'utente non è autorizzatə a installare app"</string>
+</resources>
diff --git a/packages/PackageInstaller/res/values-it/strings.xml b/packages/PackageInstaller/res/values-it/strings.xml
index 20fc299edd01..1561e790ff2e 100644
--- a/packages/PackageInstaller/res/values-it/strings.xml
+++ b/packages/PackageInstaller/res/values-it/strings.xml
@@ -42,7 +42,7 @@
<string name="launch" msgid="3952550563999890101">"Apri"</string>
<string name="unknown_apps_admin_dlg_text" msgid="4456572224020176095">"L\'amministratore non consente l\'installazione di app ottenute da origini sconosciute"</string>
<string name="unknown_apps_user_restriction_dlg_text" msgid="151020786933988344">"Questo utente non può installare app sconosciute"</string>
- <string name="install_apps_user_restriction_dlg_text" msgid="2154119597001074022">"L\'utente non è autorizzato a installare app"</string>
+ <string name="install_apps_user_restriction_dlg_text" msgid="2154119597001074022">"L\'utente non dispone dell\'autorizzazione a installare app"</string>
<string name="ok" msgid="7871959885003339302">"OK"</string>
<string name="archive" msgid="4447791830199354721">"Archivia"</string>
<string name="update_anyway" msgid="8792432341346261969">"Aggiorna comunque"</string>
diff --git a/packages/PrintSpooler/res/values-es-rUS/strings.xml b/packages/PrintSpooler/res/values-es-rUS/strings.xml
index 476614b1a60d..9f88f144a77e 100644
--- a/packages/PrintSpooler/res/values-es-rUS/strings.xml
+++ b/packages/PrintSpooler/res/values-es-rUS/strings.xml
@@ -56,9 +56,9 @@
<string name="print_select_printer" msgid="7388760939873368698">"Seleccionar impresora"</string>
<string name="print_forget_printer" msgid="5035287497291910766">"No recordar impresora"</string>
<plurals name="print_search_result_count_utterance" formatted="false" msgid="6997663738361080868">
- <item quantity="many">Se encontraron <xliff:g id="COUNT_1">%1$s</xliff:g> impresoras.</item>
- <item quantity="other">Se encontraron <xliff:g id="COUNT_1">%1$s</xliff:g> impresoras.</item>
- <item quantity="one">Se encontró <xliff:g id="COUNT_0">%1$s</xliff:g> impresora.</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%1$s</xliff:g> de impresoras encontradas</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%1$s</xliff:g> impresoras encontradas</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%1$s</xliff:g> impresora encontrada</item>
</plurals>
<string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
<string name="printer_info_desc" msgid="7181988788991581654">"Más información sobre esta impresora"</string>
@@ -77,9 +77,9 @@
<string name="disabled_services_title" msgid="7313253167968363211">"Servicios inhabilitados"</string>
<string name="all_services_title" msgid="5578662754874906455">"Todos los servicios"</string>
<plurals name="print_services_recommendation_subtitle" formatted="false" msgid="5678487708807185138">
- <item quantity="many">Instala para ver <xliff:g id="COUNT_1">%1$s</xliff:g> impresoras</item>
- <item quantity="other">Instala para ver <xliff:g id="COUNT_1">%1$s</xliff:g> impresoras</item>
- <item quantity="one">Instala para ver <xliff:g id="COUNT_0">%1$s</xliff:g> impresora</item>
+ <item quantity="many">Instala para descubrir <xliff:g id="COUNT_1">%1$s</xliff:g> de impresoras</item>
+ <item quantity="other">Instala para descubrir <xliff:g id="COUNT_1">%1$s</xliff:g> impresoras</item>
+ <item quantity="one">Instala para descubrir <xliff:g id="COUNT_0">%1$s</xliff:g> impresora</item>
</plurals>
<string name="printing_notification_title_template" msgid="295903957762447362">"Imprimiendo <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Cancelando <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
diff --git a/packages/PrintSpooler/res/values-es/strings.xml b/packages/PrintSpooler/res/values-es/strings.xml
index 507b2a7a8f25..104a1bf578a0 100644
--- a/packages/PrintSpooler/res/values-es/strings.xml
+++ b/packages/PrintSpooler/res/values-es/strings.xml
@@ -56,9 +56,9 @@
<string name="print_select_printer" msgid="7388760939873368698">"Seleccionar impresora"</string>
<string name="print_forget_printer" msgid="5035287497291910766">"Olvidar impresora"</string>
<plurals name="print_search_result_count_utterance" formatted="false" msgid="6997663738361080868">
- <item quantity="many">Se han encontrado <xliff:g id="COUNT_1">%1$s</xliff:g> impresoras</item>
- <item quantity="other">Se han encontrado <xliff:g id="COUNT_1">%1$s</xliff:g> impresoras</item>
- <item quantity="one">Se ha encontrado <xliff:g id="COUNT_0">%1$s</xliff:g> impresora</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%1$s</xliff:g> impresoras encontradas</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%1$s</xliff:g> impresoras encontradas</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%1$s</xliff:g> impresora encontrada</item>
</plurals>
<string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
<string name="printer_info_desc" msgid="7181988788991581654">"Más información sobre esta impresora"</string>
diff --git a/packages/PrintSpooler/res/values-fr-rCA/strings.xml b/packages/PrintSpooler/res/values-fr-rCA/strings.xml
index c2b82afa238a..fb885574449c 100644
--- a/packages/PrintSpooler/res/values-fr-rCA/strings.xml
+++ b/packages/PrintSpooler/res/values-fr-rCA/strings.xml
@@ -56,9 +56,9 @@
<string name="print_select_printer" msgid="7388760939873368698">"Sélectionner une imprimante"</string>
<string name="print_forget_printer" msgid="5035287497291910766">"Supprimer l\'imprimante"</string>
<plurals name="print_search_result_count_utterance" formatted="false" msgid="6997663738361080868">
- <item quantity="one"><xliff:g id="COUNT_1">%1$s</xliff:g> imprimante trouvée</item>
- <item quantity="many"><xliff:g id="COUNT_1">%1$s</xliff:g> imprimante trouvées</item>
- <item quantity="other"><xliff:g id="COUNT_1">%1$s</xliff:g> imprimante trouvées</item>
+ <item quantity="one"><xliff:g id="COUNT_1">%1$s</xliff:g> imprimante trouvée</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%1$s</xliff:g> d\'imprimantes trouvées</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%1$s</xliff:g> imprimantes trouvées</item>
</plurals>
<string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
<string name="printer_info_desc" msgid="7181988788991581654">"Plus d\'information sur cette imprimante"</string>
@@ -96,7 +96,7 @@
<item msgid="2762241247228983754">"Couleur"</item>
</string-array>
<string-array name="duplex_mode_labels">
- <item msgid="3882302912790928315">"Aucune"</item>
+ <item msgid="3882302912790928315">"Aucun"</item>
<item msgid="7296563835355641719">"Bord long"</item>
<item msgid="79513688117503758">"Bord court"</item>
</string-array>
diff --git a/packages/PrintSpooler/res/values-it/strings.xml b/packages/PrintSpooler/res/values-it/strings.xml
index 2a64d3debf58..fc03e6449cf8 100644
--- a/packages/PrintSpooler/res/values-it/strings.xml
+++ b/packages/PrintSpooler/res/values-it/strings.xml
@@ -56,7 +56,7 @@
<string name="print_select_printer" msgid="7388760939873368698">"Seleziona stampante"</string>
<string name="print_forget_printer" msgid="5035287497291910766">"Elimina stampante"</string>
<plurals name="print_search_result_count_utterance" formatted="false" msgid="6997663738361080868">
- <item quantity="many"><xliff:g id="COUNT_1">%1$s</xliff:g> stampanti trovate</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%1$s</xliff:g> di stampanti trovate</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$s</xliff:g> stampanti trovate</item>
<item quantity="one"><xliff:g id="COUNT_0">%1$s</xliff:g> stampante trovata</item>
</plurals>
@@ -77,9 +77,9 @@
<string name="disabled_services_title" msgid="7313253167968363211">"Servizi disattivati"</string>
<string name="all_services_title" msgid="5578662754874906455">"Tutti i servizi"</string>
<plurals name="print_services_recommendation_subtitle" formatted="false" msgid="5678487708807185138">
- <item quantity="many">Installa per rilevare <xliff:g id="COUNT_1">%1$s</xliff:g> stampanti</item>
- <item quantity="other">Installa per rilevare <xliff:g id="COUNT_1">%1$s</xliff:g> stampanti</item>
- <item quantity="one">Installa per rilevare <xliff:g id="COUNT_0">%1$s</xliff:g> stampante</item>
+ <item quantity="many">Installa per individuare <xliff:g id="COUNT_1">%1$s</xliff:g> di stampanti</item>
+ <item quantity="other">Installa per individuare <xliff:g id="COUNT_1">%1$s</xliff:g> stampanti</item>
+ <item quantity="one">Installa per individuare <xliff:g id="COUNT_0">%1$s</xliff:g> stampante</item>
</plurals>
<string name="printing_notification_title_template" msgid="295903957762447362">"Stampa di <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
<string name="cancelling_notification_title_template" msgid="1821759594704703197">"Annullamento di <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
@@ -96,7 +96,7 @@
<item msgid="2762241247228983754">"A colori"</item>
</string-array>
<string-array name="duplex_mode_labels">
- <item msgid="3882302912790928315">"Nessuno"</item>
+ <item msgid="3882302912790928315">"Nessuna"</item>
<item msgid="7296563835355641719">"Lato lungo"</item>
<item msgid="79513688117503758">"Lato corto"</item>
</string-array>
diff --git a/packages/SettingsLib/ProfileSelector/res/values-fr-rCA/strings.xml b/packages/SettingsLib/ProfileSelector/res/values-fr-rCA/strings.xml
index c9ba591a9aeb..0e74e4d3dc77 100644
--- a/packages/SettingsLib/ProfileSelector/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/ProfileSelector/res/values-fr-rCA/strings.xml
@@ -18,6 +18,6 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="settingslib_category_personal" msgid="1142302328104700620">"Personnel"</string>
- <string name="settingslib_category_work" msgid="4867750733682444676">"Professionnel"</string>
+ <string name="settingslib_category_work" msgid="4867750733682444676">"Profil professionnel"</string>
<string name="settingslib_category_private" msgid="5039276873477591386">"Privé"</string>
</resources>
diff --git a/packages/SettingsLib/SearchWidget/res/values-fa/strings.xml b/packages/SettingsLib/SearchWidget/res/values-fa/strings.xml
index 2c9aaa5e9f95..2babdd8a54f0 100644
--- a/packages/SettingsLib/SearchWidget/res/values-fa/strings.xml
+++ b/packages/SettingsLib/SearchWidget/res/values-fa/strings.xml
@@ -17,5 +17,5 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="search_menu" msgid="1914043873178389845">"تنظیمات جستجو"</string>
+ <string name="search_menu" msgid="1914043873178389845">"جستجوی «تنظیمات»"</string>
</resources>
diff --git a/packages/SettingsLib/SpaPrivileged/res/values-fr-rCA/strings.xml b/packages/SettingsLib/SpaPrivileged/res/values-fr-rCA/strings.xml
index 7e73c4816cc2..433d6d5a293e 100644
--- a/packages/SettingsLib/SpaPrivileged/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/SpaPrivileged/res/values-fr-rCA/strings.xml
@@ -20,7 +20,7 @@
<string name="no_applications" msgid="5800789569715871963">"Aucune appli"</string>
<string name="menu_show_system" msgid="906304605807554788">"Afficher le système"</string>
<string name="menu_hide_system" msgid="374571689914923020">"Masquer le système"</string>
- <string name="app_permission_summary_allowed" msgid="6115213465364138103">"Autorisé"</string>
+ <string name="app_permission_summary_allowed" msgid="6115213465364138103">"Autorisée"</string>
<string name="app_permission_summary_not_allowed" msgid="58396132188553920">"Non autorisée"</string>
<string name="version_text" msgid="4001669804596458577">"version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
<string name="cloned_app_info_label" msgid="1765651167024478391">"Clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
diff --git a/packages/SettingsLib/aconfig/settingslib.aconfig b/packages/SettingsLib/aconfig/settingslib.aconfig
index 403e219f3467..83a986b1aa76 100644
--- a/packages/SettingsLib/aconfig/settingslib.aconfig
+++ b/packages/SettingsLib/aconfig/settingslib.aconfig
@@ -112,3 +112,10 @@ flag {
purpose: PURPOSE_BUGFIX
}
}
+
+flag {
+ name: "settings_catalyst"
+ namespace: "android_settings"
+ description: "Settings catalyst project migration"
+ bug: "323791114"
+} \ No newline at end of file
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 3da23c82c1d3..287dfae33280 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -408,18 +408,12 @@
<string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"‏السماح بتحميل طبقات تصحيح أخطاء GPU لتطبيقات تصحيح الأخطاء"</string>
<string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"تفعيل التسجيل المطوَّل للمورّد"</string>
<string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"تضمين سجلات المورّدين الإضافية الخاصة بالجهاز في تقارير الخطأ، والتي قد تحتوي على معلومات شخصية و/أو تستهلك المزيد من شحن البطارية و/أو تستهلك المزيد من مساحة التخزين"</string>
- <!-- no translation found for enable_verbose_vendor_logging_checkbox (3864578373293835530) -->
- <skip />
- <!-- no translation found for verbose_vendor_logging_notification_title (6811217272559843592) -->
- <skip />
- <!-- no translation found for verbose_vendor_logging_notification_summary (5226524769774370942) -->
- <skip />
- <!-- no translation found for verbose_vendor_logging_notification_action (1190831050259046071) -->
- <skip />
- <!-- no translation found for verbose_vendor_logging_preference_summary_will_disable (6175431593394522553) -->
- <skip />
- <!-- no translation found for verbose_vendor_logging_preference_summary_on (9017757242481762036) -->
- <skip />
+ <string name="enable_verbose_vendor_logging_checkbox" msgid="3864578373293835530">"الإيقاف بعد يوم واحد"</string>
+ <string name="verbose_vendor_logging_notification_title" msgid="6811217272559843592">"انتهى التسجيل المطوّل للمورِّد"</string>
+ <string name="verbose_vendor_logging_notification_summary" msgid="5226524769774370942">"تم التفعيل لمدة يوم واحد"</string>
+ <string name="verbose_vendor_logging_notification_action" msgid="1190831050259046071">"التفعيل لمدة يوم واحد إضافي"</string>
+ <string name="verbose_vendor_logging_preference_summary_will_disable" msgid="6175431593394522553">"سيتم الإيقاف بعد يوم واحد"</string>
+ <string name="verbose_vendor_logging_preference_summary_on" msgid="9017757242481762036">"تم التفعيل لأجل غير مسمى"</string>
<string name="window_animation_scale_title" msgid="5236381298376812508">"حجم الرسوم المتحركة للنافذة"</string>
<string name="transition_animation_scale_title" msgid="1278477690695439337">"حجم الرسوم المتحركة للنقل"</string>
<string name="animator_duration_scale_title" msgid="7082913931326085176">"طول مدة الرسوم المتحركة"</string>
diff --git a/packages/SettingsLib/res/values-es-rUS-feminine/strings.xml b/packages/SettingsLib/res/values-es-rUS-feminine/strings.xml
new file mode 100644
index 000000000000..b2b48596bf2f
--- /dev/null
+++ b/packages/SettingsLib/res/values-es-rUS-feminine/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 2015 The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="delete_blob_confirmation_text" msgid="7807446938920827280">"¿Segura que quieres borrar estos datos compartidos?"</string>
+</resources>
diff --git a/packages/SettingsLib/res/values-es-rUS-masculine/strings.xml b/packages/SettingsLib/res/values-es-rUS-masculine/strings.xml
new file mode 100644
index 000000000000..f7c792a46635
--- /dev/null
+++ b/packages/SettingsLib/res/values-es-rUS-masculine/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 2015 The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="delete_blob_confirmation_text" msgid="7807446938920827280">"¿Seguro que quieres borrar estos datos compartidos?"</string>
+</resources>
diff --git a/packages/SettingsLib/res/values-es-rUS-neuter/strings.xml b/packages/SettingsLib/res/values-es-rUS-neuter/strings.xml
new file mode 100644
index 000000000000..4bf39a723764
--- /dev/null
+++ b/packages/SettingsLib/res/values-es-rUS-neuter/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 2015 The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="delete_blob_confirmation_text" msgid="7807446938920827280">"¿Confirmas que quieres borrar estos datos compartidos?"</string>
+</resources>
diff --git a/packages/SettingsLib/res/values-es-rUS/arrays.xml b/packages/SettingsLib/res/values-es-rUS/arrays.xml
index 4d4d7c9be0e3..541f4db7e691 100644
--- a/packages/SettingsLib/res/values-es-rUS/arrays.xml
+++ b/packages/SettingsLib/res/values-es-rUS/arrays.xml
@@ -40,7 +40,7 @@
<item msgid="8339720953594087771">"Conectando a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
<item msgid="3028983857109369308">"Autenticando con <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
<item msgid="4287401332778341890">"Obteniendo dirección IP de <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
- <item msgid="1043944043827424501">"Conectado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
+ <item msgid="1043944043827424501">"Se estableció conexión con <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
<item msgid="7445993821842009653">"Suspendido"</item>
<item msgid="1175040558087735707">"Desconectando de <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
<item msgid="699832486578171722">"Desconectado"</item>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 2cf0fe317cb6..8b228330cb6e 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -62,7 +62,7 @@
<string name="wifi_no_internet" msgid="1774198889176926299">"No hay acceso a Internet"</string>
<string name="saved_network" msgid="7143698034077223645">"Guardada por <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="connected_via_network_scorer" msgid="7665725527352893558">"Conexión automática mediante %1$s"</string>
- <string name="connected_via_network_scorer_default" msgid="7973529709744526285">"Conectado automáticamente mediante proveedor de calificación de red"</string>
+ <string name="connected_via_network_scorer_default" msgid="7973529709744526285">"Conectado automáticamente mediante proveedor de calificación de redes"</string>
<string name="connected_via_app" msgid="3532267661404276584">"Conexión a través de <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Presiona para registrarte"</string>
<string name="wifi_connected_no_internet" msgid="5087420713443350646">"Sin Internet"</string>
@@ -137,7 +137,7 @@
<string name="bluetooth_profile_hearing_aid" msgid="2607867572569689732">"Audífonos"</string>
<string name="bluetooth_profile_le_audio" msgid="1725521360076451751">"audio de bajo consumo"</string>
<string name="bluetooth_hearing_aid_profile_summary_connected" msgid="5757754050938807276">"Conectado a audífonos"</string>
- <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Conectado a audio de bajo consumo"</string>
+ <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Conectado a LE Audio"</string>
<string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Conectado al audio multimedia"</string>
<string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Conectado al audio del dispositivo"</string>
<string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Conectado al servidor de transferencia de archivo"</string>
@@ -163,7 +163,7 @@
<string name="bluetooth_pairing_error_message" msgid="6626399020672335565">"No se pudo vincular con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_pairing_pin_error_message" msgid="264422127613704940">"No se pudo vincular con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>: llave de acceso o PIN incorrectos."</string>
<string name="bluetooth_pairing_device_down_error_message" msgid="2554424863101358857">"No se puede establecer la comunicación con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
- <string name="bluetooth_pairing_rejected_error_message" msgid="5943444352777314442">"Vínculo rechazado por <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="bluetooth_pairing_rejected_error_message" msgid="5943444352777314442">"Vinculación rechazada por <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="bluetooth_talkback_computer" msgid="3736623135703893773">"Computadora"</string>
<string name="bluetooth_talkback_headset" msgid="3406852564400882682">"Auriculares"</string>
<string name="bluetooth_talkback_phone" msgid="868393783858123880">"Teléfono"</string>
@@ -189,7 +189,7 @@
<string name="tether_settings_title_wifi" msgid="4803402057533895526">"Hotspot portátil"</string>
<string name="tether_settings_title_bluetooth" msgid="916519902721399656">"Conexión Bluetooth"</string>
<string name="tether_settings_title_usb_bluetooth" msgid="1727111807207577322">"Compartir conexión"</string>
- <string name="tether_settings_title_all" msgid="8910259483383010470">"Conexión móvil y hotspot"</string>
+ <string name="tether_settings_title_all" msgid="8910259483383010470">"Conexión/hotspot portable"</string>
<string name="managed_user_title" msgid="449081789742645723">"Todas las apps de trabajo"</string>
<string name="unknown" msgid="3544487229740637809">"Desconocido"</string>
<string name="running_process_item_user_label" msgid="3988506293099805796">"Usuario: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -279,7 +279,7 @@
<string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
<string name="bugreport_in_power" msgid="8664089072534638709">"Acceso directo para informes de errores"</string>
<string name="bugreport_in_power_summary" msgid="1885529649381831775">"Muestra un botón en el menú de encendido para realizar un informe de errores"</string>
- <string name="keep_screen_on" msgid="1187161672348797558">"Permanecer activo"</string>
+ <string name="keep_screen_on" msgid="1187161672348797558">"No desactivar"</string>
<string name="keep_screen_on_summary" msgid="1510731514101925829">"La pantalla nunca quedará inactiva mientras el dispositivo se esté cargando"</string>
<string name="bt_hci_snoop_log" msgid="7291287955649081448">"Registro de Bluetooth HCI"</string>
<string name="bt_hci_snoop_log_summary" msgid="6808538971394092284">"Capturar paquetes de Bluetooth (activa/desactiva el Bluetooth después de cambiar esta configuración)"</string>
@@ -379,12 +379,12 @@
<string name="show_touches" msgid="8437666942161289025">"Mostrar presiones"</string>
<string name="show_touches_summary" msgid="3692861665994502193">"Muestra la ubicación de las presiones en la pantalla"</string>
<string name="show_key_presses" msgid="6360141722735900214">"Ver pulsaciones de teclas"</string>
- <string name="show_key_presses_summary" msgid="725387457373015024">"Ver coment. visual para pulsac. de teclas físicas"</string>
- <string name="show_screen_updates" msgid="2078782895825535494">"Ver actualiz. de superficie"</string>
+ <string name="show_key_presses_summary" msgid="725387457373015024">"Ver comentario visual para pulsaciones de teclas físicas"</string>
+ <string name="show_screen_updates" msgid="2078782895825535494">"Mostrar actualizaciones"</string>
<string name="show_screen_updates_summary" msgid="2126932969682087406">"Destello en superficie por actualización"</string>
<string name="show_hw_screen_updates" msgid="2021286231267747506">"Mostrar cambios de vista"</string>
<string name="show_hw_screen_updates_summary" msgid="3539770072741435691">"Mostrar vistas de ventanas procesadas"</string>
- <string name="show_hw_layers_updates" msgid="5268370750002509767">"Ver actualiz. de capas de hardware"</string>
+ <string name="show_hw_layers_updates" msgid="5268370750002509767">"Act. de capas de hardware"</string>
<string name="show_hw_layers_updates_summary" msgid="5850955890493054618">"Luz verde en capas de hardware al actualizarse"</string>
<string name="debug_hw_overdraw" msgid="8944851091008756796">"Depurar superpos. de GPU"</string>
<string name="disable_overlays" msgid="4206590799671557143">"Desactivar superposición de hardware"</string>
@@ -617,7 +617,7 @@
<string name="accessor_no_description_text" msgid="7510967452505591456">"La app no proporcionó una descripción."</string>
<string name="accessor_expires_text" msgid="4625619273236786252">"La asignación de tiempo vence el <xliff:g id="DATE">%s</xliff:g>"</string>
<string name="delete_blob_text" msgid="2819192607255625697">"Borrar datos compartidos"</string>
- <string name="delete_blob_confirmation_text" msgid="7807446938920827280">"¿Seguro que quieres borrar estos datos compartidos?"</string>
+ <string name="delete_blob_confirmation_text" msgid="7807446938920827280">"¿Confirmas que quieres borrar estos datos compartidos?"</string>
<string name="user_add_user_item_summary" msgid="5748424612724703400">"Los usuarios tienen sus propias aplicaciones y contenidos."</string>
<string name="user_add_profile_item_summary" msgid="5418602404308968028">"Desde tu cuenta, puedes restringir el acceso a las aplicaciones y al contenido."</string>
<string name="user_add_user_item_title" msgid="2394272381086965029">"Usuario"</string>
@@ -636,7 +636,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 del usuario"</string>
+ <string name="user_info_settings_title" msgid="6351390762733279907">"Datos de 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/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index e012a4180eed..961c06749aab 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -81,7 +81,7 @@
<string name="speed_label_fast" msgid="2677719134596044051">"Rápida"</string>
<string name="speed_label_very_fast" msgid="8215718029533182439">"Muy rápida"</string>
<string name="wifi_passpoint_expired" msgid="6540867261754427561">"Caducada"</string>
- <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
+ <string name="preference_summary_default_combination" msgid="2644094566845577901">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
<string name="bluetooth_disconnected" msgid="7739366554710388701">"Desconectado"</string>
<string name="bluetooth_disconnecting" msgid="7638892134401574338">"Desconectando…"</string>
<string name="bluetooth_connecting" msgid="5871702668260192755">"Estableciendo conexión…"</string>
@@ -386,7 +386,7 @@
<string name="show_hw_screen_updates_summary" msgid="3539770072741435691">"Hacer parpadear las vistas dentro de las ventanas cuando se dibujan"</string>
<string name="show_hw_layers_updates" msgid="5268370750002509767">"Ver actualizaciones de capas de hardware"</string>
<string name="show_hw_layers_updates_summary" msgid="5850955890493054618">"Hacer parpadear las capas de hardware en verde cuando se actualizan"</string>
- <string name="debug_hw_overdraw" msgid="8944851091008756796">"Depurar overdraw de GPU"</string>
+ <string name="debug_hw_overdraw" msgid="8944851091008756796">"Depurar sobredibujos de GPU"</string>
<string name="disable_overlays" msgid="4206590799671557143">"Inhabilitar superposiciones de hardware"</string>
<string name="disable_overlays_summary" msgid="1954852414363338166">"Usa siempre la GPU para componer pantallas"</string>
<string name="simulate_color_space" msgid="1206503300335835151">"Simular espacio de color"</string>
@@ -420,7 +420,7 @@
<string name="overlay_display_devices_title" msgid="5411894622334469607">"Simular pantallas secundarias"</string>
<string name="debug_applications_category" msgid="5394089406638954196">"Aplicaciones"</string>
<string name="immediately_destroy_activities" msgid="1826287490705167403">"No mantener actividades"</string>
- <string name="immediately_destroy_activities_summary" msgid="6289590341144557614">"Destruye actividades cuando el usuario deja de usarlas"</string>
+ <string name="immediately_destroy_activities_summary" msgid="6289590341144557614">"Destruir actividades cuando el usuario salga de ellas"</string>
<string name="app_process_limit_title" msgid="8361367869453043007">"Límitar procesos en segundo plano"</string>
<string name="show_all_anrs" msgid="9160563836616468726">"Mostrar ANR en segundo plano"</string>
<string name="show_all_anrs_summary" msgid="8562788834431971392">"Muestra un cuadro de diálogo que informa de que la aplicación no responde en aplicaciones en segundo plano"</string>
@@ -623,7 +623,7 @@
<string name="user_add_user_item_title" msgid="2394272381086965029">"Usuario"</string>
<string name="user_add_profile_item_title" msgid="3111051717414643029">"Perfil restringido"</string>
<string name="user_add_user_title" msgid="5457079143694924885">"¿Añadir nuevo usuario?"</string>
- <string name="user_add_user_message_long" msgid="1527434966294733380">"Puedes compartir este dispositivo si creas más usuarios. Cada uno tendrá su propio espacio y podrá personalizarlo con aplicaciones, un fondo de pantalla y mucho más. Los usuarios también pueden ajustar opciones del dispositivo, como la conexión Wi‑Fi, que afectan a todos los usuarios.\n\nCuando añadas un usuario, tendrá que configurar su espacio.\n\nCualquier usuario puede actualizar aplicaciones de todos los usuarios. Es posible que no se transfieran los servicios y opciones de accesibilidad al nuevo usuario."</string>
+ <string name="user_add_user_message_long" msgid="1527434966294733380">"Puedes compartir este dispositivo si creas más usuarios. Cada uno tendrá su propio espacio y podrá personalizarlo con aplicaciones, un fondo de pantalla y más. Los usuarios también pueden ajustar opciones del dispositivo, como la conexión Wi‑Fi, que afectan a todos los usuarios.\n\nCuando añadas un usuario, tendrá que configurar su espacio.\n\nCualquier usuario puede actualizar aplicaciones de todos los usuarios. Es posible que no se transfieran los servicios y opciones de accesibilidad al nuevo usuario."</string>
<string name="user_add_user_message_short" msgid="3295959985795716166">"Al añadir un nuevo usuario, dicha persona debe configurar su espacio.\n\nCualquier usuario puede actualizar las aplicaciones del resto de los usuarios."</string>
<string name="user_grant_admin_title" msgid="5157031020083343984">"¿Convertir a este usuario en administrador?"</string>
<string name="user_grant_admin_message" msgid="1673791931033486709">"Los administradores tienen privilegios especiales que otros usuarios no tienen. Los administradores pueden gestionar todos los usuarios, actualizar o restablecer este dispositivo, modificar los ajustes, ver todas las aplicaciones instaladas y conceder o revocar privilegios de administrador a otros usuarios."</string>
@@ -641,7 +641,7 @@
<string name="user_need_lock_message" msgid="4311424336209509301">"Para poder crear un perfil restringido, debes configurar una pantalla de bloqueo que proteja tus aplicaciones y datos personales."</string>
<string name="user_set_lock_button" msgid="1427128184982594856">"Establecer bloqueo"</string>
<string name="user_switch_to_user" msgid="6975428297154968543">"Cambiar a <xliff:g id="USER_NAME">%s</xliff:g>"</string>
- <string name="creating_new_user_dialog_message" msgid="7232880257538970375">"Creando nuevo usuario…"</string>
+ <string name="creating_new_user_dialog_message" msgid="7232880257538970375">"Creando usuario…"</string>
<string name="creating_new_guest_dialog_message" msgid="1114905602181350690">"Creando nuevo invitado…"</string>
<string name="add_user_failed" msgid="4809887794313944872">"No se ha podido crear el usuario"</string>
<string name="add_guest_failed" msgid="8074548434469843443">"No se ha podido crear un nuevo invitado"</string>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index 45e70f88839d..e46d20af1993 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -62,7 +62,7 @@
<string name="wifi_no_internet" msgid="1774198889176926299">"Aucun accès à Internet"</string>
<string name="saved_network" msgid="7143698034077223645">"Enregistrés par <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="connected_via_network_scorer" msgid="7665725527352893558">"Automatiquement connecté par %1$s"</string>
- <string name="connected_via_network_scorer_default" msgid="7973529709744526285">"Connecté automatiquement par le fournisseur d\'avis sur le réseau"</string>
+ <string name="connected_via_network_scorer_default" msgid="7973529709744526285">"Connecté automatiquement par l\'utilitaire d\'évaluation des réseaux"</string>
<string name="connected_via_app" msgid="3532267661404276584">"Connecté sur le réseau <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Toucher pour vous connecter"</string>
<string name="wifi_connected_no_internet" msgid="5087420713443350646">"Aucune connexion Internet"</string>
@@ -145,7 +145,7 @@
<string name="bluetooth_sap_profile_summary_connected" msgid="1280297388033001037">"Connecté au point d\'accès au service"</string>
<string name="bluetooth_opp_profile_summary_not_connected" msgid="3959741824627764954">"Connexion au serveur de transfert de fichiers non établie"</string>
<string name="bluetooth_hid_profile_summary_connected" msgid="3923653977051684833">"Connecté au périphérique d\'entrée"</string>
- <string name="bluetooth_pan_user_profile_summary_connected" msgid="380469653827505727">"Connecté à l\'appareil pour accès Internet"</string>
+ <string name="bluetooth_pan_user_profile_summary_connected" msgid="380469653827505727">"Connecté à l\'appareil pour un accès Internet"</string>
<string name="bluetooth_pan_nap_profile_summary_connected" msgid="3744773111299503493">"Connexion Internet locale partagée avec appareil"</string>
<string name="bluetooth_pan_profile_summary_use_for" msgid="7422039765025340313">"Utiliser pour l\'accès à Internet"</string>
<string name="bluetooth_map_profile_summary_use_for" msgid="4453622103977592583">"Utiliser pour la carte"</string>
@@ -159,7 +159,7 @@
<string name="bluetooth_pairing_accept" msgid="2054232610815498004">"Associer"</string>
<string name="bluetooth_pairing_accept_all_caps" msgid="2734383073450506220">"ASSOCIER"</string>
<string name="bluetooth_pairing_decline" msgid="6483118841204885890">"Annuler"</string>
- <string name="bluetooth_pairing_will_share_phonebook" msgid="3064334458659165176">"L\'association vous permet d\'accéder à vos contacts et à l\'historique des appels lorsque vous êtes connecté."</string>
+ <string name="bluetooth_pairing_will_share_phonebook" msgid="3064334458659165176">"L\'association vous permet d\'accéder à vos contacts et à l\'historique des appels lorsque votre connexion est active."</string>
<string name="bluetooth_pairing_error_message" msgid="6626399020672335565">"Impossible d\'associer à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_pairing_pin_error_message" msgid="264422127613704940">"Impossible d\'établir l\'association avec <xliff:g id="DEVICE_NAME">%1$s</xliff:g> en raison d\'un NIP ou d\'une clé d\'accès incorrects."</string>
<string name="bluetooth_pairing_device_down_error_message" msgid="2554424863101358857">"Impossible d\'établir la communication avec <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -183,7 +183,7 @@
<string name="accessibility_wifi_security_type_secured" msgid="2399774097343238942">"Réseau sécurisé"</string>
<string name="process_kernel_label" msgid="950292573930336765">"Système d\'exploitation Android"</string>
<string name="data_usage_uninstalled_apps" msgid="1933665711856171491">"Applis supprimées"</string>
- <string name="data_usage_uninstalled_apps_users" msgid="5533981546921913295">"Applis et utilisateurs supprimés"</string>
+ <string name="data_usage_uninstalled_apps_users" msgid="5533981546921913295">"Applis et utilisateurs retirés"</string>
<string name="data_usage_ota" msgid="7984667793701597001">"Mises à jour du système"</string>
<string name="tether_settings_title_usb" msgid="3728686573430917722">"Partage de connexion par USB"</string>
<string name="tether_settings_title_wifi" msgid="4803402057533895526">"Point d\'accès Wi-Fi mobile"</string>
@@ -242,7 +242,7 @@
<string name="development_settings_title" msgid="140296922921597393">"Options pour les développeurs"</string>
<string name="development_settings_enable" msgid="4285094651288242183">"Activer les options pour les développeurs"</string>
<string name="development_settings_summary" msgid="8718917813868735095">"Définir les options pour le développement de l\'appli"</string>
- <string name="development_settings_not_available" msgid="355070198089140951">"Les options proposées aux développeurs ne sont pas disponibles pour cet utilisateur."</string>
+ <string name="development_settings_not_available" msgid="355070198089140951">"Les options pour les développeurs ne sont pas disponibles pour cet utilisateur"</string>
<string name="vpn_settings_not_available" msgid="2894137119965668920">"Les paramètres de RPV ne sont pas disponibles pour cet utilisateur"</string>
<string name="tethering_settings_not_available" msgid="266821736434699780">"Les paramètres de partage de connexion ne sont pas disponibles pour cet utilisateur"</string>
<string name="apn_settings_not_available" msgid="1147111671403342300">"Les paramètres de point d\'accès ne sont pas disponibles pour cet utilisateur"</string>
@@ -529,9 +529,9 @@
</string-array>
<string name="charge_length_format" msgid="6941645744588690932">"Il y a <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="remaining_length_format" msgid="4310625772926171089">"Temps restant : <xliff:g id="ID_1">%1$s</xliff:g>"</string>
- <string name="screen_zoom_summary_small" msgid="6050633151263074260">"Petite"</string>
+ <string name="screen_zoom_summary_small" msgid="6050633151263074260">"Petit"</string>
<string name="screen_zoom_summary_default" msgid="1888865694033865408">"Par défaut"</string>
- <string name="screen_zoom_summary_large" msgid="4706951482598978984">"Grande"</string>
+ <string name="screen_zoom_summary_large" msgid="4706951482598978984">"Grand"</string>
<string name="screen_zoom_summary_very_large" msgid="7317423942896999029">"Plus grande"</string>
<string name="screen_zoom_summary_extremely_large" msgid="1438045624562358554">"La plus grande"</string>
<string name="screen_zoom_summary_custom" msgid="3468154096832912210">"Personnalisée (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
@@ -553,7 +553,7 @@
<string name="accessibility_manual_zen_more_time" msgid="5141801092071134235">"Plus longtemps."</string>
<string name="accessibility_manual_zen_less_time" msgid="6828877595848229965">"Moins longtemps."</string>
<string name="cancel" msgid="5665114069455378395">"Annuler"</string>
- <string name="next" msgid="2699398661093607009">"Suivant"</string>
+ <string name="next" msgid="2699398661093607009">"Suivante"</string>
<string name="back" msgid="5554327870352703710">"Retour"</string>
<string name="save" msgid="3745809743277153149">"Enregistrer"</string>
<string name="okay" msgid="949938843324579502">"OK"</string>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index 4f82af38aab7..9f58bd44e883 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -408,18 +408,12 @@
<string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"Permite cargar capas de depuración da GPU para aplicacións de depuración"</string>
<string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"Activar rexistro de provedores"</string>
<string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"Inclúe outros rexistros de provedores específicos do dispositivo en informes de erros; pode conter información privada, consumir máis batería e ocupar máis espazo de almacenamento"</string>
- <!-- no translation found for enable_verbose_vendor_logging_checkbox (3864578373293835530) -->
- <skip />
- <!-- no translation found for verbose_vendor_logging_notification_title (6811217272559843592) -->
- <skip />
- <!-- no translation found for verbose_vendor_logging_notification_summary (5226524769774370942) -->
- <skip />
- <!-- no translation found for verbose_vendor_logging_notification_action (1190831050259046071) -->
- <skip />
- <!-- no translation found for verbose_vendor_logging_preference_summary_will_disable (6175431593394522553) -->
- <skip />
- <!-- no translation found for verbose_vendor_logging_preference_summary_on (9017757242481762036) -->
- <skip />
+ <string name="enable_verbose_vendor_logging_checkbox" msgid="3864578373293835530">"Desactivar despois dun día"</string>
+ <string name="verbose_vendor_logging_notification_title" msgid="6811217272559843592">"Finalizou o rexistro detallado do provedor"</string>
+ <string name="verbose_vendor_logging_notification_summary" msgid="5226524769774370942">"Activado durante un día"</string>
+ <string name="verbose_vendor_logging_notification_action" msgid="1190831050259046071">"Activar durante un día máis"</string>
+ <string name="verbose_vendor_logging_preference_summary_will_disable" msgid="6175431593394522553">"Desactívase despois dun día"</string>
+ <string name="verbose_vendor_logging_preference_summary_on" msgid="9017757242481762036">"Desactivado indefinidamente"</string>
<string name="window_animation_scale_title" msgid="5236381298376812508">"Escala de animación da ventá"</string>
<string name="transition_animation_scale_title" msgid="1278477690695439337">"Escala animación-transición"</string>
<string name="animator_duration_scale_title" msgid="7082913931326085176">"Escala duración animador"</string>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index 26b67b468e80..8ceaba03ea7b 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -85,7 +85,7 @@
<string name="bluetooth_disconnected" msgid="7739366554710388701">"Disconnesso"</string>
<string name="bluetooth_disconnecting" msgid="7638892134401574338">"Disconnessione…"</string>
<string name="bluetooth_connecting" msgid="5871702668260192755">"Connessione…"</string>
- <string name="bluetooth_connected" msgid="8065345572198502293">"<xliff:g id="ACTIVE_DEVICE">%1$s</xliff:g> Connesso"</string>
+ <string name="bluetooth_connected" msgid="8065345572198502293">"Connessione a <xliff:g id="ACTIVE_DEVICE">%1$s</xliff:g>"</string>
<string name="bluetooth_pairing" msgid="4269046942588193600">"Accoppiamento in corso…"</string>
<string name="bluetooth_connected_no_headset" msgid="2224101138659967604">"<xliff:g id="ACTIVE_DEVICE">%1$s</xliff:g> connesso (telefono escluso)"</string>
<string name="bluetooth_connected_no_a2dp" msgid="8566874395813947092">"<xliff:g id="ACTIVE_DEVICE">%1$s</xliff:g> connesso (contenuti multimediali esclusi)"</string>
@@ -143,9 +143,9 @@
<string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Collegato al server di trasferimento file"</string>
<string name="bluetooth_map_profile_summary_connected" msgid="4141725591784669181">"Connesso alla mappa"</string>
<string name="bluetooth_sap_profile_summary_connected" msgid="1280297388033001037">"Collegato al SAP"</string>
- <string name="bluetooth_opp_profile_summary_not_connected" msgid="3959741824627764954">"Non collegato al server di trasferimento file"</string>
+ <string name="bluetooth_opp_profile_summary_not_connected" msgid="3959741824627764954">"Non connesso al server di trasferimento file"</string>
<string name="bluetooth_hid_profile_summary_connected" msgid="3923653977051684833">"Connesso a dispositivo di input"</string>
- <string name="bluetooth_pan_user_profile_summary_connected" msgid="380469653827505727">"Connesso a dispositivo per accesso Internet"</string>
+ <string name="bluetooth_pan_user_profile_summary_connected" msgid="380469653827505727">"Connesso per internet"</string>
<string name="bluetooth_pan_nap_profile_summary_connected" msgid="3744773111299503493">"Connessione Internet locale condivisa con dispositivo"</string>
<string name="bluetooth_pan_profile_summary_use_for" msgid="7422039765025340313">"Usa per accesso a Internet"</string>
<string name="bluetooth_map_profile_summary_use_for" msgid="4453622103977592583">"Utilizza per la mappa"</string>
@@ -465,9 +465,9 @@
<string name="select_webview_provider_dialog_title" msgid="2444261109877277714">"Imposta l\'implementazione di WebView"</string>
<string name="select_webview_provider_toast_text" msgid="8512254949169359848">"La selezione non è più valida. Riprova."</string>
<string name="picture_color_mode" msgid="1013807330552931903">"Modalità colori immagini"</string>
- <string name="picture_color_mode_desc" msgid="151780973768136200">"Use sRGB"</string>
+ <string name="picture_color_mode_desc" msgid="151780973768136200">"Usa sRGB"</string>
<string name="daltonizer_mode_disabled" msgid="403424372812399228">"Disattivato"</string>
- <string name="daltonizer_mode_monochromacy" msgid="362060873835885014">"Monocromìa"</string>
+ <string name="daltonizer_mode_monochromacy" msgid="362060873835885014">"Monocromatismo"</string>
<string name="daltonizer_mode_deuteranomaly" msgid="3507284319584683963">"Deuteranomalìa (rosso-verde)"</string>
<string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalìa (rosso-verde)"</string>
<string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalìa (blu-giallo)"</string>
@@ -600,7 +600,7 @@
<string name="tv_media_transfer_earc_subtitle" msgid="645191413103303077">"Connessione tramite eARC"</string>
<string name="tv_media_transfer_default" msgid="5403053145185843843">"TV predefinita"</string>
<string name="tv_media_transfer_hdmi" msgid="692569220956829921">"Uscita HDMI"</string>
- <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Speaker interni"</string>
+ <string name="tv_media_transfer_internal_speakers" msgid="8181494402866565865">"Altoparlanti interni"</string>
<string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problema di connessione. Spegni e riaccendi il dispositivo"</string>
<string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo audio cablato"</string>
<string name="help_label" msgid="3528360748637781274">"Guida e feedback"</string>
diff --git a/packages/SettingsLib/res/values-kk/arrays.xml b/packages/SettingsLib/res/values-kk/arrays.xml
index 6c8d59f06263..666982096988 100644
--- a/packages/SettingsLib/res/values-kk/arrays.xml
+++ b/packages/SettingsLib/res/values-kk/arrays.xml
@@ -31,7 +31,7 @@
<item msgid="7852381437933824454">"Ажыратуда…"</item>
<item msgid="5046795712175415059">"Ажыратылған"</item>
<item msgid="2473654476624070462">"Сәтсіз"</item>
- <item msgid="9146847076036105115">"Бөгелген"</item>
+ <item msgid="9146847076036105115">"Блокталған"</item>
<item msgid="4543924085816294893">"Нашар байланысты уақытша қолданбау"</item>
</string-array>
<string-array name="wifi_status_with_ssid">
@@ -45,7 +45,7 @@
<item msgid="1175040558087735707">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> байланысынан ажыратылуда…"</item>
<item msgid="699832486578171722">"Ажыратылған"</item>
<item msgid="522383512264986901">"Сәтсіз"</item>
- <item msgid="3602596701217484364">"Бөгелген"</item>
+ <item msgid="3602596701217484364">"Блокталған"</item>
<item msgid="1999413958589971747">"Нашар байланысты уақытша қолданбау"</item>
</string-array>
<string-array name="hdcp_checking_titles">
diff --git a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryUtils.java b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryUtils.java
index 85713607f917..0ed0386727be 100644
--- a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryUtils.java
@@ -25,6 +25,7 @@ import android.os.SystemProperties;
import android.os.UserManager;
import android.provider.Settings;
import android.util.ArraySet;
+import android.util.Log;
import android.view.accessibility.AccessibilityManager;
import androidx.annotation.Nullable;
@@ -33,6 +34,7 @@ import androidx.annotation.VisibleForTesting;
import java.util.List;
public final class BatteryUtils {
+ private static final String TAG = "BatteryUtils";
/** The key to get the time to full from Settings.Global */
public static final String GLOBAL_TIME_TO_FULL_MILLIS = "time_to_full_millis";
@@ -89,6 +91,18 @@ public final class BatteryUtils {
return userManager.isPrivateProfile();
}
+ /** Returns true if current user is an additional profile user. */
+ public static boolean isAdditionalProfile(Context context) {
+ if (isWorkProfile(context)) {
+ Log.d(TAG, "Current user is a work profile user.");
+ return true;
+ } else if (isPrivateProfile(context)) {
+ Log.d(TAG, "Current user is a private profile user.");
+ return true;
+ }
+ return false;
+ }
+
private static Boolean sChargingStringV2Enabled = null;
/** Returns {@code true} if the charging string v2 is enabled. */
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatteryUtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatteryUtilsTest.java
index 465798ccb6c2..4aec0d60624f 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatteryUtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/BatteryUtilsTest.java
@@ -127,6 +127,25 @@ public class BatteryUtilsTest {
assertThat(BatteryUtils.isPrivateProfile(mContext)).isTrue();
}
+ @Test
+ public void isAdditionalProfile_defaultValue_returnFalse() {
+ assertThat(BatteryUtils.isAdditionalProfile(mContext)).isFalse();
+ }
+
+ @Test
+ public void isAdditionalProfile_workProfileMode_returnTrue() {
+ doReturn(true).when(mUserManager).isManagedProfile();
+
+ assertThat(BatteryUtils.isAdditionalProfile(mContext)).isTrue();
+ }
+
+ @Test
+ public void isAdditionalProfile_privateProfileMode_returnTrue() {
+ doReturn(true).when(mUserManager).isPrivateProfile();
+
+ assertThat(BatteryUtils.isAdditionalProfile(mContext)).isTrue();
+ }
+
private void setTtsPackageName(String defaultTtsPackageName) {
Settings.Secure.putString(mContext.getContentResolver(),
Settings.Secure.TTS_DEFAULT_SYNTH, defaultTtsPackageName);
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp
index 4e01a71df113..2f90cccec775 100644
--- a/packages/SystemUI/Android.bp
+++ b/packages/SystemUI/Android.bp
@@ -570,8 +570,10 @@ android_library {
"jsr305",
"jsr330",
"lottie",
+ "lottie_compose",
"LowLightDreamLib",
"TraceurCommon",
+ "Traceur-res",
"//frameworks/libs/systemui:motion_tool_lib",
"notification_flags_lib",
"PlatformComposeCore",
@@ -727,6 +729,7 @@ android_library {
"truth",
"monet",
"libmonet",
+ "lottie_compose",
"dagger2",
"jsr330",
"WindowManager-Shell",
@@ -747,6 +750,7 @@ android_library {
"androidx.compose.animation_animation-graphics",
"androidx.lifecycle_lifecycle-viewmodel-compose",
"TraceurCommon",
+ "Traceur-res",
],
}
diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig
index 02e042327d66..eb9d0ab9d42c 100644
--- a/packages/SystemUI/aconfig/systemui.aconfig
+++ b/packages/SystemUI/aconfig/systemui.aconfig
@@ -1243,4 +1243,13 @@ flag {
metadata {
purpose: PURPOSE_BUGFIX
}
-} \ No newline at end of file
+}
+flag {
+ name: "classic_flags_multi_user"
+ namespace: "systemui"
+ description: "Make the classic feature flag loading multi user aware."
+ bug: "345443431"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt
index 0cd4b6816a61..c0832d9c4b59 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/TopAreaSection.kt
@@ -60,7 +60,7 @@ constructor(
private val clockInteractor: KeyguardClockInteractor,
) {
@Composable
- fun DefaultClockLayout(
+ fun SceneScope.DefaultClockLayout(
modifier: Modifier = Modifier,
) {
val currentClockLayout by clockViewModel.currentClockLayout.collectAsStateWithLifecycle()
@@ -95,26 +95,29 @@ constructor(
}
}
- SceneTransitionLayout(state, modifier) {
- scene(splitShadeLargeClockScene) {
- LargeClockWithSmartSpace(
- shouldOffSetClockToOneHalf = !hasCustomPositionUpdatedAnimation
- )
- }
+ Column(modifier) {
+ SceneTransitionLayout(state) {
+ scene(splitShadeLargeClockScene) {
+ LargeClockWithSmartSpace(
+ shouldOffSetClockToOneHalf = !hasCustomPositionUpdatedAnimation
+ )
+ }
- scene(splitShadeSmallClockScene) {
- SmallClockWithSmartSpace(modifier = Modifier.fillMaxWidth(0.5f))
- }
+ scene(splitShadeSmallClockScene) {
+ SmallClockWithSmartSpace(modifier = Modifier.fillMaxWidth(0.5f))
+ }
- scene(smallClockScene) { SmallClockWithSmartSpace() }
+ scene(smallClockScene) { SmallClockWithSmartSpace() }
- scene(largeClockScene) { LargeClockWithSmartSpace() }
+ scene(largeClockScene) { LargeClockWithSmartSpace() }
- scene(WeatherClockScenes.largeClockScene) { WeatherLargeClockWithSmartSpace() }
+ scene(WeatherClockScenes.largeClockScene) { WeatherLargeClockWithSmartSpace() }
- scene(WeatherClockScenes.splitShadeLargeClockScene) {
- WeatherLargeClockWithSmartSpace(modifier = Modifier.fillMaxWidth(0.5f))
+ scene(WeatherClockScenes.splitShadeLargeClockScene) {
+ WeatherLargeClockWithSmartSpace(modifier = Modifier.fillMaxWidth(0.5f))
+ }
}
+ with(mediaCarouselSection) { KeyguardMediaCarousel() }
}
}
@@ -136,7 +139,6 @@ constructor(
onTopChanged = burnIn.onSmartspaceTopChanged,
)
}
- with(mediaCarouselSection) { KeyguardMediaCarousel() }
}
}
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaScenePicker.kt b/packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaScenePicker.kt
index a22bc34381fd..0bd080906b78 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaScenePicker.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/media/controls/ui/composable/MediaScenePicker.kt
@@ -42,22 +42,8 @@ object MediaScenePicker : ElementScenePicker {
toSceneZIndex: Float
): SceneKey? {
return when {
- // TODO: 352052894 - update with the actual scene picking
- transition.isTransitioning(from = Scenes.Lockscreen, to = Scenes.Shade) -> {
- if (transition.progress < SHADE_FRACTION) {
- Scenes.Lockscreen
- } else {
- Scenes.Shade
- }
- }
-
- // TODO: 345467290 - update with the actual scene picking
- transition.isTransitioning(from = Scenes.Shade, to = Scenes.Lockscreen) -> {
- if (transition.progress < 1f - SHADE_FRACTION) {
- Scenes.Shade
- } else {
- Scenes.Lockscreen
- }
+ shouldElevateMedia(transition) -> {
+ Scenes.Shade
}
// TODO: 345467290 - update with the actual scene picking
@@ -69,4 +55,12 @@ object MediaScenePicker : ElementScenePicker {
else -> pickSingleSceneIn(scenes, transition, element)
}
}
+
+ /** Returns true when the media should be laid on top of the rest for the given [transition]. */
+ fun shouldElevateMedia(transition: TransitionState.Transition?): Boolean {
+ if (transition == null) {
+ return false
+ }
+ return transition.isTransitioningBetween(Scenes.Lockscreen, Scenes.Shade)
+ }
}
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt
index ece8b40ad332..09414a9a0d0f 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt
@@ -80,6 +80,7 @@ import com.android.systemui.common.ui.compose.windowinsets.LocalScreenCornerRadi
import com.android.systemui.compose.modifiers.sysuiResTag
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.media.controls.ui.composable.MediaCarousel
+import com.android.systemui.media.controls.ui.composable.MediaScenePicker
import com.android.systemui.media.controls.ui.controller.MediaCarouselController
import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager
import com.android.systemui.media.controls.ui.view.MediaHost
@@ -360,7 +361,13 @@ private fun SceneScope.SingleShade(
maxNotifScrimTop.value = quickSettingsPlaceable.height.toFloat()
layout(constraints.maxWidth, constraints.maxHeight) {
- quickSettingsPlaceable.placeRelative(x = 0, y = 0)
+ val qsZIndex =
+ if (MediaScenePicker.shouldElevateMedia(layoutState.currentTransition)) {
+ 1f
+ } else {
+ 0f
+ }
+ quickSettingsPlaceable.placeRelative(x = 0, y = 0, zIndex = qsZIndex)
notificationsPlaceable.placeRelative(x = 0, y = maxNotifScrimTop.value.roundToInt())
}
}
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt
index 377b02bfd86f..3ad07d0b7b4b 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/Element.kt
@@ -1133,10 +1133,98 @@ private inline fun <T> computeValue(
val transformation =
transformation(transition.transformationSpec.transformations(element.key, scene))
- // If there is no transformation explicitly associated to this element value, let's use
- // the value given by the system (like the current position and size given by the layout
- // pass).
- ?: return currentValue()
+
+ val previewTransformation =
+ transition.previewTransformationSpec?.let {
+ transformation(it.transformations(element.key, scene))
+ }
+ if (previewTransformation != null) {
+ val isInPreviewStage = transition.isInPreviewStage
+
+ val idleValue = sceneValue(sceneState)
+ val isEntering = scene == toScene
+ val previewTargetValue =
+ previewTransformation.transform(
+ layoutImpl,
+ scene,
+ element,
+ sceneState,
+ transition,
+ idleValue,
+ )
+
+ val targetValueOrNull =
+ transformation?.transform(
+ layoutImpl,
+ scene,
+ element,
+ sceneState,
+ transition,
+ idleValue,
+ )
+
+ // Make sure we don't read progress if values are the same and we don't need to interpolate,
+ // so we don't invalidate the phase where this is read.
+ when {
+ isInPreviewStage && isEntering && previewTargetValue == targetValueOrNull ->
+ return previewTargetValue
+ isInPreviewStage && !isEntering && idleValue == previewTargetValue -> return idleValue
+ previewTargetValue == targetValueOrNull && idleValue == previewTargetValue ->
+ return idleValue
+ else -> {}
+ }
+
+ val previewProgress = transition.previewProgress
+ // progress is not needed for all cases of the below when block, therefore read it lazily
+ // TODO(b/290184746): Make sure that we don't overflow transformations associated to a range
+ val previewRangeProgress =
+ previewTransformation.range?.progress(previewProgress) ?: previewProgress
+
+ if (isInPreviewStage) {
+ // if we're in the preview stage of the transition, interpolate between start state and
+ // preview target state:
+ return if (isEntering) {
+ // i.e. in the entering case between previewTargetValue and targetValue (or
+ // idleValue if no transformation is defined in the second stage transition)...
+ lerp(previewTargetValue, targetValueOrNull ?: idleValue, previewRangeProgress)
+ } else {
+ // ...and in the exiting case between the idleValue and the previewTargetValue.
+ lerp(idleValue, previewTargetValue, previewRangeProgress)
+ }
+ }
+
+ // if we're in the second stage of the transition, interpolate between the state the
+ // element was left at the end of the preview-phase and the target state:
+ return if (isEntering) {
+ // i.e. in the entering case between preview-end-state and the idleValue...
+ lerp(
+ lerp(previewTargetValue, targetValueOrNull ?: idleValue, previewRangeProgress),
+ idleValue,
+ transformation?.range?.progress(transition.progress) ?: transition.progress
+ )
+ } else {
+ if (targetValueOrNull == null) {
+ // ... and in the exiting case, the element should remain in the preview-end-state
+ // if no further transformation is defined in the second-stage transition...
+ lerp(idleValue, previewTargetValue, previewRangeProgress)
+ } else {
+ // ...and otherwise it should be interpolated between preview-end-state and
+ // targetValue
+ lerp(
+ lerp(idleValue, previewTargetValue, previewRangeProgress),
+ targetValueOrNull,
+ transformation.range?.progress(transition.progress) ?: transition.progress
+ )
+ }
+ }
+ }
+
+ if (transformation == null) {
+ // If there is no transformation explicitly associated to this element value, let's use
+ // the value given by the system (like the current position and size given by the layout
+ // pass).
+ return currentValue()
+ }
val idleValue = sceneValue(sceneState)
val targetValue =
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/PredictiveBackHandler.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/PredictiveBackHandler.kt
index d3e2a1cfbb3f..fd6762b97f79 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/PredictiveBackHandler.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/PredictiveBackHandler.kt
@@ -77,8 +77,17 @@ private class PredictiveBackTransition(
private var progressAnimatable by mutableStateOf<Animatable<Float, AnimationVector1D>?>(null)
var dragProgress: Float by mutableFloatStateOf(0f)
+ override val previewProgress: Float
+ get() = dragProgress
+
+ override val previewProgressVelocity: Float
+ get() = 0f // Currently, velocity is not exposed by predictive back API
+
+ override val isInPreviewStage: Boolean
+ get() = progressAnimatable == null && previewTransformationSpec != null
+
override val progress: Float
- get() = progressAnimatable?.value ?: dragProgress
+ get() = progressAnimatable?.value ?: previewTransformationSpec?.let { 0f } ?: dragProgress
override val progressVelocity: Float
get() = progressAnimatable?.velocity ?: 0f
@@ -109,8 +118,8 @@ private class PredictiveBackTransition(
toScene -> 1f
else -> error("scene $currentScene should be either $fromScene or $toScene")
}
-
- val animatable = Animatable(dragProgress).also { progressAnimatable = it }
+ val startProgress = if (previewTransformationSpec != null) 0f else dragProgress
+ val animatable = Animatable(startProgress).also { progressAnimatable = it }
// Important: We start atomically to make sure that we start the coroutine even if it is
// cancelled right after it is launched, so that finishTransition() is correctly called.
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutState.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutState.kt
index 48bc251f1f87..08e8e7250e0c 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutState.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitionLayoutState.kt
@@ -189,6 +189,19 @@ sealed interface TransitionState {
/** The current velocity of [progress], in progress units. */
abstract val progressVelocity: Float
+ /**
+ * The progress of the preview transition. This is usually in the `[0; 1]` range, but it can
+ * also be less than `0` or greater than `1` when using transitions with a spring
+ * AnimationSpec or when flinging quickly during a swipe gesture.
+ */
+ open val previewProgress: Float = 0f
+
+ /** The current velocity of [previewProgress], in progress units. */
+ open val previewProgressVelocity: Float = 0f
+
+ /** Whether the transition is currently in the preview stage */
+ open val isInPreviewStage: Boolean = false
+
/** Whether the transition was triggered by user input rather than being programmatic. */
abstract val isInitiatedByUserInput: Boolean
@@ -203,6 +216,7 @@ sealed interface TransitionState {
* [started][MutableSceneTransitionLayoutStateImpl.startTransition].
*/
internal var transformationSpec: TransformationSpecImpl = TransformationSpec.Empty
+ internal var previewTransformationSpec: TransformationSpecImpl? = null
private var fromOverscrollSpec: OverscrollSpecImpl? = null
private var toOverscrollSpec: OverscrollSpecImpl? = null
@@ -437,6 +451,10 @@ internal class MutableSceneTransitionLayoutStateImpl(
transitions
.transitionSpec(fromScene, toScene, key = transition.key)
.transformationSpec()
+ transition.previewTransformationSpec =
+ transitions
+ .transitionSpec(fromScene, toScene, key = transition.key)
+ .previewTransformationSpec()
if (orientation != null) {
transition.updateOverscrollSpecs(
fromSpec = transitions.overscrollSpec(fromScene, orientation),
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitions.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitions.kt
index e30dd356f1be..06b093d0b5db 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitions.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SceneTransitions.kt
@@ -110,7 +110,7 @@ internal constructor(
}
private fun defaultTransition(from: SceneKey, to: SceneKey) =
- TransitionSpecImpl(key = null, from, to, TransformationSpec.EmptyProvider)
+ TransitionSpecImpl(key = null, from, to, null, null, TransformationSpec.EmptyProvider)
internal fun overscrollSpec(scene: SceneKey, orientation: Orientation): OverscrollSpecImpl? =
overscrollCache
@@ -177,10 +177,18 @@ interface TransitionSpec {
/**
* The [TransformationSpec] associated to this [TransitionSpec].
*
- * Note that this is called once every a transition associated to this [TransitionSpec] is
+ * Note that this is called once whenever a transition associated to this [TransitionSpec] is
* started.
*/
fun transformationSpec(): TransformationSpec
+
+ /**
+ * The preview [TransformationSpec] associated to this [TransitionSpec].
+ *
+ * Note that this is called once whenever a transition associated to this [TransitionSpec] is
+ * started.
+ */
+ fun previewTransformationSpec(): TransformationSpec?
}
interface TransformationSpec {
@@ -225,13 +233,17 @@ internal class TransitionSpecImpl(
override val key: TransitionKey?,
override val from: SceneKey?,
override val to: SceneKey?,
- private val transformationSpec: () -> TransformationSpecImpl,
+ private val previewTransformationSpec: (() -> TransformationSpecImpl)? = null,
+ private val reversePreviewTransformationSpec: (() -> TransformationSpecImpl)? = null,
+ private val transformationSpec: () -> TransformationSpecImpl
) : TransitionSpec {
override fun reversed(): TransitionSpecImpl {
return TransitionSpecImpl(
key = key,
from = to,
to = from,
+ previewTransformationSpec = reversePreviewTransformationSpec,
+ reversePreviewTransformationSpec = previewTransformationSpec,
transformationSpec = {
val reverse = transformationSpec.invoke()
TransformationSpecImpl(
@@ -245,6 +257,9 @@ internal class TransitionSpecImpl(
}
override fun transformationSpec(): TransformationSpecImpl = this.transformationSpec.invoke()
+
+ override fun previewTransformationSpec(): TransformationSpecImpl? =
+ previewTransformationSpec?.invoke()
}
/** The definition of the overscroll behavior of the [scene]. */
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt
index 89ed8d6d37e2..3a87d4130cfb 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDsl.kt
@@ -54,11 +54,17 @@ interface SceneTransitionsBuilder {
* If [key] is not `null`, then this transition will only be used if the same key is specified
* when triggering the transition.
*
+ * Optionally, define a [preview] animation which will be played during the first stage of the
+ * transition, e.g. during the predictive back gesture. In case your transition should be
+ * reversible with the reverse animation having a preview as well, define a [reversePreview].
+ *
* @see from
*/
fun to(
to: SceneKey,
key: TransitionKey? = null,
+ preview: (TransitionBuilder.() -> Unit)? = null,
+ reversePreview: (TransitionBuilder.() -> Unit)? = null,
builder: TransitionBuilder.() -> Unit = {},
): TransitionSpec
@@ -74,11 +80,17 @@ interface SceneTransitionsBuilder {
* 2. to == A && from == B, which is then treated in reverse.
* 3. (from == A && to == null) || (from == null && to == B)
* 4. (from == B && to == null) || (from == null && to == A), which is then treated in reverse.
+ *
+ * Optionally, define a [preview] animation which will be played during the first stage of the
+ * transition, e.g. during the predictive back gesture. In case your transition should be
+ * reversible with the reverse animation having a preview as well, define a [reversePreview].
*/
fun from(
from: SceneKey,
to: SceneKey? = null,
key: TransitionKey? = null,
+ preview: (TransitionBuilder.() -> Unit)? = null,
+ reversePreview: (TransitionBuilder.() -> Unit)? = null,
builder: TransitionBuilder.() -> Unit = {},
): TransitionSpec
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDslImpl.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDslImpl.kt
index 1e67aa947559..02a43626abca 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDslImpl.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/TransitionDslImpl.kt
@@ -62,18 +62,22 @@ private class SceneTransitionsBuilderImpl : SceneTransitionsBuilder {
override fun to(
to: SceneKey,
key: TransitionKey?,
+ preview: (TransitionBuilder.() -> Unit)?,
+ reversePreview: (TransitionBuilder.() -> Unit)?,
builder: TransitionBuilder.() -> Unit
): TransitionSpec {
- return transition(from = null, to = to, key = key, builder)
+ return transition(from = null, to = to, key = key, preview, reversePreview, builder)
}
override fun from(
from: SceneKey,
to: SceneKey?,
key: TransitionKey?,
+ preview: (TransitionBuilder.() -> Unit)?,
+ reversePreview: (TransitionBuilder.() -> Unit)?,
builder: TransitionBuilder.() -> Unit
): TransitionSpec {
- return transition(from = from, to = to, key = key, builder)
+ return transition(from = from, to = to, key = key, preview, reversePreview, builder)
}
override fun overscroll(
@@ -103,9 +107,11 @@ private class SceneTransitionsBuilderImpl : SceneTransitionsBuilder {
from: SceneKey?,
to: SceneKey?,
key: TransitionKey?,
+ preview: (TransitionBuilder.() -> Unit)?,
+ reversePreview: (TransitionBuilder.() -> Unit)?,
builder: TransitionBuilder.() -> Unit,
): TransitionSpec {
- fun transformationSpec(): TransformationSpecImpl {
+ fun transformationSpec(builder: TransitionBuilder.() -> Unit): TransformationSpecImpl {
val impl = TransitionBuilderImpl().apply(builder)
return TransformationSpecImpl(
progressSpec = impl.spec,
@@ -115,7 +121,18 @@ private class SceneTransitionsBuilderImpl : SceneTransitionsBuilder {
)
}
- val spec = TransitionSpecImpl(key, from, to, ::transformationSpec)
+ val previewTransformationSpec = preview?.let { { transformationSpec(it) } }
+ val reversePreviewTransformationSpec = reversePreview?.let { { transformationSpec(it) } }
+ val transformationSpec = { transformationSpec(builder) }
+ val spec =
+ TransitionSpecImpl(
+ key,
+ from,
+ to,
+ previewTransformationSpec,
+ reversePreviewTransformationSpec,
+ transformationSpec
+ )
transitionSpecs.add(spec)
return spec
}
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt
index c91151e41605..1d9e9b72cc33 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/ElementTest.kt
@@ -2181,4 +2181,165 @@ class ElementTest {
rule.onNode(isElement(TestElements.Foo, SceneA)).assertIsNotDisplayed()
rule.onNode(isElement(TestElements.Foo, SceneB)).assertPositionInRootIsEqualTo(40.dp, 60.dp)
}
+
+ @Test
+ fun previewInterpolation_previewStage() {
+ val exiting1 = ElementKey("exiting1")
+ val exiting2 = ElementKey("exiting2")
+ val exiting3 = ElementKey("exiting3")
+ val entering1 = ElementKey("entering1")
+ val entering2 = ElementKey("entering2")
+ val entering3 = ElementKey("entering3")
+
+ val layoutImpl =
+ testPreviewTransformation(
+ from = SceneB,
+ to = SceneA,
+ exitingElements = listOf(exiting1, exiting2, exiting3),
+ enteringElements = listOf(entering1, entering2, entering3),
+ preview = {
+ scaleDraw(exiting1, scaleX = 0.8f, scaleY = 0.8f)
+ translate(exiting2, x = 20.dp)
+ scaleDraw(entering1, scaleX = 0f, scaleY = 0f)
+ translate(entering2, y = 30.dp)
+ },
+ transition = {
+ translate(exiting2, x = 30.dp)
+ scaleSize(exiting3, width = 0.8f, height = 0.8f)
+ scaleDraw(entering1, scaleX = 0.5f, scaleY = 0.5f)
+ scaleSize(entering3, width = 0.2f, height = 0.2f)
+ },
+ previewProgress = 0.5f,
+ progress = 0f,
+ isInPreviewStage = true
+ )
+
+ // verify that preview transition for exiting elements is halfway played from
+ // current-scene-value -> preview-target-value
+ val exiting1InB = layoutImpl.elements.getValue(exiting1).sceneStates.getValue(SceneB)
+ // e.g. exiting1 is half scaled...
+ assertThat(exiting1InB.lastScale).isEqualTo(Scale(0.9f, 0.9f, Offset.Unspecified))
+ // ...and exiting2 is halfway translated from 0.dp to 20.dp...
+ rule.onNode(isElement(exiting2)).assertPositionInRootIsEqualTo(10.dp, 0.dp)
+ // ...whereas exiting3 remains in its original size because it is only affected by the
+ // second phase of the transition
+ rule.onNode(isElement(exiting3)).assertSizeIsEqualTo(100.dp, 100.dp)
+
+ // verify that preview transition for entering elements is halfway played from
+ // preview-target-value -> transition-target-value (or target-scene-value if no
+ // transition-target-value defined).
+ val entering1InA = layoutImpl.elements.getValue(entering1).sceneStates.getValue(SceneA)
+ // e.g. entering1 is half scaled between 0f and 0.5f -> 0.25f...
+ assertThat(entering1InA.lastScale).isEqualTo(Scale(0.25f, 0.25f, Offset.Unspecified))
+ // ...and entering2 is half way translated between 30.dp and 0.dp
+ rule.onNode(isElement(entering2)).assertPositionInRootIsEqualTo(0.dp, 15.dp)
+ // ...and entering3 is still at its start size of 0.2f * 100.dp, because it is unaffected
+ // by the preview phase
+ rule.onNode(isElement(entering3)).assertSizeIsEqualTo(20.dp, 20.dp)
+ }
+
+ @Test
+ fun previewInterpolation_transitionStage() {
+ val exiting1 = ElementKey("exiting1")
+ val exiting2 = ElementKey("exiting2")
+ val exiting3 = ElementKey("exiting3")
+ val entering1 = ElementKey("entering1")
+ val entering2 = ElementKey("entering2")
+ val entering3 = ElementKey("entering3")
+
+ val layoutImpl =
+ testPreviewTransformation(
+ from = SceneB,
+ to = SceneA,
+ exitingElements = listOf(exiting1, exiting2, exiting3),
+ enteringElements = listOf(entering1, entering2, entering3),
+ preview = {
+ scaleDraw(exiting1, scaleX = 0.8f, scaleY = 0.8f)
+ translate(exiting2, x = 20.dp)
+ scaleDraw(entering1, scaleX = 0f, scaleY = 0f)
+ translate(entering2, y = 30.dp)
+ },
+ transition = {
+ translate(exiting2, x = 30.dp)
+ scaleSize(exiting3, width = 0.8f, height = 0.8f)
+ scaleDraw(entering1, scaleX = 0.5f, scaleY = 0.5f)
+ scaleSize(entering3, width = 0.2f, height = 0.2f)
+ },
+ previewProgress = 0.5f,
+ progress = 0.5f,
+ isInPreviewStage = false
+ )
+
+ // verify that exiting elements remain in the preview-end state if no further transition is
+ // defined for them in the second stage
+ val exiting1InB = layoutImpl.elements.getValue(exiting1).sceneStates.getValue(SceneB)
+ // i.e. exiting1 remains half scaled
+ assertThat(exiting1InB.lastScale).isEqualTo(Scale(0.9f, 0.9f, Offset.Unspecified))
+ // in case there is an additional transition defined for the second stage, verify that the
+ // animation is seamlessly taken over from the preview-end-state, e.g. the translation of
+ // exiting2 is at 10.dp after the preview phase. After half of the second phase, it
+ // should be half-way between 10.dp and the target-value of 30.dp -> 20.dp
+ rule.onNode(isElement(exiting2)).assertPositionInRootIsEqualTo(20.dp, 0.dp)
+ // if the element is only modified by the second phase transition, verify it's in the middle
+ // of start-scene-state and target-scene-state, i.e. exiting3 is halfway between 100.dp and
+ // 80.dp
+ rule.onNode(isElement(exiting3)).assertSizeIsEqualTo(90.dp, 90.dp)
+
+ // verify that entering elements animate seamlessly to their target state
+ val entering1InA = layoutImpl.elements.getValue(entering1).sceneStates.getValue(SceneA)
+ // e.g. entering1, which was scaled from 0f to 0.25f during the preview phase, should now be
+ // half way scaled between 0.25f and its target-state of 1f -> 0.625f
+ assertThat(entering1InA.lastScale).isEqualTo(Scale(0.625f, 0.625f, Offset.Unspecified))
+ // entering2, which was translated from y=30.dp to y=15.dp should now be half way
+ // between 15.dp and its target state of 0.dp...
+ rule.onNode(isElement(entering2)).assertPositionInRootIsEqualTo(0.dp, 7.5.dp)
+ // entering3, which isn't affected by the preview transformation should be half scaled
+ // between start size (20.dp) and target size (100.dp) -> 60.dp
+ rule.onNode(isElement(entering3)).assertSizeIsEqualTo(60.dp, 60.dp)
+ }
+
+ private fun testPreviewTransformation(
+ from: SceneKey,
+ to: SceneKey,
+ exitingElements: List<ElementKey> = listOf(),
+ enteringElements: List<ElementKey> = listOf(),
+ preview: (TransitionBuilder.() -> Unit)? = null,
+ transition: TransitionBuilder.() -> Unit,
+ progress: Float = 0f,
+ previewProgress: Float = 0.5f,
+ isInPreviewStage: Boolean = true
+ ): SceneTransitionLayoutImpl {
+ val state =
+ rule.runOnIdle {
+ MutableSceneTransitionLayoutStateImpl(
+ from,
+ transitions { from(from, to = to, preview = preview, builder = transition) }
+ )
+ }
+
+ @Composable
+ fun SceneScope.Foo(elementKey: ElementKey) {
+ Box(Modifier.element(elementKey).size(100.dp))
+ }
+
+ lateinit var layoutImpl: SceneTransitionLayoutImpl
+ rule.setContent {
+ SceneTransitionLayoutForTesting(state, onLayoutImpl = { layoutImpl = it }) {
+ scene(from) { Box { exitingElements.forEach { Foo(it) } } }
+ scene(to) { Box { enteringElements.forEach { Foo(it) } } }
+ }
+ }
+
+ val bToA =
+ transition(
+ from = from,
+ to = to,
+ progress = { progress },
+ previewProgress = { previewProgress },
+ isInPreviewStage = { isInPreviewStage }
+ )
+ rule.runOnUiThread { state.startTransition(bToA) }
+ rule.waitForIdle()
+ return layoutImpl
+ }
}
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt
index 6522eb33bd49..0eaecb09e97e 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/PredictiveBackHandlerTest.kt
@@ -80,6 +80,56 @@ class PredictiveBackHandlerTest {
assertThat(transition).hasFromScene(SceneA)
assertThat(transition).hasToScene(SceneB)
assertThat(transition).hasProgress(0.4f)
+ assertThat(transition).isNotInPreviewStage()
+
+ // Cancel it.
+ rule.runOnUiThread { dispatcher.dispatchOnBackCancelled() }
+ rule.waitForIdle()
+ assertThat(layoutState.transitionState).hasCurrentScene(SceneA)
+ assertThat(layoutState.transitionState).isIdle()
+
+ // Start again and commit it.
+ rule.runOnUiThread {
+ dispatcher.dispatchOnBackStarted(backEvent())
+ dispatcher.dispatchOnBackProgressed(backEvent(progress = 0.4f))
+ dispatcher.onBackPressed()
+ }
+ rule.waitForIdle()
+ assertThat(layoutState.transitionState).hasCurrentScene(SceneB)
+ assertThat(layoutState.transitionState).isIdle()
+ }
+
+ @Test
+ fun testPredictiveBackWithPreview() {
+ val layoutState =
+ rule.runOnUiThread {
+ MutableSceneTransitionLayoutState(
+ SceneA,
+ transitions = transitions { from(SceneA, to = SceneB, preview = {}) }
+ )
+ }
+ rule.setContent {
+ SceneTransitionLayout(layoutState) {
+ scene(SceneA, mapOf(Back to SceneB)) { Box(Modifier.fillMaxSize()) }
+ scene(SceneB) { Box(Modifier.fillMaxSize()) }
+ }
+ }
+
+ assertThat(layoutState.transitionState).hasCurrentScene(SceneA)
+
+ // Start back.
+ val dispatcher = rule.activity.onBackPressedDispatcher
+ rule.runOnUiThread {
+ dispatcher.dispatchOnBackStarted(backEvent())
+ dispatcher.dispatchOnBackProgressed(backEvent(progress = 0.4f))
+ }
+
+ val transition = assertThat(layoutState.transitionState).isTransition()
+ assertThat(transition).hasFromScene(SceneA)
+ assertThat(transition).hasToScene(SceneB)
+ assertThat(transition).hasPreviewProgress(0.4f)
+ assertThat(transition).hasProgress(0f)
+ assertThat(transition).isInPreviewStage()
// Cancel it.
rule.runOnUiThread { dispatcher.dispatchOnBackCancelled() }
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/Transition.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/Transition.kt
index 65f4f9e6e393..66d4059adfda 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/Transition.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/Transition.kt
@@ -30,6 +30,9 @@ fun transition(
current: () -> SceneKey = { from },
progress: () -> Float = { 0f },
progressVelocity: () -> Float = { 0f },
+ previewProgress: () -> Float = { 0f },
+ previewProgressVelocity: () -> Float = { 0f },
+ isInPreviewStage: () -> Boolean = { false },
interruptionProgress: () -> Float = { 0f },
isInitiatedByUserInput: Boolean = false,
isUserInputOngoing: Boolean = false,
@@ -51,6 +54,15 @@ fun transition(
override val progressVelocity: Float
get() = progressVelocity()
+ override val previewProgress: Float
+ get() = previewProgress()
+
+ override val previewProgressVelocity: Float
+ get() = previewProgressVelocity()
+
+ override val isInPreviewStage: Boolean
+ get() = isInPreviewStage()
+
override val isInitiatedByUserInput: Boolean = isInitiatedByUserInput
override val isUserInputOngoing: Boolean = isUserInputOngoing
override val isUpOrLeft: Boolean = isUpOrLeft
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/TransitionDslTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/TransitionDslTest.kt
index 825fe138c3c4..a3790f8d9404 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/TransitionDslTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/TransitionDslTest.kt
@@ -168,7 +168,14 @@ class TransitionDslTest {
@Test
fun defaultReversed() {
val transitions = transitions {
- from(TestScenes.SceneA, to = TestScenes.SceneB) {
+ from(
+ TestScenes.SceneA,
+ to = TestScenes.SceneB,
+ preview = { fractionRange(start = 0.1f, end = 0.8f) { fade(TestElements.Foo) } },
+ reversePreview = {
+ fractionRange(start = 0.5f, end = 0.6f) { fade(TestElements.Foo) }
+ }
+ ) {
spec = tween(500)
fractionRange(start = 0.1f, end = 0.8f) { fade(TestElements.Foo) }
timestampRange(startMillis = 100, endMillis = 300) { fade(TestElements.Foo) }
@@ -177,11 +184,10 @@ class TransitionDslTest {
// Fetch the transition from B to A, which will automatically reverse the transition from A
// to B we defined.
- val transformations =
- transitions
- .transitionSpec(from = TestScenes.SceneB, to = TestScenes.SceneA, key = null)
- .transformationSpec()
- .transformations
+ val transitionSpec =
+ transitions.transitionSpec(from = TestScenes.SceneB, to = TestScenes.SceneA, key = null)
+
+ val transformations = transitionSpec.transformationSpec().transformations
assertThat(transformations)
.comparingElementsUsing(TRANSFORMATION_RANGE)
@@ -189,6 +195,14 @@ class TransitionDslTest {
TransformationRange(start = 1f - 0.8f, end = 1f - 0.1f),
TransformationRange(start = 1f - 300 / 500f, end = 1f - 100 / 500f),
)
+
+ val previewTransformations = transitionSpec.previewTransformationSpec()?.transformations
+
+ assertThat(previewTransformations)
+ .comparingElementsUsing(TRANSFORMATION_RANGE)
+ .containsExactly(
+ TransformationRange(start = 0.5f, end = 0.6f),
+ )
}
@Test
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/subjects/TransitionStateSubject.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/subjects/TransitionStateSubject.kt
index 348989218ce9..e997a75a7a38 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/subjects/TransitionStateSubject.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/subjects/TransitionStateSubject.kt
@@ -95,6 +95,25 @@ private constructor(
.of(progressVelocity)
}
+ fun hasPreviewProgress(progress: Float, tolerance: Float = 0f) {
+ check("previewProgress").that(actual.previewProgress).isWithin(tolerance).of(progress)
+ }
+
+ fun hasPreviewProgressVelocity(progressVelocity: Float, tolerance: Float = 0f) {
+ check("previewProgressVelocity")
+ .that(actual.previewProgressVelocity)
+ .isWithin(tolerance)
+ .of(progressVelocity)
+ }
+
+ fun isInPreviewStage() {
+ check("isInPreviewStage").that(actual.isInPreviewStage).isTrue()
+ }
+
+ fun isNotInPreviewStage() {
+ check("isInPreviewStage").that(actual.isInPreviewStage).isFalse()
+ }
+
fun isInitiatedByUserInput() {
check("isInitiatedByUserInput").that(actual.isInitiatedByUserInput).isTrue()
}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalMetricsStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalMetricsStartableTest.kt
new file mode 100644
index 000000000000..370adee44a42
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/CommunalMetricsStartableTest.kt
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.communal
+
+import android.app.StatsManager
+import android.app.StatsManager.StatsPullAtomCallback
+import android.content.pm.UserInfo
+import android.platform.test.annotations.EnableFlags
+import android.util.StatsEvent
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.Flags
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.communal.data.repository.fakeCommunalWidgetRepository
+import com.android.systemui.communal.domain.interactor.communalInteractor
+import com.android.systemui.communal.domain.interactor.communalSettingsInteractor
+import com.android.systemui.communal.shared.log.CommunalMetricsLogger
+import com.android.systemui.concurrency.fakeExecutor
+import com.android.systemui.flags.Flags.COMMUNAL_SERVICE_ENABLED
+import com.android.systemui.flags.fakeFeatureFlagsClassic
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.settings.fakeUserTracker
+import com.android.systemui.shared.system.SysUiStatsLog
+import com.android.systemui.testKosmos
+import com.android.systemui.user.data.repository.fakeUserRepository
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.anyInt
+import org.mockito.kotlin.any
+import org.mockito.kotlin.anyOrNull
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.never
+import org.mockito.kotlin.verify
+
+@SmallTest
+@EnableFlags(Flags.FLAG_COMMUNAL_HUB)
+@RunWith(AndroidJUnit4::class)
+class CommunalMetricsStartableTest : SysuiTestCase() {
+ private val kosmos = testKosmos()
+ private val testScope = kosmos.testScope
+
+ private val metricsLogger = mock<CommunalMetricsLogger>()
+ private val statsManager = mock<StatsManager>()
+
+ private val callbackCaptor = argumentCaptor<StatsPullAtomCallback>()
+
+ private val userTracker = kosmos.fakeUserTracker
+ private val userRepository = kosmos.fakeUserRepository
+ private val widgetsRepository = kosmos.fakeCommunalWidgetRepository
+
+ private lateinit var underTest: CommunalMetricsStartable
+
+ @Before
+ fun setUp() {
+ kosmos.fakeFeatureFlagsClassic.set(COMMUNAL_SERVICE_ENABLED, true)
+
+ // Set up an existing user, which is required for widgets to show
+ val userInfos = listOf(UserInfo(0, "main", UserInfo.FLAG_MAIN))
+ userRepository.setUserInfos(userInfos)
+ userTracker.set(
+ userInfos = userInfos,
+ selectedUserIndex = 0,
+ )
+
+ underTest =
+ CommunalMetricsStartable(
+ kosmos.fakeExecutor,
+ kosmos.communalSettingsInteractor,
+ kosmos.communalInteractor,
+ statsManager,
+ metricsLogger,
+ )
+ }
+
+ @Test
+ fun start_communalFlagDisabled_doNotSetPullAtomCallback() {
+ kosmos.fakeFeatureFlagsClassic.set(COMMUNAL_SERVICE_ENABLED, false)
+
+ underTest.start()
+
+ verify(statsManager, never()).setPullAtomCallback(anyInt(), anyOrNull(), any(), any())
+ }
+
+ @Test
+ fun onPullAtom_atomTagDoesNotMatch_pullSkip() {
+ underTest.start()
+
+ verify(statsManager)
+ .setPullAtomCallback(anyInt(), anyOrNull(), any(), callbackCaptor.capture())
+ val callback = callbackCaptor.firstValue
+
+ // Atom tag doesn't match COMMUNAL_HUB_SNAPSHOT
+ val result =
+ callback.onPullAtom(SysUiStatsLog.COMMUNAL_HUB_WIDGET_EVENT_REPORTED, mutableListOf())
+
+ assertThat(result).isEqualTo(StatsManager.PULL_SKIP)
+ }
+
+ @Test
+ fun onPullAtom_atomTagMatches_pullSuccess() =
+ testScope.runTest {
+ underTest.start()
+
+ verify(statsManager)
+ .setPullAtomCallback(anyInt(), anyOrNull(), any(), callbackCaptor.capture())
+ val callback = callbackCaptor.firstValue
+
+ // Populate some widgets
+ widgetsRepository.addWidget(appWidgetId = 1, componentName = "pkg_1/cls_1")
+ widgetsRepository.addWidget(appWidgetId = 2, componentName = "pkg_2/cls_2")
+
+ val statsEvents = mutableListOf<StatsEvent>()
+ val result = callback.onPullAtom(SysUiStatsLog.COMMUNAL_HUB_SNAPSHOT, statsEvents)
+
+ verify(metricsLogger)
+ .logWidgetsSnapshot(statsEvents, listOf("pkg_1/cls_1", "pkg_2/cls_2"))
+
+ assertThat(result).isEqualTo(StatsManager.PULL_SUCCESS)
+ }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/log/CommunalMetricsLoggerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/log/CommunalMetricsLoggerTest.kt
index 35df641035f7..537ca033f4b1 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/log/CommunalMetricsLoggerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/log/CommunalMetricsLoggerTest.kt
@@ -16,11 +16,13 @@
package com.android.systemui.communal.log
+import android.util.StatsEvent
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.communal.shared.log.CommunalMetricsLogger
import com.android.systemui.shared.system.SysUiStatsLog
+import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -90,4 +92,28 @@ class CommunalMetricsLoggerTest : SysuiTestCase() {
2,
)
}
+
+ @Test
+ fun logWidgetsSnapshot_logOnlyLoggableComponents() {
+ val statsEvents = mutableListOf<StatsEvent>()
+ underTest.logWidgetsSnapshot(
+ statsEvents,
+ listOf(
+ "com.blue.package/my_test_widget_1",
+ "com.green.package/my_test_widget_2",
+ "com.red.package/my_test_widget_3",
+ "com.yellow.package/my_test_widget_4",
+ ),
+ )
+ verify(statsLogProxy)
+ .buildCommunalHubSnapshotStatsEvent(
+ componentNames =
+ arrayOf(
+ "com.blue.package/my_test_widget_1",
+ "com.red.package/my_test_widget_3",
+ ),
+ widgetCount = 4,
+ )
+ assertThat(statsEvents).hasSize(1)
+ }
}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractorTest.kt
new file mode 100644
index 000000000000..01dbc6bf396c
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractorTest.kt
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.education.domain.interactor
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.coroutines.collectLastValue
+import com.android.systemui.education.data.repository.contextualEducationRepository
+import com.android.systemui.kosmos.testScope
+import com.android.systemui.shared.education.GestureType
+import com.android.systemui.shared.education.GestureType.BACK_GESTURE
+import com.android.systemui.testKosmos
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class KeyboardTouchpadEduInteractorTest : SysuiTestCase() {
+ private val kosmos = testKosmos()
+ private val testScope = kosmos.testScope
+ private val repository = kosmos.contextualEducationRepository
+ private val underTest: KeyboardTouchpadEduInteractor = kosmos.keyboardTouchpadEduInteractor
+
+ @Before
+ fun setup() {
+ underTest.start()
+ }
+
+ @Test
+ fun newEducationInfoOnMaxSignalCountReached() =
+ testScope.runTest {
+ tryTriggeringEducation(BACK_GESTURE)
+ val model by collectLastValue(underTest.educationTriggered)
+ assertThat(model?.gestureType).isEqualTo(BACK_GESTURE)
+ }
+
+ @Test
+ fun noEducationInfoBeforeMaxSignalCountReached() =
+ testScope.runTest {
+ repository.incrementSignalCount(BACK_GESTURE)
+ val model by collectLastValue(underTest.educationTriggered)
+ assertThat(model).isNull()
+ }
+
+ @Test
+ fun noEducationInfoWhenShortcutTriggeredPreviously() =
+ testScope.runTest {
+ val model by collectLastValue(underTest.educationTriggered)
+ repository.updateShortcutTriggerTime(BACK_GESTURE)
+ tryTriggeringEducation(BACK_GESTURE)
+ assertThat(model).isNull()
+ }
+
+ private suspend fun tryTriggeringEducation(gestureType: GestureType) {
+ // Increment max number of signal to try triggering education
+ for (i in 1..KeyboardTouchpadEduInteractor.MAX_SIGNAL_COUNT) {
+ repository.incrementSignalCount(gestureType)
+ }
+ }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropStateTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropStateTest.kt
index 73a00395606e..45262ca0587c 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropStateTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropStateTest.kt
@@ -40,21 +40,19 @@ class DragAndDropStateTest : SysuiTestCase() {
TestEditTiles.forEach { assertThat(underTest.isMoving(it.tileSpec)).isFalse() }
// Start the drag movement
- val movingTileSpec = TestEditTiles[0].tileSpec
- underTest.onStarted(movingTileSpec)
+ underTest.onStarted(TestEditTiles[0])
// Assert that the correct tile is marked as moving
TestEditTiles.forEach {
- assertThat(underTest.isMoving(it.tileSpec)).isEqualTo(movingTileSpec == it.tileSpec)
+ assertThat(underTest.isMoving(it.tileSpec))
+ .isEqualTo(TestEditTiles[0].tileSpec == it.tileSpec)
}
}
@Test
fun onMoved_updatesList() {
- val movingTileSpec = TestEditTiles[0].tileSpec
-
// Start the drag movement
- underTest.onStarted(movingTileSpec)
+ underTest.onStarted(TestEditTiles[0])
// Move the tile to the end of the list
underTest.onMoved(listState.tiles[5].tileSpec)
@@ -67,10 +65,8 @@ class DragAndDropStateTest : SysuiTestCase() {
@Test
fun onDrop_resetsMovingTile() {
- val movingTileSpec = TestEditTiles[0].tileSpec
-
// Start the drag movement
- underTest.onStarted(movingTileSpec)
+ underTest.onStarted(TestEditTiles[0])
// Move the tile to the end of the list
underTest.onMoved(listState.tiles[5].tileSpec)
@@ -84,16 +80,15 @@ class DragAndDropStateTest : SysuiTestCase() {
@Test
fun onMoveOutOfBounds_removeMovingTileFromCurrentList() {
- val movingTileSpec = TestEditTiles[0].tileSpec
-
// Start the drag movement
- underTest.onStarted(movingTileSpec)
+ underTest.onStarted(TestEditTiles[0])
// Move the tile outside of the list
underTest.movedOutOfBounds()
// Asserts the moving tile is not current
- assertThat(listState.tiles.first { it.tileSpec == movingTileSpec }.isCurrent).isFalse()
+ assertThat(listState.tiles.firstOrNull { it.tileSpec == TestEditTiles[0].tileSpec })
+ .isNull()
}
companion object {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/EditTileListStateTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/EditTileListStateTest.kt
index 517b60168fbf..e76d3892cf53 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/EditTileListStateTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/EditTileListStateTest.kt
@@ -33,22 +33,25 @@ class EditTileListStateTest : SysuiTestCase() {
val underTest = EditTileListState(TestEditTiles)
@Test
- fun movingNonExistentTile_listUnchanged() {
- underTest.move(TileSpec.create("other_tile"), TestEditTiles[0].tileSpec)
+ fun movingNonExistentTile_tileAdded() {
+ val newTile = createEditTile("other_tile", false)
+ underTest.move(newTile, TestEditTiles[0].tileSpec)
- assertThat(underTest.tiles).containsExactly(*TestEditTiles.toTypedArray())
+ assertThat(underTest.tiles[0]).isEqualTo(newTile)
+ assertThat(underTest.tiles.subList(1, underTest.tiles.size))
+ .containsExactly(*TestEditTiles.toTypedArray())
}
@Test
fun movingTileToNonExistentTarget_listUnchanged() {
- underTest.move(TestEditTiles[0].tileSpec, TileSpec.create("other_tile"))
+ underTest.move(TestEditTiles[0], TileSpec.create("other_tile"))
assertThat(underTest.tiles).containsExactly(*TestEditTiles.toTypedArray())
}
@Test
fun movingTileToItself_listUnchanged() {
- underTest.move(TestEditTiles[0].tileSpec, TestEditTiles[0].tileSpec)
+ underTest.move(TestEditTiles[0], TestEditTiles[0].tileSpec)
assertThat(underTest.tiles).containsExactly(*TestEditTiles.toTypedArray())
}
@@ -56,7 +59,7 @@ class EditTileListStateTest : SysuiTestCase() {
@Test
fun movingTileToSameSection_listUpdates() {
// Move tile at index 0 to index 1. Tile 0 should remain current.
- underTest.move(TestEditTiles[0].tileSpec, TestEditTiles[1].tileSpec)
+ underTest.move(TestEditTiles[0], TestEditTiles[1].tileSpec)
// Assert the tiles 0 and 1 have changed places.
assertThat(underTest.tiles[0]).isEqualTo(TestEditTiles[1])
@@ -67,22 +70,12 @@ class EditTileListStateTest : SysuiTestCase() {
.containsExactly(*TestEditTiles.subList(2, 5).toTypedArray())
}
- @Test
- fun movingTileToDifferentSection_listAndTileUpdates() {
- // Move tile at index 0 to index 3. Tile 0 should no longer be current.
- underTest.move(TestEditTiles[0].tileSpec, TestEditTiles[3].tileSpec)
-
- // Assert tile 0 is now at index 3 and is no longer current.
- assertThat(underTest.tiles[3]).isEqualTo(TestEditTiles[0].copy(isCurrent = false))
+ fun removingTile_listUpdates() {
+ // Remove tile at index 0
+ underTest.remove(TestEditTiles[0].tileSpec)
- // Assert previous tiles have shifted places
- assertThat(underTest.tiles[0]).isEqualTo(TestEditTiles[1])
- assertThat(underTest.tiles[1]).isEqualTo(TestEditTiles[2])
- assertThat(underTest.tiles[2]).isEqualTo(TestEditTiles[3])
-
- // Assert the rest of the list is unchanged
- assertThat(underTest.tiles.subList(4, 5))
- .containsExactly(*TestEditTiles.subList(4, 5).toTypedArray())
+ // Assert the tile was removed
+ assertThat(underTest.tiles).containsExactly(*TestEditTiles.subList(1, 6).toTypedArray())
}
companion object {
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt
index 540a85aeb695..f26c39d0ba6d 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt
@@ -78,6 +78,7 @@ import com.android.systemui.statusbar.notificationShadeWindowController
import com.android.systemui.statusbar.phone.centralSurfaces
import com.android.systemui.statusbar.pipeline.mobile.data.repository.fakeMobileConnectionsRepository
import com.android.systemui.statusbar.policy.data.repository.fakeDeviceProvisioningRepository
+import com.android.systemui.statusbar.sysuiStatusBarStateController
import com.android.systemui.testKosmos
import com.android.systemui.util.mockito.mock
import com.google.common.truth.Truth.assertThat
@@ -274,9 +275,10 @@ class SceneContainerStartableTest : SysuiTestCase() {
}
@Test
- fun switchFromBouncerToQuickSettingsWhenDeviceUnlocked() =
+ fun switchFromBouncerToQuickSettingsWhenDeviceUnlocked_whenLeaveOpenShade() =
testScope.runTest {
val currentSceneKey by collectLastValue(sceneInteractor.currentScene)
+ kosmos.sysuiStatusBarStateController.leaveOpen = true // leave shade open
val transitionState =
prepareState(
@@ -306,6 +308,39 @@ class SceneContainerStartableTest : SysuiTestCase() {
}
@Test
+ fun switchFromBouncerToGoneWhenDeviceUnlocked_whenDoNotLeaveOpenShade() =
+ testScope.runTest {
+ val currentSceneKey by collectLastValue(sceneInteractor.currentScene)
+ kosmos.sysuiStatusBarStateController.leaveOpen = false // don't leave shade open
+
+ val transitionState =
+ prepareState(
+ authenticationMethod = AuthenticationMethodModel.Pin,
+ isDeviceUnlocked = false,
+ initialSceneKey = Scenes.Lockscreen,
+ )
+ assertThat(currentSceneKey).isEqualTo(Scenes.Lockscreen)
+ underTest.start()
+ runCurrent()
+
+ sceneInteractor.changeScene(Scenes.QuickSettings, "switching to qs for test")
+ transitionState.value = ObservableTransitionState.Idle(Scenes.QuickSettings)
+ runCurrent()
+ assertThat(currentSceneKey).isEqualTo(Scenes.QuickSettings)
+
+ sceneInteractor.changeScene(Scenes.Bouncer, "switching to bouncer for test")
+ transitionState.value = ObservableTransitionState.Idle(Scenes.Bouncer)
+ runCurrent()
+ assertThat(currentSceneKey).isEqualTo(Scenes.Bouncer)
+
+ kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus(
+ SuccessFingerprintAuthenticationStatus(0, true)
+ )
+
+ assertThat(currentSceneKey).isEqualTo(Scenes.Gone)
+ }
+
+ @Test
fun switchFromLockscreenToGoneWhenDeviceUnlocksWithBypassOn() =
testScope.runTest {
val currentSceneKey by collectLastValue(sceneInteractor.currentScene)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinatorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinatorTest.kt
index 6ddc07432a16..7e9f437c7b6a 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinatorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinatorTest.kt
@@ -35,6 +35,7 @@ import com.android.systemui.log.logcatLogBuffer
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.scene.data.repository.Idle
import com.android.systemui.scene.data.repository.setTransition
+import com.android.systemui.scene.domain.interactor.sceneInteractor
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.statusbar.notification.collection.GroupEntryBuilder
import com.android.systemui.statusbar.notification.collection.NotifPipeline
@@ -627,6 +628,7 @@ class OriginalUnseenKeyguardCoordinatorTest(flags: FlagsParameterization) : Sysu
fakeSettings,
seenNotificationsInteractor,
statusBarStateController,
+ sceneInteractor = kosmos.sceneInteractor,
)
keyguardCoordinator.attach(notifPipeline)
testScope.runTest {
diff --git a/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml b/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml
index bfb2ed0f421f..5ae41fedac49 100644
--- a/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-es-rUS/strings.xml
@@ -83,7 +83,7 @@
<string name="kg_primary_auth_locked_out_pin" msgid="5492230176361601475">"Demasiados intentos con PIN incorrecto"</string>
<string name="kg_primary_auth_locked_out_pattern" msgid="8266214607346180952">"Demasiados intentos con patrón incorrecto"</string>
<string name="kg_primary_auth_locked_out_password" msgid="6170245108400198659">"Demasiados intentos con contraseña incorrecta"</string>
- <string name="kg_too_many_failed_attempts_countdown" msgid="2038195171919795529">"{count,plural, =1{Vuelve a intentarlo en # segundo}many{Vuelve a intentarlo en # segundos}other{Vuelve a intentarlo en # segundos}}"</string>
+ <string name="kg_too_many_failed_attempts_countdown" msgid="2038195171919795529">"{count,plural, =1{Vuelve a intentarlo en # segundo.}many{Vuelve a intentarlo en # de segundos.}other{Vuelve a intentarlo en # segundos.}}"</string>
<string name="kg_sim_pin_instructions" msgid="1942424305184242951">"Ingresa el PIN de la tarjeta SIM."</string>
<string name="kg_sim_pin_instructions_multi" msgid="3639863309953109649">"Ingresa el PIN de la tarjeta SIM de \"<xliff:g id="CARRIER">%1$s</xliff:g>\"."</string>
<string name="kg_sim_lock_esim_instructions" msgid="5577169988158738030">"<xliff:g id="PREVIOUS_MSG">%1$s</xliff:g> Inhabilita la tarjeta eSIM para usar el dispositivo sin servicio móvil."</string>
@@ -100,7 +100,7 @@
<string name="kg_password_wrong_pin_code_pukked" msgid="8047350661459040581">"El código PIN de la tarjeta SIM es incorrecto. Debes comunicarte con tu proveedor para desbloquear el dispositivo."</string>
<string name="kg_password_wrong_pin_code" msgid="5629415765976820357">"{count,plural, =1{El código PIN de la tarjeta SIM es incorrecto. Tienes # intento restante antes de que debas comunicarte con tu operador para desbloquear el dispositivo.}many{El código PIN de la tarjeta SIM es incorrecto. Tienes # intentos restantes. }other{El código PIN de la tarjeta SIM es incorrecto. Tienes # intentos restantes. }}"</string>
<string name="kg_password_wrong_puk_code_dead" msgid="3698285357028468617">"La tarjeta SIM no se puede usar. Comunícate con tu proveedor."</string>
- <string name="kg_password_wrong_puk_code" msgid="6820515467645087827">"{count,plural, =1{El código PUK de la tarjeta SIM es incorrecto. Tienes # intento restante antes de que la tarjeta SIM quede inutilizable permanentemente.}many{El código PUK de la tarjeta SIM es incorrecto. Tienes # intentos restantes antes de que la tarjeta SIM quede inutilizable permanentemente.}other{El código PUK de la tarjeta SIM es incorrecto. Tienes # intentos restantes antes de que la tarjeta SIM quede inutilizable permanentemente.}}"</string>
+ <string name="kg_password_wrong_puk_code" msgid="6820515467645087827">"{count,plural, =1{El código PUK de la tarjeta SIM es incorrecto. Tienes # intento restante antes de que la tarjeta SIM quede inutilizable permanentemente.}many{El código PUK de la tarjeta SIM es incorrecto. Tienes # de intentos restantes antes de que la tarjeta SIM quede inutilizable permanentemente.}other{El código PUK de la tarjeta SIM es incorrecto. Tienes # intentos restantes antes de que la tarjeta SIM quede inutilizable permanentemente.}}"</string>
<string name="kg_password_pin_failed" msgid="5136259126330604009">"Se produjo un error al desbloquear la tarjeta SIM con el PIN."</string>
<string name="kg_password_puk_failed" msgid="6778867411556937118">"Se produjo un error al desbloquear la tarjeta SIM con el PUK."</string>
<string name="accessibility_ime_switch_button" msgid="9082358310194861329">"Cambiar método de entrada"</string>
@@ -118,8 +118,8 @@
<string name="kg_prompt_reason_user_request" msgid="6015774877733717904">"El dispositivo se bloqueó de forma manual"</string>
<string name="kg_face_not_recognized" msgid="7903950626744419160">"No se reconoció"</string>
<string name="kg_face_sensor_privacy_enabled" msgid="939511161763558512">"Activa acceso a cámara en Config. y usa Desb. facial"</string>
- <string name="kg_password_default_pin_message" msgid="1434544655827987873">"{count,plural, =1{Ingresa el PIN de la tarjeta SIM. Tienes # intento restante antes de que debas comunicarte con tu operador para desbloquear el dispositivo.}many{Ingresa el PIN de la tarjeta SIM. Tienes # intentos restantes.}other{Ingresa el PIN de la tarjeta SIM. Tienes # intentos restantes.}}"</string>
- <string name="kg_password_default_puk_message" msgid="1025139786449741950">"{count,plural, =1{Se inhabilitó la tarjeta SIM. Para continuar, ingresa el código PUK. Tienes # intento restante antes de que la SIM quede inutilizable permanentemente. Comunícate con tu operador para conocer más detalles.}many{Se inhabilitó la tarjeta SIM. Para continuar, ingresa el código PUK. Tienes # intentos restantes antes de que la SIM quede inutilizable permanentemente. Comunícate con tu operador para conocer más detalles.}other{Se inhabilitó la tarjeta SIM. Para continuar, ingresa el código PUK. Tienes # intentos restantes antes de que la SIM quede inutilizable permanentemente. Comunícate con tu operador para conocer más detalles.}}"</string>
+ <string name="kg_password_default_pin_message" msgid="1434544655827987873">"{count,plural, =1{Ingresa el PIN de la tarjeta SIM. Tienes # intento restante antes de que debas comunicarte con tu operador para desbloquear el dispositivo.}many{Ingresa el PIN de la tarjeta SIM. Tienes # de intentos restantes.}other{Ingresa el PIN de la tarjeta SIM. Tienes # intentos restantes.}}"</string>
+ <string name="kg_password_default_puk_message" msgid="1025139786449741950">"{count,plural, =1{Se inhabilitó la tarjeta SIM. Para continuar, ingresa el código PUK. Tienes # intento restante antes de que la SIM quede inutilizable permanentemente. Comunícate con tu operador para conocer más detalles.}many{Se inhabilitó la tarjeta SIM. Para continuar, ingresa el código PUK. Tienes # de intentos restantes antes de que la SIM quede inutilizable permanentemente. Comunícate con tu operador para conocer más detalles.}other{Se inhabilitó la tarjeta SIM. Para continuar, ingresa el código PUK. Tienes # intentos restantes antes de que la SIM quede inutilizable permanentemente. Comunícate con tu operador para conocer más detalles.}}"</string>
<string name="clock_title_default" msgid="6342735240617459864">"Predeterminado"</string>
<string name="clock_title_bubble" msgid="2204559396790593213">"Burbuja"</string>
<string name="clock_title_analog" msgid="8409262532900918273">"Analógico"</string>
diff --git a/packages/SystemUI/res-keyguard/values-es/strings.xml b/packages/SystemUI/res-keyguard/values-es/strings.xml
index 3a0985213b1b..2d18c1c75057 100644
--- a/packages/SystemUI/res-keyguard/values-es/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-es/strings.xml
@@ -67,7 +67,7 @@
<string name="kg_bio_too_many_attempts_pattern" msgid="736884689355181602">"Demasiados intentos, se necesita el patrón"</string>
<string name="kg_unlock_with_pin_or_fp" msgid="5635161174698729890">"Desbloquea con PIN o huella digital"</string>
<string name="kg_unlock_with_password_or_fp" msgid="2251295907826814237">"Desbloquea con contraseña o huella digital"</string>
- <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"Desbloquea con patrón o huella digital"</string>
+ <string name="kg_unlock_with_pattern_or_fp" msgid="2391870539909135046">"Desbloquea con tu patrón o huella digital"</string>
<string name="kg_prompt_after_dpm_lock" msgid="6002804765868345917">"Por política del trabajo, se ha bloqueado el dispositivo para mayor seguridad"</string>
<string name="kg_prompt_after_user_lockdown_pin" msgid="5374732179740050373">"Se necesita el PIN después del bloqueo"</string>
<string name="kg_prompt_after_user_lockdown_password" msgid="9097968458291129795">"Se necesita la contraseña después del bloqueo"</string>
diff --git a/packages/SystemUI/res-keyguard/values-eu/strings.xml b/packages/SystemUI/res-keyguard/values-eu/strings.xml
index 41c3e06bd062..83a607b14a19 100644
--- a/packages/SystemUI/res-keyguard/values-eu/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-eu/strings.xml
@@ -42,7 +42,7 @@
<string name="keyguard_sim_puk_locked_message" msgid="2503428315518592542">"SIMa PUKaren bidez desblokeatu behar da."</string>
<string name="keyguard_sim_unlock_progress_dialog_message" msgid="8489092646014631659">"SIMa desblokeatzen…"</string>
<string name="keyguard_accessibility_pin_area" msgid="7403009340414014734">"PIN kodearen eremua"</string>
- <string name="keyguard_accessibility_password" msgid="3524161948484801450">"Gailuaren pasahitza"</string>
+ <string name="keyguard_accessibility_password" msgid="3524161948484801450">"Gailuko pasahitza"</string>
<string name="keyguard_accessibility_sim_pin_area" msgid="6272116591533888062">"SIM txartelaren PIN kodearen eremua"</string>
<string name="keyguard_accessibility_sim_puk_area" msgid="5537294043180237374">"SIM txartelaren PUK kodearen eremua"</string>
<string name="keyboardview_keycode_delete" msgid="8489719929424895174">"Ezabatu"</string>
diff --git a/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml b/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml
index 6eea6c952e20..82a553cea058 100644
--- a/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-fr-rCA/strings.xml
@@ -27,7 +27,7 @@
<string name="keyguard_enter_your_password" msgid="7225626204122735501">"Entrez votre mot de passe"</string>
<string name="keyguard_enter_password" msgid="6483623792371009758">"Entrez le mot de passe"</string>
<string name="keyguard_sim_error_message_short" msgid="633630844240494070">"Cette carte n\'est pas valide."</string>
- <string name="keyguard_charged" msgid="5478247181205188995">"Chargé"</string>
+ <string name="keyguard_charged" msgid="5478247181205188995">"Chargée"</string>
<string name="keyguard_plugged_in_wireless" msgid="2537874724955057383">"<xliff:g id="PERCENTAGE">%s</xliff:g> • En recharge sans fil"</string>
<string name="keyguard_plugged_in_dock" msgid="2122073051904360987">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Recharge en cours…"</string>
<string name="keyguard_plugged_in" msgid="8169926454348380863">"En recharge : <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
@@ -83,7 +83,7 @@
<string name="kg_primary_auth_locked_out_pin" msgid="5492230176361601475">"Trop de tentatives avec un NIP incorrect"</string>
<string name="kg_primary_auth_locked_out_pattern" msgid="8266214607346180952">"Trop de tentatives avec un schéma incorrect"</string>
<string name="kg_primary_auth_locked_out_password" msgid="6170245108400198659">"Trop de tentatives avec un mot de passe incorrect"</string>
- <string name="kg_too_many_failed_attempts_countdown" msgid="2038195171919795529">"{count,plural, =1{Réessayez dans # seconde.}one{Réessayez dans # seconde.}many{Réessayez dans # secondes.}other{Réessayez dans # secondes.}}"</string>
+ <string name="kg_too_many_failed_attempts_countdown" msgid="2038195171919795529">"{count,plural, =1{Réessayez dans # seconde.}one{Réessayez dans # seconde.}many{Réessayez dans # de secondes.}other{Réessayez dans # secondes.}}"</string>
<string name="kg_sim_pin_instructions" msgid="1942424305184242951">"Entrez le NIP de la carte SIM."</string>
<string name="kg_sim_pin_instructions_multi" msgid="3639863309953109649">"Entrez le NIP de la carte SIM pour « <xliff:g id="CARRIER">%1$s</xliff:g> »."</string>
<string name="kg_sim_lock_esim_instructions" msgid="5577169988158738030">"<xliff:g id="PREVIOUS_MSG">%1$s</xliff:g> Désactivez la carte eSIM pour utiliser l\'appareil sans service cellulaire."</string>
@@ -98,7 +98,7 @@
<string name="kg_too_many_failed_password_attempts_dialog_message" msgid="190984061975729494">"Vous avez entré un mot de passe incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises.\n\nVeuillez réessayer dans <xliff:g id="NUMBER_1">%2$d</xliff:g> secondes."</string>
<string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="4252405904570284368">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises.\n\nVeuillez réessayer dans <xliff:g id="NUMBER_1">%2$d</xliff:g> secondes."</string>
<string name="kg_password_wrong_pin_code_pukked" msgid="8047350661459040581">"NIP de carte SIM incorrect. Vous devez maintenant communiquer avec votre fournisseur de services pour déverrouiller votre appareil."</string>
- <string name="kg_password_wrong_pin_code" msgid="5629415765976820357">"{count,plural, =1{NIP de la carte SIM incorrect. Il vous reste # tentative. Après cela, vous devrez communiquer avec votre fournisseur de services pour déverrouiller votre appareil.}one{NIP de la carte SIM incorrect. Il vous reste # tentative. }many{NIP de la carte SIM incorrect. Il vous reste # de tentatives. }other{NIP de la carte SIM incorrect. Il vous reste # tentatives. }}"</string>
+ <string name="kg_password_wrong_pin_code" msgid="5629415765976820357">"{count,plural, =1{NIP de la carte SIM incorrect. Il vous reste # tentative. Après cela, vous devrez communiquer avec votre opérateur pour déverrouiller votre appareil.}one{NIP de la carte SIM incorrect. Il vous reste # tentative. }many{NIP de la carte SIM incorrect. Il vous reste # de tentatives. }other{NIP de la carte SIM incorrect. Il vous reste # tentatives. }}"</string>
<string name="kg_password_wrong_puk_code_dead" msgid="3698285357028468617">"La carte SIM est inutilisable. Communiquez avec votre fournisseur de services."</string>
<string name="kg_password_wrong_puk_code" msgid="6820515467645087827">"{count,plural, =1{Code PUK de la carte SIM incorrect. Il vous reste # tentative avant que votre carte SIM devienne définitivement inutilisable.}one{Code PUK de la carte SIM incorrect. Il vous reste # tentative avant que votre carte SIM devienne définitivement inutilisable.}many{Code PUK de la carte SIM incorrect. Il vous reste # de tentatives avant que votre carte SIM devienne définitivement inutilisable.}other{Code PUK de la carte SIM incorrect. Il vous reste # tentatives avant que votre carte SIM devienne définitivement inutilisable.}}"</string>
<string name="kg_password_pin_failed" msgid="5136259126330604009">"Le déverrouillage par NIP de la carte SIM a échoué."</string>
diff --git a/packages/SystemUI/res-keyguard/values-it/strings.xml b/packages/SystemUI/res-keyguard/values-it/strings.xml
index 722d43d8247f..609a517c6734 100644
--- a/packages/SystemUI/res-keyguard/values-it/strings.xml
+++ b/packages/SystemUI/res-keyguard/values-it/strings.xml
@@ -83,7 +83,7 @@
<string name="kg_primary_auth_locked_out_pin" msgid="5492230176361601475">"Troppi tentativi con il PIN errato"</string>
<string name="kg_primary_auth_locked_out_pattern" msgid="8266214607346180952">"Troppi tentativi con la sequenza errata"</string>
<string name="kg_primary_auth_locked_out_password" msgid="6170245108400198659">"Troppi tentativi con la password errata"</string>
- <string name="kg_too_many_failed_attempts_countdown" msgid="2038195171919795529">"{count,plural, =1{Riprova fra # secondo.}many{Riprova fra # secondi.}other{Riprova fra # secondi.}}"</string>
+ <string name="kg_too_many_failed_attempts_countdown" msgid="2038195171919795529">"{count,plural, =1{Riprova fra # secondo.}many{Riprova fra # di secondi.}other{Riprova fra # secondi.}}"</string>
<string name="kg_sim_pin_instructions" msgid="1942424305184242951">"Inserisci il PIN della SIM."</string>
<string name="kg_sim_pin_instructions_multi" msgid="3639863309953109649">"Inserisci il PIN della SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\"."</string>
<string name="kg_sim_lock_esim_instructions" msgid="5577169988158738030">"<xliff:g id="PREVIOUS_MSG">%1$s</xliff:g> Disattiva la eSIM per usare il dispositivo senza servizio dati mobile."</string>
@@ -98,9 +98,9 @@
<string name="kg_too_many_failed_password_attempts_dialog_message" msgid="190984061975729494">"Hai digitato la tua password <xliff:g id="NUMBER_0">%1$d</xliff:g> volte in modo errato. \n\nRiprova tra <xliff:g id="NUMBER_1">%2$d</xliff:g> secondi."</string>
<string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="4252405904570284368">"<xliff:g id="NUMBER_0">%1$d</xliff:g> tentativi errati di inserimento della sequenza di sblocco. \n\nRiprova tra <xliff:g id="NUMBER_1">%2$d</xliff:g> secondi."</string>
<string name="kg_password_wrong_pin_code_pukked" msgid="8047350661459040581">"Codice PIN della SIM errato. Devi contattare l\'operatore per sbloccare il dispositivo."</string>
- <string name="kg_password_wrong_pin_code" msgid="5629415765976820357">"{count,plural, =1{Codice PIN della SIM errato. Hai ancora # tentativo a disposizione, dopodiché dovrai contattare l\'operatore per sbloccare il dispositivo.}many{Codice PIN della SIM errato. Hai ancora # tentativi a disposizione. }other{Codice PIN della SIM errato. Hai ancora # tentativi a disposizione. }}"</string>
+ <string name="kg_password_wrong_pin_code" msgid="5629415765976820357">"{count,plural, =1{Codice PIN della SIM errato. Hai ancora # tentativo a disposizione, dopodiché dovrai contattare l\'operatore per sbloccare il dispositivo.}many{Codice PIN della SIM errato. Hai ancora # di tentativi a disposizione. }other{Codice PIN della SIM errato. Hai ancora # tentativi a disposizione. }}"</string>
<string name="kg_password_wrong_puk_code_dead" msgid="3698285357028468617">"SIM inutilizzabile. Contatta il tuo operatore."</string>
- <string name="kg_password_wrong_puk_code" msgid="6820515467645087827">"{count,plural, =1{Codice PUK della SIM errato. Hai ancora # tentativo a disposizione prima che la SIM diventi definitivamente inutilizzabile.}many{Codice PUK della SIM errato. Hai ancora # tentativi a disposizione prima che la SIM diventi definitivamente inutilizzabile.}other{Codice PUK della SIM errato. Hai ancora # tentativi a disposizione prima che la SIM diventi definitivamente inutilizzabile.}}"</string>
+ <string name="kg_password_wrong_puk_code" msgid="6820515467645087827">"{count,plural, =1{Codice PUK della SIM errato. Hai ancora # tentativo a disposizione prima che la SIM diventi definitivamente inutilizzabile.}many{Codice PUK della SIM errato. Hai ancora # di tentativi a disposizione prima che la SIM diventi definitivamente inutilizzabile.}other{Codice PUK della SIM errato. Hai ancora # tentativi a disposizione prima che la SIM diventi definitivamente inutilizzabile.}}"</string>
<string name="kg_password_pin_failed" msgid="5136259126330604009">"Operazione con PIN della SIM non riuscita."</string>
<string name="kg_password_puk_failed" msgid="6778867411556937118">"Operazione con PUK della SIM non riuscita."</string>
<string name="accessibility_ime_switch_button" msgid="9082358310194861329">"Cambia metodo di immissione"</string>
@@ -118,7 +118,7 @@
<string name="kg_prompt_reason_user_request" msgid="6015774877733717904">"Il dispositivo è stato bloccato manualmente"</string>
<string name="kg_face_not_recognized" msgid="7903950626744419160">"Non riconosciuto"</string>
<string name="kg_face_sensor_privacy_enabled" msgid="939511161763558512">"Sblocco con volto richiede l\'accesso alla fotocamera"</string>
- <string name="kg_password_default_pin_message" msgid="1434544655827987873">"{count,plural, =1{Inserisci il codice PIN della SIM. Hai ancora # tentativo a disposizione, dopodiché dovrai contattare l\'operatore per sbloccare il dispositivo.}many{Inserisci il PIN della SIM. Hai a disposizione ancora # tentativi.}other{Inserisci il PIN della SIM. Hai a disposizione ancora # tentativi.}}"</string>
+ <string name="kg_password_default_pin_message" msgid="1434544655827987873">"{count,plural, =1{Inserisci il codice PIN della SIM. Hai ancora # tentativo a disposizione, dopodiché dovrai contattare l\'operatore per sbloccare il dispositivo.}many{Inserisci il PIN della SIM. Hai a disposizione ancora # di tentativi.}other{Inserisci il PIN della SIM. Hai a disposizione ancora # tentativi.}}"</string>
<string name="kg_password_default_puk_message" msgid="1025139786449741950">"{count,plural, =1{La scheda SIM è ora disattivata. Inserisci il codice PUK per continuare. Hai ancora # tentativo a disposizione prima che la SIM diventi definitivamente inutilizzabile. Per informazioni dettagliate, contatta l\'operatore.}many{La scheda SIM è ora disattivata. Inserisci il codice PUK per continuare. Hai ancora # tentativi a disposizione prima che la SIM diventi definitivamente inutilizzabile. Per informazioni dettagliate, contatta l\'operatore.}other{La scheda SIM è ora disattivata. Inserisci il codice PUK per continuare. Hai ancora # tentativi a disposizione prima che la SIM diventi definitivamente inutilizzabile. Per informazioni dettagliate, contatta l\'operatore.}}"</string>
<string name="clock_title_default" msgid="6342735240617459864">"Predefinito"</string>
<string name="clock_title_bubble" msgid="2204559396790593213">"Bolla"</string>
diff --git a/packages/SystemUI/res-product/values-es/strings.xml b/packages/SystemUI/res-product/values-es/strings.xml
index d39c6ed5fffa..eb7d849f8165 100644
--- a/packages/SystemUI/res-product/values-es/strings.xml
+++ b/packages/SystemUI/res-product/values-es/strings.xml
@@ -58,7 +58,7 @@
<string name="high_temp_dialog_message" product="default" msgid="4272882413847595625">"El teléfono intentará enfriarse automáticamente. Puedes seguir usándolo, pero es posible que funcione más lento.\n\nUna vez que el teléfono se haya enfriado, funcionará con normalidad."</string>
<string name="high_temp_dialog_message" product="device" msgid="263861943935989046">"El dispositivo intentará enfriarse automáticamente. Puedes seguir usándolo, pero es posible que funcione más lento.\n\nUna vez que el dispositivo se haya enfriado, funcionará con normalidad."</string>
<string name="high_temp_dialog_message" product="tablet" msgid="5613713326841935537">"La tablet intentará enfriarse automáticamente. Puedes seguir usándola, pero es posible que funcione más lenta.\n\nUna vez que la tablet se haya enfriado, funcionará con normalidad."</string>
- <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="3726972508570143945">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve cerca de una de la esquinas de la tablet."</string>
+ <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="3726972508570143945">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el lateral de la tablet."</string>
<string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="2929467060295094725">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el lateral del dispositivo."</string>
<string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="8582726566542997639">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el lateral del teléfono."</string>
<string name="global_action_lock_message" product="default" msgid="7092460751050168771">"Desbloquea el teléfono para ver más opciones"</string>
diff --git a/packages/SystemUI/res-product/values-fr-rCA-feminine/strings.xml b/packages/SystemUI/res-product/values-fr-rCA-feminine/strings.xml
new file mode 100644
index 000000000000..96393c551a5f
--- /dev/null
+++ b/packages/SystemUI/res-product/values-fr-rCA-feminine/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="3051962486994265014">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Cette utilisatrice sera supprimée, ce qui entraîne la suppression de toutes ses données."</string>
+</resources>
diff --git a/packages/SystemUI/res-product/values-fr-rCA-masculine/strings.xml b/packages/SystemUI/res-product/values-fr-rCA-masculine/strings.xml
new file mode 100644
index 000000000000..5dd186fa4cc6
--- /dev/null
+++ b/packages/SystemUI/res-product/values-fr-rCA-masculine/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="3051962486994265014">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Cet utilisateur sera supprimé, ce qui entraîne la suppression de toutes ses données."</string>
+</resources>
diff --git a/packages/SystemUI/res-product/values-fr-rCA-neuter/strings.xml b/packages/SystemUI/res-product/values-fr-rCA-neuter/strings.xml
new file mode 100644
index 000000000000..7c9a362e58a3
--- /dev/null
+++ b/packages/SystemUI/res-product/values-fr-rCA-neuter/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="kg_failed_attempts_now_erasing_user" product="default" msgid="3051962486994265014">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Cet·te utilisateur·trice sera supprimé·e, ce qui entraîne la suppression de toutes ses données."</string>
+</resources>
diff --git a/packages/SystemUI/res-product/values-fr-rCA/strings.xml b/packages/SystemUI/res-product/values-fr-rCA/strings.xml
index 15d3606977cb..9ff7ff8c0a8d 100644
--- a/packages/SystemUI/res-product/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res-product/values-fr-rCA/strings.xml
@@ -32,12 +32,12 @@
<string name="kg_failed_attempts_now_wiping" product="default" msgid="6381835450014881813">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Ce téléphone sera réinitialisé, ce qui entraîne la suppression de toutes les données qu\'il contient."</string>
<string name="kg_failed_attempts_almost_at_erase_user" product="tablet" msgid="7325071812832605911">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentative(s) infructueuse(s) supplémentaire(s), cet utilisateur sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
<string name="kg_failed_attempts_almost_at_erase_user" product="default" msgid="8110939900089863103">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentative(s) infructueuse(s) supplémentaire(s), cet utilisateur sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
- <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="8509811676952707883">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER">%d</xliff:g> reprises. Cet utilisateur sera supprimé, ce qui entraîne la suppression de toutes ses données."</string>
+ <string name="kg_failed_attempts_now_erasing_user" product="tablet" msgid="8509811676952707883">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER">%d</xliff:g> reprises. Cet utilisateur sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
<string name="kg_failed_attempts_now_erasing_user" product="default" msgid="3051962486994265014">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Cet utilisateur sera supprimé, ce qui entraîne la suppression de toutes ses données."</string>
- <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="1049523640263353830">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentative(s) infructueuse(s) supplémentaire(s), le profil professionnel sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
- <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="3280816298678433681">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentative(s) infructueuse(s) supplémentaire(s), le profil professionnel sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
- <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4417100487251371559">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER">%d</xliff:g> reprises. Le profil professionnel sera supprimé, ce qui entraîne la suppression de toutes ses données."</string>
- <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4682221342671290678">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Le profil professionnel sera supprimé, ce qui entraîne la suppression de toutes ses données."</string>
+ <string name="kg_failed_attempts_almost_at_erase_profile" product="tablet" msgid="1049523640263353830">"Vous avez tenté de déverrouiller cette tablette à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentatives infructueuses supplémentaires, le profil professionnel sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
+ <string name="kg_failed_attempts_almost_at_erase_profile" product="default" msgid="3280816298678433681">"Vous avez tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Après <xliff:g id="NUMBER_1">%2$d</xliff:g> tentatives infructueuses supplémentaires, le profil professionnel sera supprimé, ce qui entraînera la suppression de toutes ses données."</string>
+ <string name="kg_failed_attempts_now_erasing_profile" product="tablet" msgid="4417100487251371559">"Vous avez incorrectement tenté de déverrouiller cette tablette à <xliff:g id="NUMBER">%d</xliff:g> reprises. Le profil professionnel sera retiré, ce qui entraîne la suppression de toutes ses données."</string>
+ <string name="kg_failed_attempts_now_erasing_profile" product="default" msgid="4682221342671290678">"Vous avez incorrectement tenté de déverrouiller ce téléphone à <xliff:g id="NUMBER">%d</xliff:g> reprises. Le profil professionnel sera retiré, ce qui entraînera la suppression de toutes ses données."</string>
<string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="1860049973474855672">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, vous devrez déverrouiller votre tablette à l\'aide d\'un compte de courriel.\n\nVeuillez réessayer dans <xliff:g id="NUMBER_2">%3$d</xliff:g> secondes."</string>
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="44112553371516141">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, vous devrez déverrouiller votre téléphone à l\'aide d\'un compte de courriel.\n\nVeuillez réessayer dans <xliff:g id="NUMBER_2">%3$d</xliff:g> secondes."</string>
<string name="thermal_shutdown_title" product="default" msgid="8039593017174903505">"Le téléphone s\'est éteint; surchauffage."</string>
diff --git a/packages/SystemUI/res/drawable/ic_arrow_back_2.xml b/packages/SystemUI/res/drawable/ic_arrow_back_2.xml
new file mode 100644
index 000000000000..8522d38e5ec1
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_arrow_back_2.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ Copyright (C) 2024 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportHeight="960"
+ android:viewportWidth="960">
+ <path
+ android:fillColor="#000"
+ android:pathData="M640,760L200,480L640,200L640,760ZM560,480L560,480L560,480ZM560,614L560,346L350,480L560,614Z" />
+</vector> \ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/ic_check_box_outline_blank.xml b/packages/SystemUI/res/drawable/ic_check_box_outline_blank.xml
new file mode 100644
index 000000000000..f413d900bd34
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_check_box_outline_blank.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ Copyright (C) 2024 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="960"
+ android:viewportHeight="960">
+ <path
+ android:fillColor="#000"
+ android:pathData="M200,840Q167,840 143.5,816.5Q120,793 120,760L120,200Q120,167 143.5,143.5Q167,120 200,120L760,120Q793,120 816.5,143.5Q840,167 840,200L840,760Q840,793 816.5,816.5Q793,840 760,840L200,840ZM200,760L760,760Q760,760 760,760Q760,760 760,760L760,200Q760,200 760,200Q760,200 760,200L200,200Q200,200 200,200Q200,200 200,200L200,760Q200,760 200,760Q200,760 200,760Z"/>
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_radio_button_unchecked.xml b/packages/SystemUI/res/drawable/ic_radio_button_unchecked.xml
new file mode 100644
index 000000000000..5bf914ba87fa
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_radio_button_unchecked.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ Copyright (C) 2024 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="960"
+ android:viewportHeight="960">
+ <path
+ android:fillColor="#000"
+ android:pathData="M480,880Q397,880 324,848.5Q251,817 197,763Q143,709 111.5,636Q80,563 80,480Q80,397 111.5,324Q143,251 197,197Q251,143 324,111.5Q397,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,563 848.5,636Q817,709 763,763Q709,817 636,848.5Q563,880 480,880ZM480,800Q614,800 707,707Q800,614 800,480Q800,346 707,253Q614,160 480,160Q346,160 253,253Q160,346 160,480Q160,614 253,707Q346,800 480,800ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Z"/>
+</vector>
diff --git a/packages/SystemUI/res/layout/custom_trace_settings_dialog.xml b/packages/SystemUI/res/layout/custom_trace_settings_dialog.xml
new file mode 100644
index 000000000000..6180bf500d85
--- /dev/null
+++ b/packages/SystemUI/res/layout/custom_trace_settings_dialog.xml
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2024 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/categories"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="@dimen/qqs_layout_margin_top"
+ android:textAppearance="@style/TextAppearance.Dialog.Body.Message" />
+
+ <TextView
+ android:id="@+id/cpu_buffer_size"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="@dimen/qqs_layout_margin_top"
+ android:textAppearance="@style/TextAppearance.Dialog.Body.Message" />
+
+ <!-- Attach to Bugreport Switch -->
+ <LinearLayout
+ android:id="@+id/attach_to_bugreport_switch_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/qqs_layout_margin_top"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/attach_to_bugreport_switch_label"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:minHeight="@dimen/screenrecord_option_icon_size"
+ android:layout_weight="1"
+ android:layout_gravity="fill_vertical"
+ android:gravity="start"
+ android:textAppearance="@style/TextAppearance.Dialog.Body.Message" />
+
+ <Switch
+ android:id="@+id/attach_to_bugreport_switch"
+ android:layout_width="wrap_content"
+ android:minHeight="@dimen/screenrecord_option_icon_size"
+ android:layout_height="wrap_content"
+ android:gravity="end"
+ android:layout_gravity="fill_vertical"
+ android:layout_weight="0" />
+ </LinearLayout>
+
+ <!-- Winscope Switch -->
+ <LinearLayout
+ android:id="@+id/winscope_switch_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/qqs_layout_margin_top"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/winscope_switch_label"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:minHeight="@dimen/screenrecord_option_icon_size"
+ android:layout_weight="1"
+ android:layout_gravity="fill_vertical"
+ android:gravity="start"
+ android:textAppearance="@style/TextAppearance.Dialog.Body.Message"/>
+
+ <Switch
+ android:id="@+id/winscope_switch"
+ android:layout_width="wrap_content"
+ android:minHeight="@dimen/screenrecord_option_icon_size"
+ android:layout_height="wrap_content"
+ android:gravity="end"
+ android:layout_gravity="fill_vertical"
+ android:layout_weight="0" />
+ </LinearLayout>
+
+ <!-- Trace Debuggable Apps Switch -->
+ <LinearLayout
+ android:id="@+id/trace_debuggable_apps_switch_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/qqs_layout_margin_top"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/debuggable_apps_switch_label"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:minHeight="@dimen/screenrecord_option_icon_size"
+ android:layout_weight="1"
+ android:layout_gravity="fill_vertical"
+ android:gravity="start"
+ android:textAppearance="@style/TextAppearance.Dialog.Body.Message" />
+
+ <Switch
+ android:id="@+id/trace_debuggable_apps_switch"
+ android:layout_width="wrap_content"
+ android:minHeight="@dimen/screenrecord_option_icon_size"
+ android:layout_height="wrap_content"
+ android:gravity="end"
+ android:layout_gravity="fill_vertical"
+ android:layout_weight="0" />
+ </LinearLayout>
+
+ <!-- Long Traces Switch -->
+ <LinearLayout
+ android:id="@+id/long_traces_switch_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/qqs_layout_margin_top"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/long_traces_switch_label"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:minHeight="@dimen/screenrecord_option_icon_size"
+ android:layout_weight="1"
+ android:layout_gravity="fill_vertical"
+ android:gravity="start"
+ android:textAppearance="@style/TextAppearance.Dialog.Body.Message" />
+
+ <Switch
+ android:id="@+id/long_traces_switch"
+ android:layout_width="wrap_content"
+ android:minHeight="@dimen/screenrecord_option_icon_size"
+ android:layout_height="wrap_content"
+ android:gravity="end"
+ android:layout_gravity="fill_vertical"
+ android:layout_weight="0" />
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/long_trace_size"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="@dimen/qqs_layout_margin_top"
+ android:textAppearance="@style/TextAppearance.Dialog.Body.Message" />
+
+ <TextView
+ android:id="@+id/long_trace_duration"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="@dimen/qqs_layout_margin_top"
+ android:textAppearance="@style/TextAppearance.Dialog.Body.Message" />
+</LinearLayout>
+
diff --git a/packages/SystemUI/res/layout/ongoing_activity_chip.xml b/packages/SystemUI/res/layout/ongoing_activity_chip.xml
index 154397d2b4a1..dc56097eaf3d 100644
--- a/packages/SystemUI/res/layout/ongoing_activity_chip.xml
+++ b/packages/SystemUI/res/layout/ongoing_activity_chip.xml
@@ -23,8 +23,7 @@
android:layout_gravity="center_vertical|start"
android:layout_marginStart="5dp"
>
- <!-- TODO(b/332662551): Update this content description when this supports more than just
- phone calls. -->
+ <!-- TODO(b/354930838): Fix these paddings for the new screen chips. -->
<com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer
android:id="@+id/ongoing_activity_chip_background"
android:layout_width="wrap_content"
@@ -32,18 +31,18 @@
android:layout_gravity="center_vertical"
android:gravity="center"
android:background="@drawable/ongoing_activity_chip_bg"
- android:paddingStart="@dimen/ongoing_activity_chip_side_padding"
- android:paddingEnd="@dimen/ongoing_activity_chip_side_padding"
+ android:paddingStart="@dimen/ongoing_activity_chip_side_padding_with_notif_icon"
+ android:paddingEnd="@dimen/ongoing_activity_chip_side_padding_with_notif_icon"
android:minWidth="@dimen/min_clickable_item_size"
>
<ImageView
android:src="@*android:drawable/ic_phone"
android:id="@+id/ongoing_activity_chip_icon"
- android:contentDescription="@string/ongoing_phone_call_content_description"
android:layout_width="@dimen/ongoing_activity_chip_icon_size"
android:layout_height="@dimen/ongoing_activity_chip_icon_size"
android:tint="?android:attr/colorPrimary"
+ android:visibility="gone"
/>
<!-- Only one of [ongoing_activity_chip_time, ongoing_activity_chip_text] will ever
@@ -54,7 +53,7 @@
android:layout_height="wrap_content"
android:singleLine="true"
android:gravity="center|start"
- android:paddingStart="@dimen/ongoing_activity_chip_icon_text_padding"
+ android:paddingEnd="@dimen/ongoing_activity_chip_text_end_padding_with_notif_icon"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:fontFamily="@*android:string/config_headlineFontFamily"
android:textColor="?android:attr/colorPrimary"
diff --git a/packages/SystemUI/res/raw/trackpad_back_edu.json b/packages/SystemUI/res/raw/trackpad_back_edu.json
new file mode 100644
index 000000000000..793833d79cd2
--- /dev/null
+++ b/packages/SystemUI/res/raw/trackpad_back_edu.json
@@ -0,0 +1 @@
+{"v":"5.12.1","fr":60,"ip":0,"op":900,"w":554,"h":564,"nm":"Trackpad-JSON_BackGesture","ddd":0,"assets":[{"id":"comp_0","nm":"Back_LeftDismiss","fr":60,"pfr":1,"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"release Scale","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"s":true,"x":{"a":0,"k":79},"y":{"a":0,"k":197}},"a":{"a":0,"k":[0,0,0]},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.08,0.08,0.08],"y":[0.47,0.47,0]},"t":250,"s":[100,100,100]},{"i":{"x":[0.999,0.999,0.999],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":254,"s":[105,105,100]},{"t":266,"s":[50,50,100]}]}},"ao":0,"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".onTertiary","cl":"onTertiary","parent":3,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":151,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":154,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[100]},{"t":258,"s":[0]}]},"r":{"a":0,"k":0},"p":{"k":[{"s":[-0.692,0,0],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[3.308,0,0],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[4.009,0,0],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[8.291,0,0],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[13.138,0,0],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[15.452,0,0],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[16.757,0,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[17.542,0,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[18.002,0,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[18.238,0,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[18.308,0,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[21.331,0,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[23.006,0,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[23.308,0,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[23.382,0,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[23.657,0,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[24.165,0,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[24.794,0,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[25.403,0,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[25.942,0,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[26.411,0,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[26.822,0,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[27.186,0,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[27.511,0,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[27.803,0,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[28.069,0,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[28.311,0,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[28.534,0,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[28.739,0,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[28.928,0,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[29.103,0,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[29.267,0,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[29.419,0,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[29.56,0,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[29.693,0,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[29.816,0,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[29.932,0,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.041,0,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.142,0,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.238,0,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.327,0,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.411,0,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.489,0,0],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.563,0,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.632,0,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.696,0,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.756,0,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.812,0,0],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.864,0,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.913,0,0],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[30.958,0,0],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31,0,0],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.039,0,0],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.074,0,0],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.107,0,0],"t":203,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.137,0,0],"t":204,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.164,0,0],"t":205,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.188,0,0],"t":206,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.21,0,0],"t":207,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.23,0,0],"t":208,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.247,0,0],"t":209,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.274,0,0],"t":211,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.305,0,0],"t":215,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.36,"y":0},"t":150,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[5.459,5.2],[-3.459,0],[5.459,-5.2]],"c":false}]},{"i":{"x":0.02,"y":1},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[4.779,4.88],[-3.459,0],[4.779,-4.88]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":159,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[3.459,7.2],[-3.459,0],[3.459,-7.2]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.12,"y":0},"t":162,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[3.459,7.2],[-3.459,0],[3.459,-7.2]],"c":false}]},{"t":217,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[3.459,9.2],[-3.459,0],[3.459,-9.2]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627656,0.211764708161,0.101960785687,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Vector 1","bm":0,"hd":false}],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".tertiaryFixedDim","cl":"tertiaryFixedDim","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":257,"s":[100]},{"t":260,"s":[0]}]},"r":{"a":0,"k":0},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.22],"y":[1]},"o":{"x":[0.06],"y":[0.15]},"t":160,"s":[-14]},{"t":189,"s":[0]}]},"y":{"a":0,"k":0}},"a":{"a":0,"k":[32,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"IndieCorners","np":21,"mn":"Pseudo/0.20784385308943532","ix":1,"en":1,"ef":[{"ty":7,"nm":"Align","mn":"Pseudo/0.20784385308943532-0001","ix":1,"v":{"a":0,"k":8}},{"ty":6,"nm":"Size","mn":"Pseudo/0.20784385308943532-0002","ix":2,"v":0},{"ty":0,"nm":"w","mn":"Pseudo/0.20784385308943532-0003","ix":3,"v":{"a":1,"k":[{"t":149,"s":[0],"h":1},{"i":{"x":[0.02],"y":[1]},"o":{"x":[0.365],"y":[0]},"t":150,"s":[8]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.336],"y":[0]},"t":159,"s":[38]},{"i":{"x":[0.002],"y":[1]},"o":{"x":[0.119],"y":[0]},"t":162,"s":[48]},{"t":217,"s":[64]}]}},{"ty":0,"nm":"h","mn":"Pseudo/0.20784385308943532-0004","ix":4,"v":{"a":0,"k":48}},{"ty":6,"nm":"","mn":"Pseudo/0.20784385308943532-0005","ix":5,"v":0},{"ty":6,"nm":"Rounding","mn":"Pseudo/0.20784385308943532-0006","ix":6,"v":0},{"ty":7,"nm":"Same for all corners","mn":"Pseudo/0.20784385308943532-0007","ix":7,"v":{"a":0,"k":1}},{"ty":0,"nm":"All corners","mn":"Pseudo/0.20784385308943532-0008","ix":8,"v":{"a":1,"k":[{"i":{"x":[0.02],"y":[1]},"o":{"x":[0.365],"y":[0]},"t":150,"s":[80]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.336],"y":[0]},"t":159,"s":[24]},{"t":162,"s":[80]}]}},{"ty":0,"nm":"tl","mn":"Pseudo/0.20784385308943532-0009","ix":9,"v":{"a":0,"k":12}},{"ty":0,"nm":"tr","mn":"Pseudo/0.20784385308943532-0010","ix":10,"v":{"a":0,"k":12}},{"ty":0,"nm":"br","mn":"Pseudo/0.20784385308943532-0011","ix":11,"v":{"a":0,"k":12}},{"ty":0,"nm":"bl","mn":"Pseudo/0.20784385308943532-0012","ix":12,"v":{"a":0,"k":12}},{"ty":6,"nm":"","mn":"Pseudo/0.20784385308943532-0013","ix":13,"v":0},{"ty":6,"nm":"Alignment","mn":"Pseudo/0.20784385308943532-0014","ix":14,"v":0},{"ty":0,"nm":"X Anchor %","mn":"Pseudo/0.20784385308943532-0015","ix":15,"v":{"a":0,"k":0}},{"ty":0,"nm":"Y Anchor %","mn":"Pseudo/0.20784385308943532-0016","ix":16,"v":{"a":0,"k":0}},{"ty":0,"nm":"X Position","mn":"Pseudo/0.20784385308943532-0017","ix":17,"v":{"a":0,"k":0}},{"ty":0,"nm":"Y Position ","mn":"Pseudo/0.20784385308943532-0018","ix":18,"v":{"a":0,"k":0}},{"ty":6,"nm":"","mn":"Pseudo/0.20784385308943532-0019","ix":19,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"k":[{"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0,-24],[0,-24],[0,-24],[0,-24],[0,24],[0,24],[0,24],[0,24]],"c":true}],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-2.208,0],[0,0],[0,-2.208],[0,0],[2.208,0],[0,0],[0,2.208]],"o":[[0,-2.208],[0,0],[2.208,0],[0,0],[0,2.208],[0,0],[-2.208,0],[0,0]],"v":[[0,-20],[4,-24],[4,-24],[8,-20],[8,20],[4,24],[4,24],[0,20]],"c":true}],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-2.594,0],[0,0],[0,-2.594],[0,0],[2.594,0],[0,0],[0,2.594]],"o":[[0,-2.594],[0,0],[2.594,0],[0,0],[0,2.594],[0,0],[-2.594,0],[0,0]],"v":[[0,-19.3],[4.7,-24],[4.7,-24],[9.401,-19.3],[9.401,19.3],[4.7,24],[4.7,24],[0,19.3]],"c":true}],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-4.958,0],[0,0],[0,-4.958],[0,0],[4.958,0],[0,0],[0,4.958]],"o":[[0,-4.958],[0,0],[4.958,0],[0,0],[0,4.958],[0,0],[-4.958,0],[0,0]],"v":[[0,-15.017],[8.983,-24],[8.983,-24],[17.967,-15.017],[17.967,15.017],[8.983,24],[8.983,24],[0,15.017]],"c":true}],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-7.632,0],[0,0],[0,-7.632],[0,0],[7.632,0],[0,0],[0,7.632]],"o":[[0,-7.632],[0,0],[7.632,0],[0,0],[0,7.632],[0,0],[-7.632,0],[0,0]],"v":[[0,-10.171],[13.829,-24],[13.829,-24],[27.659,-10.171],[27.659,10.171],[13.829,24],[13.829,24],[0,10.171]],"c":true}],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-8.91,0],[0,0],[0,-8.91],[0,0],[8.91,0],[0,0],[0,8.91]],"o":[[0,-8.91],[0,0],[8.91,0],[0,0],[0,8.91],[0,0],[-8.91,0],[0,0]],"v":[[0,-7.856],[16.144,-24],[16.144,-24],[32.287,-7.856],[32.287,7.856],[16.144,24],[16.144,24],[0,7.856]],"c":true}],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-9.63,0],[0,0],[0,-9.63],[0,0],[9.63,0],[0,0],[0,9.63]],"o":[[0,-9.63],[0,0],[9.63,0],[0,0],[0,9.63],[0,0],[-9.63,0],[0,0]],"v":[[0,-6.551],[17.449,-24],[17.449,-24],[34.898,-6.551],[34.898,6.551],[17.449,24],[17.449,24],[0,6.551]],"c":true}],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-10.063,0],[0,0],[0,-10.063],[0,0],[10.063,0],[0,0],[0,10.063]],"o":[[0,-10.063],[0,0],[10.063,0],[0,0],[0,10.063],[0,0],[-10.063,0],[0,0]],"v":[[0,-5.766],[18.234,-24],[18.234,-24],[36.467,-5.766],[36.467,5.766],[18.234,24],[18.234,24],[0,5.766]],"c":true}],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-10.317,0],[0,0],[0,-10.317],[0,0],[10.317,0],[0,0],[0,10.317]],"o":[[0,-10.317],[0,0],[10.317,0],[0,0],[0,10.317],[0,0],[-10.317,0],[0,0]],"v":[[0,-5.306],[18.694,-24],[18.694,-24],[37.388,-5.306],[37.388,5.306],[18.694,24],[18.694,24],[0,5.306]],"c":true}],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-10.448,0],[0,0],[0,-10.448],[0,0],[10.448,0],[0,0],[0,10.448]],"o":[[0,-10.448],[0,0],[10.448,0],[0,0],[0,10.448],[0,0],[-10.448,0],[0,0]],"v":[[0,-5.07],[18.93,-24],[18.93,-24],[37.861,-5.07],[37.861,5.07],[18.93,24],[18.93,24],[0,5.07]],"c":true}],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-10.486,0],[0,0],[0,-10.486],[0,0],[10.486,0],[0,0],[0,10.486]],"o":[[0,-10.486],[0,0],[10.486,0],[0,0],[0,10.486],[0,0],[-10.486,0],[0,0]],"v":[[0,-5],[19,-24],[19,-24],[38,-5],[38,5],[19,24],[19,24],[0,5]],"c":true}],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-12.154,0],[0,0],[0,-12.154],[0,0],[12.154,0],[0,0],[0,12.154]],"o":[[0,-12.154],[0,0],[12.154,0],[0,0],[0,12.154],[0,0],[-12.154,0],[0,0]],"v":[[0,-1.977],[22.023,-24],[22.023,-24],[44.045,-1.977],[44.045,1.977],[22.023,24],[22.023,24],[0,1.977]],"c":true}],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.079,0],[0,0],[0,-13.079],[0,0],[13.079,0],[0,0],[0,13.079]],"o":[[0,-13.079],[0,0],[13.079,0],[0,0],[0,13.079],[0,0],[-13.079,0],[0,0]],"v":[[0,-0.302],[23.698,-24],[23.698,-24],[47.396,-0.302],[47.396,0.302],[23.698,24],[23.698,24],[0,0.302]],"c":true}],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[24,-24],[48,0],[48,0],[24,24],[24,24],[0,0]],"c":true}],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[24.149,-24],[48.149,0],[48.149,0],[24.149,24],[24,24],[0,0]],"c":true}],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[24.698,-24],[48.698,0],[48.698,0],[24.698,24],[24,24],[0,0]],"c":true}],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[25.714,-24],[49.714,0],[49.714,0],[25.714,24],[24,24],[0,0]],"c":true}],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[26.973,-24],[50.973,0],[50.973,0],[26.973,24],[24,24],[0,0]],"c":true}],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[28.19,-24],[52.19,0],[52.19,0],[28.19,24],[24,24],[0,0]],"c":true}],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[29.268,-24],[53.268,0],[53.268,0],[29.268,24],[24,24],[0,0]],"c":true}],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[30.206,-24],[54.206,0],[54.206,0],[30.206,24],[24,24],[0,0]],"c":true}],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[31.028,-24],[55.028,0],[55.028,0],[31.028,24],[24,24],[0,0]],"c":true}],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[31.755,-24],[55.755,0],[55.755,0],[31.755,24],[24,24],[0,0]],"c":true}],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[32.405,-24],[56.405,0],[56.405,0],[32.405,24],[24,24],[0,0]],"c":true}],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[32.99,-24],[56.99,0],[56.99,0],[32.99,24],[24,24],[0,0]],"c":true}],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[33.522,-24],[57.522,0],[57.522,0],[33.522,24],[24,24],[0,0]],"c":true}],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[34.006,-24],[58.006,0],[58.006,0],[34.006,24],[24,24],[0,0]],"c":true}],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[34.451,-24],[58.451,0],[58.451,0],[34.451,24],[24,24],[0,0]],"c":true}],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[34.861,-24],[58.861,0],[58.861,0],[34.861,24],[24,24],[0,0]],"c":true}],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[35.24,-24],[59.24,0],[59.24,0],[35.24,24],[24,24],[0,0]],"c":true}],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[35.591,-24],[59.591,0],[59.591,0],[35.591,24],[24,24],[0,0]],"c":true}],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[35.917,-24],[59.917,0],[59.917,0],[35.917,24],[24,24],[0,0]],"c":true}],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[36.221,-24],[60.221,0],[60.221,0],[36.221,24],[24,24],[0,0]],"c":true}],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[36.504,-24],[60.504,0],[60.504,0],[36.504,24],[24,24],[0,0]],"c":true}],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[36.769,-24],[60.769,0],[60.769,0],[36.769,24],[24,24],[0,0]],"c":true}],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[37.017,-24],[61.017,0],[61.017,0],[37.017,24],[24,24],[0,0]],"c":true}],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[37.248,-24],[61.248,0],[61.248,0],[37.248,24],[24,24],[0,0]],"c":true}],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[37.465,-24],[61.465,0],[61.465,0],[37.465,24],[24,24],[0,0]],"c":true}],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[37.669,-24],[61.669,0],[61.669,0],[37.669,24],[24,24],[0,0]],"c":true}],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[37.859,-24],[61.859,0],[61.859,0],[37.859,24],[24,24],[0,0]],"c":true}],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[38.038,-24],[62.038,0],[62.038,0],[38.038,24],[24,24],[0,0]],"c":true}],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[38.205,-24],[62.205,0],[62.205,0],[38.205,24],[24,24],[0,0]],"c":true}],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[38.362,-24],[62.362,0],[62.362,0],[38.362,24],[24,24],[0,0]],"c":true}],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[38.509,-24],[62.509,0],[62.509,0],[38.509,24],[24,24],[0,0]],"c":true}],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[38.647,-24],[62.647,0],[62.647,0],[38.647,24],[24,24],[0,0]],"c":true}],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[38.776,-24],[62.776,0],[62.776,0],[38.776,24],[24,24],[0,0]],"c":true}],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[38.896,-24],[62.896,0],[62.896,0],[38.896,24],[24,24],[0,0]],"c":true}],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.008,-24],[63.008,0],[63.008,0],[39.008,24],[24,24],[0,0]],"c":true}],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.113,-24],[63.113,0],[63.113,0],[39.113,24],[24,24],[0,0]],"c":true}],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.21,-24],[63.21,0],[63.21,0],[39.21,24],[24,24],[0,0]],"c":true}],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.3,-24],[63.3,0],[63.3,0],[39.3,24],[24,24],[0,0]],"c":true}],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.384,-24],[63.384,0],[63.384,0],[39.384,24],[24,24],[0,0]],"c":true}],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.461,-24],[63.461,0],[63.461,0],[39.461,24],[24,24],[0,0]],"c":true}],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.532,-24],[63.532,0],[63.532,0],[39.532,24],[24,24],[0,0]],"c":true}],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.597,-24],[63.597,0],[63.597,0],[39.597,24],[24,24],[0,0]],"c":true}],"t":203,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.657,-24],[63.657,0],[63.657,0],[39.657,24],[24,24],[0,0]],"c":true}],"t":204,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.711,-24],[63.711,0],[63.711,0],[39.711,24],[24,24],[0,0]],"c":true}],"t":205,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.76,-24],[63.76,0],[63.76,0],[39.76,24],[24,24],[0,0]],"c":true}],"t":206,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.804,-24],[63.804,0],[63.804,0],[39.804,24],[24,24],[0,0]],"c":true}],"t":207,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.843,-24],[63.843,0],[63.843,0],[39.843,24],[24,24],[0,0]],"c":true}],"t":208,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.877,-24],[63.877,0],[63.877,0],[39.877,24],[24,24],[0,0]],"c":true}],"t":209,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.907,-24],[63.907,0],[63.907,0],[39.907,24],[24,24],[0,0]],"c":true}],"t":210,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.932,-24],[63.932,0],[63.932,0],[39.932,24],[24,24],[0,0]],"c":true}],"t":211,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[0,0],[24,-24],[39.971,-24],[63.971,0],[63.971,0],[39.971,24],[24,24],[0,0]],"c":true}],"t":213,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"k":[{"s":[0,0],"t":25,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0],"t":450,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"IndieCorners Shape","bm":0,"hd":false}],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".tertiaryFixedDim","cl":"tertiaryFixedDim","parent":6,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":249,"s":[100]},{"t":255,"s":[0]}]},"r":{"a":0,"k":0},"p":{"k":[{"s":[0,0,0],"t":123,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0,0],"t":124,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.001,0,0],"t":125,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.005,0,0],"t":126,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.013,0,0],"t":127,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.029,0,0],"t":128,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.054,0,0],"t":129,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.089,0,0],"t":130,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.134,0,0],"t":131,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.193,0,0],"t":132,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.267,0,0],"t":133,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.358,0,0],"t":134,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.466,0,0],"t":135,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.593,0,0],"t":136,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.739,0,0],"t":137,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0.903,0,0],"t":138,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[1.054,0,0],"t":139,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[1.22,0,0],"t":140,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[1.403,0,0],"t":141,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[1.602,0,0],"t":142,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[1.821,0,0],"t":143,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[2.059,0,0],"t":144,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[2.319,0,0],"t":145,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[2.601,0,0],"t":146,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[2.909,0,0],"t":147,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[3.242,0,0],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[3.604,0,0],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[3.998,0,0],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[4.427,0,0],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[4.897,0,0],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[5.407,0,0],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[5.965,0,0],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[6.576,0,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[7.246,0,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[7.983,0,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[8.8,0,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[9.701,0,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[10.699,0,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[11.808,0,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[13.041,0,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[14.414,0,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[15.945,0,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[17.621,0,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[19.429,0,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[21.324,0,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[23.241,0,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[25.111,0,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[26.859,0,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[28.457,0,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[29.897,0,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[31.185,0,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[32.333,0,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[33.36,0,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[34.272,0,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[35.088,0,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[35.82,0,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[36.479,0,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.076,0,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[37.613,0,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[38.099,0,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[38.538,0,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[38.937,0,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[39.299,0,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[39.629,0,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[39.927,0,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[40.198,0,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[40.442,0,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[40.663,0,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[40.862,0,0],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.041,0,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.2,0,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.342,0,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.467,0,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.577,0,0],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.672,0,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.754,0,0],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.822,0,0],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.879,0,0],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.925,0,0],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[41.961,0,0],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"Super Slider","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.64],"y":[0.48]},"o":{"x":[0.36],"y":[0]},"t":121,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[17.5]},{"t":205,"s":[100]}]}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":247,"s":[28,28]},{"t":257,"s":[36,36]}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":247,"s":[33,0],"to":[0,0],"ti":[0,0]},{"t":257,"s":[41,0]}]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"right circle","bm":0,"hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":247,"s":[28,28]},{"t":257,"s":[36,36]}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[-41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":247,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"t":257,"s":[-41,0]}]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"left circle","bm":0,"hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":247,"s":[28,28]},{"t":257,"s":[36,36]}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"size","bm":0,"hd":false}],"ip":37,"op":345,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".onTertiaryFixedVariant","cl":"onTertiaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,459,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[200,128]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":18},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Frame 1321317559","bm":0,"hd":false}],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":3,"nm":"pb:scale","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"k":[{"s":[277.263,197.5,0],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.43,197.5,0],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.681,197.5,0],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.85,197.5,0],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.058,197.5,0],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.313,197.5,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.63,197.5,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.023,197.5,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.517,197.5,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.151,197.5,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.992,197.5,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[282.175,197.5,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[283.778,197.5,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[285.586,197.5,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[287.564,197.5,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[289.63,197.5,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[291.671,197.5,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[293.578,197.5,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[295.298,197.5,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[296.823,197.5,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[298.167,197.5,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[299.353,197.5,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[300.405,197.5,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[301.343,197.5,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[302.187,197.5,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[302.949,197.5,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[303.641,197.5,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[304.271,197.5,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[304.846,197.5,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[305.373,197.5,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[305.858,197.5,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[306.306,197.5,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[306.72,197.5,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[307.103,197.5,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[307.459,197.5,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[307.789,197.5,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[308.096,197.5,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[308.382,197.5,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[308.648,197.5,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[308.895,197.5,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[309.126,197.5,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[309.34,197.5,0],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[309.54,197.5,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[309.726,197.5,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[309.901,197.5,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[310.063,197.5,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[310.352,197.5,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[310.599,197.5,0],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[310.903,197.5,0],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[311.196,197.5,0],"t":206,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[311.191,197.5,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[310.194,197.5,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[308.275,197.5,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[304.841,197.5,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[297.7,197.5,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[289.568,197.5,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[285.993,197.5,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[283.914,197.5,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[282.504,197.5,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[281.464,197.5,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.661,197.5,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.021,197.5,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.499,197.5,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.068,197.5,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.705,197.5,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.401,197.5,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.143,197.5,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.925,197.5,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.741,197.5,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.585,197.5,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.345,197.5,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.074,197.5,0],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"a":{"a":0,"k":[0,0,0]},"s":{"k":[{"s":[99.914,99.914,100],"t":146,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.848,99.848,100],"t":148,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.751,99.751,100],"t":150,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.685,99.685,100],"t":151,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.605,99.605,100],"t":152,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.507,99.507,100],"t":153,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.387,99.387,100],"t":154,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.239,99.239,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.056,99.056,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.829,98.829,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.542,98.542,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.174,98.174,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.686,97.686,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97,97,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.071,96.071,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.025,95.025,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.878,93.878,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.678,92.678,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[91.495,91.495,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.39,90.39,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[89.393,89.393,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.508,88.508,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[87.729,87.729,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[87.041,87.041,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[86.43,86.43,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.886,85.886,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.397,85.397,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[84.956,84.956,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[84.555,84.555,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[84.191,84.191,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[83.857,83.857,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[83.552,83.552,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[83.271,83.271,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[83.011,83.011,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[82.771,82.771,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[82.549,82.549,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[82.342,82.342,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[82.151,82.151,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.973,81.973,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.807,81.807,100],"t":187,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.653,81.653,100],"t":188,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.51,81.51,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.376,81.376,100],"t":190,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.251,81.251,100],"t":191,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.135,81.135,100],"t":192,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.027,81.027,100],"t":193,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.926,80.926,100],"t":194,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.833,80.833,100],"t":195,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.746,80.746,100],"t":196,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.665,80.665,100],"t":197,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.591,80.591,100],"t":198,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.522,80.522,100],"t":199,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.458,80.458,100],"t":200,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.4,80.4,100],"t":201,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.346,80.346,100],"t":202,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.298,80.298,100],"t":203,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.253,80.253,100],"t":204,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.176,80.176,100],"t":206,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.115,80.115,100],"t":208,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.049,80.049,100],"t":211,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.179,80.179,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.757,80.757,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.87,81.87,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[83.86,83.86,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88,88,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.714,92.714,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.789,94.789,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.992,95.992,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.809,96.809,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.412,97.412,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.878,97.878,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.249,98.249,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.553,98.553,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.803,98.803,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.012,99.012,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.188,99.188,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.337,99.337,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.464,99.464,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.661,99.661,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.737,99.737,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.8,99.8,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.896,99.896,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.99,99.99,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}]}},"ao":0,"ef":[{"ty":5,"nm":"Void","np":19,"mn":"Pseudo/250958","ix":1,"en":1,"ef":[{"ty":0,"nm":"Width","mn":"Pseudo/250958-0001","ix":1,"v":{"a":0,"k":100}},{"ty":0,"nm":"Height","mn":"Pseudo/250958-0002","ix":2,"v":{"a":0,"k":100}},{"ty":0,"nm":"Offset X","mn":"Pseudo/250958-0003","ix":3,"v":{"a":0,"k":0}},{"ty":0,"nm":"Offset Y","mn":"Pseudo/250958-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Roundness","mn":"Pseudo/250958-0005","ix":5,"v":{"a":0,"k":0}},{"ty":6,"nm":"About","mn":"Pseudo/250958-0006","ix":6,"v":0},{"ty":6,"nm":"Plague of null layers.","mn":"Pseudo/250958-0007","ix":7,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0008","ix":8,"v":0},{"ty":6,"nm":"Following projects","mn":"Pseudo/250958-0009","ix":9,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0010","ix":10,"v":0},{"ty":6,"nm":"through time.","mn":"Pseudo/250958-0011","ix":11,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0012","ix":12,"v":0},{"ty":6,"nm":"Be free of the past.","mn":"Pseudo/250958-0013","ix":13,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0014","ix":14,"v":0},{"ty":6,"nm":"Copyright 2023 Battle Axe Inc","mn":"Pseudo/250958-0015","ix":15,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0016","ix":16,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0017","ix":17,"v":0}]}],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onTertiaryFixed","cl":"onTertiaryFixed","parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":253,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":256,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":389,"s":[100]},{"t":392,"s":[0]}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"Global Position","np":4,"mn":"Pseudo/88900","ix":1,"en":1,"ef":[{"ty":10,"nm":"Master Parent","mn":"Pseudo/88900-0001","ix":1,"v":{"a":0,"k":7}},{"ty":3,"nm":"Global Position","mn":"Pseudo/88900-0002","ix":2,"v":{"k":[{"s":[277.263,197.5],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.43,197.5],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.681,197.5],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.85,197.5],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.058,197.5],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.313,197.5],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.63,197.5],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.023,197.5],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.517,197.5],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.151,197.5],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.992,197.5],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[282.175,197.5],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[283.778,197.5],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[285.586,197.5],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[287.564,197.5],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[289.63,197.5],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[291.671,197.5],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[293.578,197.5],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[295.298,197.5],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[296.823,197.5],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[298.167,197.5],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[299.353,197.5],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[300.405,197.5],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[301.343,197.5],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[302.187,197.5],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[302.949,197.5],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[303.641,197.5],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[304.271,197.5],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[304.846,197.5],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[305.373,197.5],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[305.858,197.5],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[306.306,197.5],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[306.72,197.5],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[307.103,197.5],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[307.459,197.5],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[307.789,197.5],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[308.096,197.5],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[308.382,197.5],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[308.648,197.5],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[308.895,197.5],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[309.126,197.5],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[309.34,197.5],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[309.54,197.5],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[309.726,197.5],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[309.901,197.5],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[310.063,197.5],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[310.352,197.5],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[310.599,197.5],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[310.903,197.5],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[311.196,197.5],"t":206,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[311.5,197.5],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[310.936,197.788],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[308.7,199.014],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[304.071,202.033],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[298.438,206.77],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[293.978,211.581],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[290.807,215.785],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[288.487,219.444],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[286.718,222.659],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[285.317,225.519],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[284.171,228.085],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[283.211,230.396],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[282.392,232.474],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[281.682,234.334],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[281.059,235.992],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.506,237.461],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.012,238.754],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.568,239.881],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.169,240.855],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.809,241.684],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.487,242.379],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.199,242.951],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.943,243.409],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.72,243.76],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.528,243.874],"t":274,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.369,243.701],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.24,243.336],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.142,242.847],"t":277,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.073,242.284],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.033,241.684],"t":279,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.02,241.075],"t":280,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.02,240.497],"t":281,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.02,239.98],"t":282,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.02,239.538],"t":283,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.02,239.181],"t":284,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.02,238.917],"t":285,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.02,239.065],"t":293,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.02,239.265],"t":295,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.02,239.455],"t":297,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.02,239.685],"t":300,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.85,239.729],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.285,239.199],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.162,238.218],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.05,236.594],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[267.986,234.04],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[265.592,226.983],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[270.166,217.207],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[272.184,212.309],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.238,209.328],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.904,207.237],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[274.379,205.654],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[274.741,204.399],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.029,203.375],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.267,202.521],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.466,201.799],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.638,201.182],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.788,200.65],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.921,200.189],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.041,199.789],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.149,199.439],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.246,199.134],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.337,198.867],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.419,198.634],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.495,198.431],"t":404,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.566,198.255],"t":405,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.632,198.103],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.692,197.973],"t":407,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.748,197.862],"t":408,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.86,197.692],"t":410,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]}}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.2,0.2],"y":[0,0]},"t":250,"s":[504,315]},{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0]},"t":280,"s":[30,30]},{"i":{"x":[0.8,0.8],"y":[0.15,0.15]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":380,"s":[30,30]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.05,0.05],"y":[0.7,0.7]},"t":386,"s":[219.6,144]},{"t":416,"s":[504,315]}]},"p":{"a":0,"k":[0,0]},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":250,"s":[28]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":280,"s":[30]},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":380,"s":[30]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":386,"s":[29.2]},{"t":416,"s":[28]}]},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450982481,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"matte","parent":7,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":250,"s":[0,0,0],"to":[-28.906,14.531,0],"ti":[7.183,-8.833,0]},{"t":280,"s":[-43.1,53,0],"h":1},{"i":{"x":0.8,"y":0.15},"o":{"x":0.3,"y":0},"t":380,"s":[-43.1,53,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":386,"s":[-25.86,31.8,0],"to":[7.183,-8.833,0],"ti":[-7.167,9.833,0]},{"t":416,"s":[0,0,0]}]},"a":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.28,"y":0},"t":255,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.573,"y":1},"o":{"x":0.236,"y":0},"t":273,"s":[0,-6,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.28,"y":0},"t":287,"s":[0,1.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":307,"s":[0,0,0]}]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.2,0.2],"y":[0,0]},"t":250,"s":[504,315]},{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0,0]},"t":280,"s":[30,30]},{"i":{"x":[0.8,0.8],"y":[0.15,0.15]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":380,"s":[30,30]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.05,0.05],"y":[0.7,0.7]},"t":386,"s":[219.6,144]},{"t":416,"s":[504,315]}]},"p":{"a":0,"k":[0,0]},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":250,"s":[28]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":280,"s":[30]},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":380,"s":[30]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":386,"s":[29.2]},{"t":416,"s":[28]}]},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"Back_LofiApp","parent":9,"tt":1,"tp":9,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[252,157.5,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":250,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":280,"s":[10,10,100]},{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":380,"s":[10,10,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.7,0.7,0]},"t":386,"s":[46,46,100]},{"t":416,"s":[100,100,100]}]}},"ao":0,"w":504,"h":315,"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"behindApp","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":253,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":259,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":386,"s":[0]},{"t":397,"s":[100]}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,197.5,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[503.5,314.5]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":28},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"frame","bm":0,"hd":false}],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"Back_LofiLauncher","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,197.5,0]},"a":{"a":0,"k":[252,157.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":504,"h":315,"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".tertiaryFixedDim","cl":"tertiaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,197.5,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[504,315]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":28},"nm":"Rectangle Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":14},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"op","nm":"Stroke align: Outside","a":{"k":[{"s":[7],"t":25,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7],"t":450,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"lj":1,"ml":{"a":0,"k":4},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"frame","bm":0,"hd":false}],"ip":0,"op":451,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".onTertiaryFixed","cl":"onTertiaryFixed","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,282,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[554,564]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"container for media","bm":0,"hd":false}],"ip":0,"op":451,"st":0,"ct":1,"bm":0}]},{"id":"comp_1","nm":"Back_LofiApp","fr":60,"pfr":1,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".onTertiaryFixedVariant","cl":"onTertiaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[339.937,151.75,0]},"a":{"a":0,"k":[339.937,151.75,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.021,-1.766],[0,0],[-2.043,0],[0,0],[1.022,1.767]],"o":[[-1.021,-1.766],[0,0],[-1.022,1.767],[0,0],[2.043,0],[0,0]],"v":[[2.297,-7.675],[-2.297,-7.675],[-9.64,5.025],[-7.343,9],[7.343,9],[9.64,5.025]],"c":true}},"nm":"Path 1","hd":false},{"ty":"rd","nm":"Round Corners 1","r":{"a":0,"k":9},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Triangle","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[481.874,21]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Triangle","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[18,18]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":200},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Rectangle","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[457.874,21]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Rectangle","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[292,25]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":200},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Text field","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[334,279]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Text field","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[109,28]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":12},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Sent","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[425.5,208.5]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Sent","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[160,56]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":14},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Sent","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[400,158.5]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Sent","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[126,40]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":14},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Received","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[251,78.5]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Received","bm":0,"hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".onTertiaryFixed","cl":"onTertiaryFixed","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[334,157.5,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[340,315]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":16},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Message","bm":0,"hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onTertiaryFixedVariant","cl":"onTertiaryFixedVariant","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[82,171.125,0]},"a":{"a":0,"k":[82,171.125,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":39.375},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 2","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[80,177.125]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":39.375},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[94,165.125]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":39.375},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Avatar","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[34,171.125]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"circle 2","bm":0,"hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".onTertiaryFixed","cl":"onTertiaryFixed","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[82,140,0]},"a":{"a":0,"k":[82,140.938,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,22]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":39.375},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Search","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[82,31.5]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"header","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":200},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 2","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[80,257.375]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":200},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[94,245.375]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":200},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Avatar","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[34,251.375]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"circle 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,64]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":12},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Message","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[82,171]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"block","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[64,8]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":200},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 2","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[80,96.875]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[92,8]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":200},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[94,84.875]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Line 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,20]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":200},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Avatar","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[34,90.875]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"circle 1","bm":0,"hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".onTertiaryFixedVariant","cl":"onTertiaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[252,157.5,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[504,315]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":18},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"app only","bm":0,"hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_2","nm":"Back_LofiLauncher","fr":60,"pfr":1,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".onTertiaryFixed","cl":"onTertiaryFixed","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[0,117.5,0]},"a":{"a":0,"k":[252,275,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":25,"nm":"Drop Shadow","np":8,"mn":"ADBE Drop Shadow","ix":1,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 2","np":8,"mn":"ADBE Drop Shadow","ix":2,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 3","np":8,"mn":"ADBE Drop Shadow","ix":3,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 4","np":8,"mn":"ADBE Drop Shadow","ix":4,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 5","np":8,"mn":"ADBE Drop Shadow","ix":5,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 6","np":8,"mn":"ADBE Drop Shadow","ix":6,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 7","np":8,"mn":"ADBE Drop Shadow","ix":7,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 8","np":8,"mn":"ADBE Drop Shadow","ix":8,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 9","np":8,"mn":"ADBE Drop Shadow","ix":9,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 10","np":8,"mn":"ADBE Drop Shadow","ix":10,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 11","np":8,"mn":"ADBE Drop Shadow","ix":11,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 12","np":8,"mn":"ADBE Drop Shadow","ix":12,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[444,275]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"hotseat - 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[396,275]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"hotseat - 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[348,275]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"hotseat - 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[300,275]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"hotseat - 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[252,275]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"hotseat - 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[168,20]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":15},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"qsb","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[132,275]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"qsb","bm":0,"hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".onTertiaryFixed","cl":"onTertiaryFixed","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[0,-29.497,0]},"a":{"a":0,"k":[252,128.003,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":25,"nm":"Drop Shadow","np":8,"mn":"ADBE Drop Shadow","ix":1,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 2","np":8,"mn":"ADBE Drop Shadow","ix":2,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 3","np":8,"mn":"ADBE Drop Shadow","ix":3,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 4","np":8,"mn":"ADBE Drop Shadow","ix":4,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.144,20.144],[20.144,-20.144],[0,0],[-20.144,-20.144],[-20.144,20.144],[0,0]],"o":[[-20.144,-20.144],[0,0],[-20.144,20.144],[20.144,20.144],[0,0],[20.144,-20.144]],"v":[[44.892,-44.892],[-28.057,-44.892],[-44.892,-28.057],[-44.892,44.892],[28.057,44.892],[44.892,28.057]],"c":true}},"nm":"Path 1","hd":false},{"ty":"rd","nm":"Round Corners 1","r":{"a":0,"k":15},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"widgets","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[108,152.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"widgets weather","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[4.782,-2.684],[0,0],[2.63,-0.033],[0,0],[2.807,-4.716],[0,0],[2.263,-1.343],[0,0],[0.066,-5.485],[0,0],[1.292,-2.295],[0,0],[-2.683,-4.784],[0,0],[-0.033,-2.63],[0,0],[-4.716,-2.807],[0,0],[-1.338,-2.263],[0,0],[-5.483,-0.066],[0,0],[-2.296,-1.292],[0,0],[-4.782,2.683],[0,0],[-2.63,0.033],[0,0],[-2.807,4.716],[0,0],[-2.263,1.338],[0,0],[-0.066,5.483],[0,0],[-1.292,2.295],[0,0],[2.683,4.784],[0,0],[0.033,2.631],[0,0],[4.716,2.801],[0,0],[1.338,2.262],[0,0],[5.483,0.068],[0,0],[2.296,1.287]],"o":[[-4.782,-2.684],[0,0],[-2.296,1.287],[0,0],[-5.483,0.068],[0,0],[-1.338,2.262],[0,0],[-4.716,2.801],[0,0],[-0.033,2.631],[0,0],[-2.683,4.784],[0,0],[1.292,2.295],[0,0],[0.066,5.483],[0,0],[2.263,1.338],[0,0],[2.807,4.716],[0,0],[2.63,0.033],[0,0],[4.782,2.683],[0,0],[2.296,-1.292],[0,0],[5.483,-0.066],[0,0],[1.338,-2.263],[0,0],[4.716,-2.807],[0,0],[0.033,-2.63],[0,0],[2.683,-4.784],[0,0],[-1.292,-2.295],[0,0],[-0.066,-5.485],[0,0],[-2.263,-1.343],[0,0],[-2.807,-4.716],[0,0],[-2.63,-0.033],[0,0]],"v":[[7.7,-57.989],[-7.7,-57.989],[-11.019,-56.128],[-18.523,-54.117],[-22.327,-54.07],[-35.668,-46.369],[-37.609,-43.1],[-43.099,-37.605],[-46.372,-35.663],[-54.072,-22.324],[-54.118,-18.522],[-56.132,-11.016],[-57.988,-7.7],[-57.988,7.703],[-56.132,11.019],[-54.118,18.524],[-54.072,22.328],[-46.372,35.669],[-43.099,37.611],[-37.609,43.101],[-35.668,46.373],[-22.327,54.074],[-18.523,54.12],[-11.019,56.133],[-7.7,57.99],[7.7,57.99],[11.019,56.133],[18.523,54.12],[22.327,54.074],[35.668,46.373],[37.609,43.101],[43.099,37.611],[46.372,35.669],[54.072,22.328],[54.118,18.524],[56.132,11.019],[57.988,7.703],[57.988,-7.7],[56.132,-11.016],[54.118,-18.522],[54.072,-22.324],[46.372,-35.663],[43.099,-37.605],[37.609,-43.1],[35.668,-46.369],[22.327,-54.07],[18.523,-54.117],[11.019,-56.128]],"c":true}},"nm":"Path 1","hd":false},{"ty":"rd","nm":"Round Corners 1","r":{"a":0,"k":15},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"widgets","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[396,104.003]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"widgets clock","bm":0,"hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".onTertiaryFixed","cl":"onTertiaryFixed","parent":4,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[0,-29.497,0]},"a":{"a":0,"k":[252,128.003,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":25,"nm":"Drop Shadow","np":8,"mn":"ADBE Drop Shadow","ix":1,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 2","np":8,"mn":"ADBE Drop Shadow","ix":2,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 3","np":8,"mn":"ADBE Drop Shadow","ix":3,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 4","np":8,"mn":"ADBE Drop Shadow","ix":4,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 5","np":8,"mn":"ADBE Drop Shadow","ix":5,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 6","np":8,"mn":"ADBE Drop Shadow","ix":6,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 7","np":8,"mn":"ADBE Drop Shadow","ix":7,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 8","np":8,"mn":"ADBE Drop Shadow","ix":8,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 9","np":8,"mn":"ADBE Drop Shadow","ix":9,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 10","np":8,"mn":"ADBE Drop Shadow","ix":10,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 11","np":8,"mn":"ADBE Drop Shadow","ix":11,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 12","np":8,"mn":"ADBE Drop Shadow","ix":12,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 13","np":8,"mn":"ADBE Drop Shadow","ix":13,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.039999999106]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":10.2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0.394}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":1.181}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]},{"ty":25,"nm":"Drop Shadow 14","np":8,"mn":"ADBE Drop Shadow","ix":14,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[0,0,0,0.029999999329]}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":7.65}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":180}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":2.362}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0}}]}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[444,200.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"app - 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[348,200.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"app - 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[252,128.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"app - 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[252,56.002]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"app - 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[156,56.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"app - 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215686275,0.125490196078,0.027450980392,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"apps","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[60,56.004]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"app - 1","bm":0,"hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"Scale Up","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[252,157.5,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":250,"s":[85,85,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.7,0.7,0]},"t":256,"s":[91,91,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":286,"s":[100,100,100]},{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":380,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.7,0.7,0]},"t":386,"s":[96,96,100]},{"t":416,"s":[90,90,100]}]}},"ao":0,"ef":[{"ty":5,"nm":"Void","np":19,"mn":"Pseudo/250958","ix":1,"en":1,"ef":[{"ty":0,"nm":"Width","mn":"Pseudo/250958-0001","ix":1,"v":{"a":0,"k":100}},{"ty":0,"nm":"Height","mn":"Pseudo/250958-0002","ix":2,"v":{"a":0,"k":100}},{"ty":0,"nm":"Offset X","mn":"Pseudo/250958-0003","ix":3,"v":{"a":0,"k":0}},{"ty":0,"nm":"Offset Y","mn":"Pseudo/250958-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Roundness","mn":"Pseudo/250958-0005","ix":5,"v":{"a":0,"k":0}},{"ty":6,"nm":"About","mn":"Pseudo/250958-0006","ix":6,"v":0},{"ty":6,"nm":"Plague of null layers.","mn":"Pseudo/250958-0007","ix":7,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0008","ix":8,"v":0},{"ty":6,"nm":"Following projects","mn":"Pseudo/250958-0009","ix":9,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0010","ix":10,"v":0},{"ty":6,"nm":"through time.","mn":"Pseudo/250958-0011","ix":11,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0012","ix":12,"v":0},{"ty":6,"nm":"Be free of the past.","mn":"Pseudo/250958-0013","ix":13,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0014","ix":14,"v":0},{"ty":6,"nm":"Copyright 2023 Battle Axe Inc","mn":"Pseudo/250958-0015","ix":15,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0016","ix":16,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0017","ix":17,"v":0}]}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".onTertiaryFixedVariant","cl":"onTertiaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[252,157.5,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[504,315]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":28},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"illustrations: action key","bm":0,"hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_3","nm":"Back_RightDismiss","fr":60,"pfr":1,"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"release Scale","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"s":true,"x":{"a":0,"k":476},"y":{"a":0,"k":197}},"a":{"a":0,"k":[0,0,0]},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.08,0.08,0.08],"y":[0.47,0.47,0]},"t":250,"s":[100,100,100]},{"i":{"x":[0.999,0.999,0.999],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":254,"s":[105,105,100]},{"t":266,"s":[50,50,100]}]}},"ao":0,"ef":[{"ty":5,"nm":"Void","np":19,"mn":"Pseudo/250958","ix":1,"en":1,"ef":[{"ty":0,"nm":"Width","mn":"Pseudo/250958-0001","ix":1,"v":{"a":0,"k":100}},{"ty":0,"nm":"Height","mn":"Pseudo/250958-0002","ix":2,"v":{"a":0,"k":100}},{"ty":0,"nm":"Offset X","mn":"Pseudo/250958-0003","ix":3,"v":{"a":0,"k":0}},{"ty":0,"nm":"Offset Y","mn":"Pseudo/250958-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Roundness","mn":"Pseudo/250958-0005","ix":5,"v":{"a":0,"k":0}},{"ty":6,"nm":"About","mn":"Pseudo/250958-0006","ix":6,"v":0},{"ty":6,"nm":"Plague of null layers.","mn":"Pseudo/250958-0007","ix":7,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0008","ix":8,"v":0},{"ty":6,"nm":"Following projects","mn":"Pseudo/250958-0009","ix":9,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0010","ix":10,"v":0},{"ty":6,"nm":"through time.","mn":"Pseudo/250958-0011","ix":11,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0012","ix":12,"v":0},{"ty":6,"nm":"Be free of the past.","mn":"Pseudo/250958-0013","ix":13,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0014","ix":14,"v":0},{"ty":6,"nm":"Copyright 2023 Battle Axe Inc","mn":"Pseudo/250958-0015","ix":15,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0016","ix":16,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0017","ix":17,"v":0}]}],"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".onTertiary","cl":"onTertiary","parent":3,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":151,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":154,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[100]},{"t":258,"s":[0]}]},"r":{"a":0,"k":0},"p":{"k":[{"s":[-0.692,0,0],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-4.692,0,0],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-5.392,0,0],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-9.675,0,0],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-14.521,0,0],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-16.835,0,0],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-18.141,0,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-18.925,0,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.386,0,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.622,0,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.692,0,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-22.714,0,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-24.39,0,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-24.692,0,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-24.766,0,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-25.041,0,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-25.549,0,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-26.178,0,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-26.787,0,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-27.326,0,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-27.795,0,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-28.206,0,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-28.57,0,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-28.894,0,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-29.187,0,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-29.453,0,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-29.695,0,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-29.917,0,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-30.122,0,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-30.312,0,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-30.487,0,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-30.65,0,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-30.802,0,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-30.944,0,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.076,0,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.2,0,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.316,0,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.424,0,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.526,0,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.621,0,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.711,0,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.795,0,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.873,0,0],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.947,0,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.015,0,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.08,0,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.14,0,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.196,0,0],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.248,0,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.297,0,0],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.342,0,0],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.384,0,0],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.422,0,0],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.458,0,0],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.49,0,0],"t":203,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.52,0,0],"t":204,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.547,0,0],"t":205,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.572,0,0],"t":206,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.594,0,0],"t":207,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.613,0,0],"t":208,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.645,0,0],"t":210,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.677,0,0],"t":213,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.36,"y":0},"t":150,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[5.459,5.2],[-3.459,0],[5.459,-5.2]],"c":false}]},{"i":{"x":0.02,"y":1},"o":{"x":0.167,"y":0.167},"t":152,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[4.779,4.88],[-3.459,0],[4.779,-4.88]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":159,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[3.459,7.2],[-3.459,0],[3.459,-7.2]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.12,"y":0},"t":162,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[3.459,7.2],[-3.459,0],[3.459,-7.2]],"c":false}]},{"t":217,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[3.459,9.2],[-3.459,0],[3.459,-9.2]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.121568627656,0.211764708161,0.101960785687,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":4},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Vector 1","bm":0,"hd":false}],"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".tertiaryFixedDim","cl":"tertiaryFixedDim","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":257,"s":[100]},{"t":260,"s":[0]}]},"r":{"a":0,"k":0},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.22],"y":[1]},"o":{"x":[0.06],"y":[-0.15]},"t":160,"s":[13.981]},{"t":189,"s":[-0.019]}]},"y":{"a":0,"k":0}},"a":{"a":0,"k":[-31.019,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"IndieCorners","np":21,"mn":"Pseudo/0.20784385308943532","ix":1,"en":1,"ef":[{"ty":7,"nm":"Align","mn":"Pseudo/0.20784385308943532-0001","ix":1,"v":{"a":0,"k":4}},{"ty":6,"nm":"Size","mn":"Pseudo/0.20784385308943532-0002","ix":2,"v":0},{"ty":0,"nm":"w","mn":"Pseudo/0.20784385308943532-0003","ix":3,"v":{"a":1,"k":[{"t":149,"s":[0],"h":1},{"i":{"x":[0.02],"y":[1]},"o":{"x":[0.365],"y":[0]},"t":150,"s":[8]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.336],"y":[0]},"t":159,"s":[38]},{"i":{"x":[0.002],"y":[1]},"o":{"x":[0.119],"y":[0]},"t":162,"s":[48]},{"t":217,"s":[64]}]}},{"ty":0,"nm":"h","mn":"Pseudo/0.20784385308943532-0004","ix":4,"v":{"a":0,"k":48}},{"ty":6,"nm":"","mn":"Pseudo/0.20784385308943532-0005","ix":5,"v":0},{"ty":6,"nm":"Rounding","mn":"Pseudo/0.20784385308943532-0006","ix":6,"v":0},{"ty":7,"nm":"Same for all corners","mn":"Pseudo/0.20784385308943532-0007","ix":7,"v":{"a":0,"k":1}},{"ty":0,"nm":"All corners","mn":"Pseudo/0.20784385308943532-0008","ix":8,"v":{"a":1,"k":[{"i":{"x":[0.02],"y":[1]},"o":{"x":[0.365],"y":[0]},"t":150,"s":[80]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.336],"y":[0]},"t":159,"s":[24]},{"t":162,"s":[80]}]}},{"ty":0,"nm":"tl","mn":"Pseudo/0.20784385308943532-0009","ix":9,"v":{"a":0,"k":12}},{"ty":0,"nm":"tr","mn":"Pseudo/0.20784385308943532-0010","ix":10,"v":{"a":0,"k":12}},{"ty":0,"nm":"br","mn":"Pseudo/0.20784385308943532-0011","ix":11,"v":{"a":0,"k":12}},{"ty":0,"nm":"bl","mn":"Pseudo/0.20784385308943532-0012","ix":12,"v":{"a":0,"k":12}},{"ty":6,"nm":"","mn":"Pseudo/0.20784385308943532-0013","ix":13,"v":0},{"ty":6,"nm":"Alignment","mn":"Pseudo/0.20784385308943532-0014","ix":14,"v":0},{"ty":0,"nm":"X Anchor %","mn":"Pseudo/0.20784385308943532-0015","ix":15,"v":{"a":0,"k":0}},{"ty":0,"nm":"Y Anchor %","mn":"Pseudo/0.20784385308943532-0016","ix":16,"v":{"a":0,"k":0}},{"ty":0,"nm":"X Position","mn":"Pseudo/0.20784385308943532-0017","ix":17,"v":{"a":0,"k":0}},{"ty":0,"nm":"Y Position ","mn":"Pseudo/0.20784385308943532-0018","ix":18,"v":{"a":0,"k":0}},{"ty":6,"nm":"","mn":"Pseudo/0.20784385308943532-0019","ix":19,"v":0}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"k":[{"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0,-24],[0,-24],[0,-24],[0,-24],[0,24],[0,24],[0,24],[0,24]],"c":true}],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-2.208,0],[0,0],[0,-2.208],[0,0],[2.208,0],[0,0],[0,2.208]],"o":[[0,-2.208],[0,0],[2.208,0],[0,0],[0,2.208],[0,0],[-2.208,0],[0,0]],"v":[[-8,-20],[-4,-24],[-4,-24],[0,-20],[0,20],[-4,24],[-4,24],[-8,20]],"c":true}],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-2.594,0],[0,0],[0,-2.594],[0,0],[2.594,0],[0,0],[0,2.594]],"o":[[0,-2.594],[0,0],[2.594,0],[0,0],[0,2.594],[0,0],[-2.594,0],[0,0]],"v":[[-9.401,-19.3],[-4.7,-24],[-4.7,-24],[0,-19.3],[0,19.3],[-4.7,24],[-4.7,24],[-9.401,19.3]],"c":true}],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-4.958,0],[0,0],[0,-4.958],[0,0],[4.958,0],[0,0],[0,4.958]],"o":[[0,-4.958],[0,0],[4.958,0],[0,0],[0,4.958],[0,0],[-4.958,0],[0,0]],"v":[[-17.967,-15.017],[-8.983,-24],[-8.983,-24],[0,-15.017],[0,15.017],[-8.983,24],[-8.983,24],[-17.967,15.017]],"c":true}],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-7.632,0],[0,0],[0,-7.632],[0,0],[7.632,0],[0,0],[0,7.632]],"o":[[0,-7.632],[0,0],[7.632,0],[0,0],[0,7.632],[0,0],[-7.632,0],[0,0]],"v":[[-27.659,-10.171],[-13.829,-24],[-13.829,-24],[0,-10.171],[0,10.171],[-13.829,24],[-13.829,24],[-27.659,10.171]],"c":true}],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-8.91,0],[0,0],[0,-8.91],[0,0],[8.91,0],[0,0],[0,8.91]],"o":[[0,-8.91],[0,0],[8.91,0],[0,0],[0,8.91],[0,0],[-8.91,0],[0,0]],"v":[[-32.287,-7.856],[-16.144,-24],[-16.144,-24],[0,-7.856],[0,7.856],[-16.144,24],[-16.144,24],[-32.287,7.856]],"c":true}],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-9.63,0],[0,0],[0,-9.63],[0,0],[9.63,0],[0,0],[0,9.63]],"o":[[0,-9.63],[0,0],[9.63,0],[0,0],[0,9.63],[0,0],[-9.63,0],[0,0]],"v":[[-34.898,-6.551],[-17.449,-24],[-17.449,-24],[0,-6.551],[0,6.551],[-17.449,24],[-17.449,24],[-34.898,6.551]],"c":true}],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-10.063,0],[0,0],[0,-10.063],[0,0],[10.063,0],[0,0],[0,10.063]],"o":[[0,-10.063],[0,0],[10.063,0],[0,0],[0,10.063],[0,0],[-10.063,0],[0,0]],"v":[[-36.467,-5.766],[-18.234,-24],[-18.234,-24],[0,-5.766],[0,5.766],[-18.234,24],[-18.234,24],[-36.467,5.766]],"c":true}],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-10.317,0],[0,0],[0,-10.317],[0,0],[10.317,0],[0,0],[0,10.317]],"o":[[0,-10.317],[0,0],[10.317,0],[0,0],[0,10.317],[0,0],[-10.317,0],[0,0]],"v":[[-37.388,-5.306],[-18.694,-24],[-18.694,-24],[0,-5.306],[0,5.306],[-18.694,24],[-18.694,24],[-37.388,5.306]],"c":true}],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-10.448,0],[0,0],[0,-10.448],[0,0],[10.448,0],[0,0],[0,10.448]],"o":[[0,-10.448],[0,0],[10.448,0],[0,0],[0,10.448],[0,0],[-10.448,0],[0,0]],"v":[[-37.861,-5.07],[-18.93,-24],[-18.93,-24],[0,-5.07],[0,5.07],[-18.93,24],[-18.93,24],[-37.861,5.07]],"c":true}],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-10.486,0],[0,0],[0,-10.486],[0,0],[10.486,0],[0,0],[0,10.486]],"o":[[0,-10.486],[0,0],[10.486,0],[0,0],[0,10.486],[0,0],[-10.486,0],[0,0]],"v":[[-38,-5],[-19,-24],[-19,-24],[0,-5],[0,5],[-19,24],[-19,24],[-38,5]],"c":true}],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-12.154,0],[0,0],[0,-12.154],[0,0],[12.154,0],[0,0],[0,12.154]],"o":[[0,-12.154],[0,0],[12.154,0],[0,0],[0,12.154],[0,0],[-12.154,0],[0,0]],"v":[[-44.045,-1.977],[-22.023,-24],[-22.023,-24],[0,-1.977],[0,1.977],[-22.023,24],[-22.023,24],[-44.045,1.977]],"c":true}],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.079,0],[0,0],[0,-13.079],[0,0],[13.079,0],[0,0],[0,13.079]],"o":[[0,-13.079],[0,0],[13.079,0],[0,0],[0,13.079],[0,0],[-13.079,0],[0,0]],"v":[[-47.396,-0.302],[-23.698,-24],[-23.698,-24],[0,-0.302],[0,0.302],[-23.698,24],[-23.698,24],[-47.396,0.302]],"c":true}],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-48,0],[-24,-24],[-24,-24],[0,0],[0,0],[-24,24],[-24,24],[-48,0]],"c":true}],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-48.149,0],[-24.149,-24],[-24,-24],[0,0],[0,0],[-24,24],[-24.149,24],[-48.149,0]],"c":true}],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-48.698,0],[-24.698,-24],[-24,-24],[0,0],[0,0],[-24,24],[-24.698,24],[-48.698,0]],"c":true}],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-49.714,0],[-25.714,-24],[-24,-24],[0,0],[0,0],[-24,24],[-25.714,24],[-49.714,0]],"c":true}],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-50.973,0],[-26.973,-24],[-24,-24],[0,0],[0,0],[-24,24],[-26.973,24],[-50.973,0]],"c":true}],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-52.19,0],[-28.19,-24],[-24,-24],[0,0],[0,0],[-24,24],[-28.19,24],[-52.19,0]],"c":true}],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-53.268,0],[-29.268,-24],[-24,-24],[0,0],[0,0],[-24,24],[-29.268,24],[-53.268,0]],"c":true}],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-54.206,0],[-30.206,-24],[-24,-24],[0,0],[0,0],[-24,24],[-30.206,24],[-54.206,0]],"c":true}],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-55.028,0],[-31.028,-24],[-24,-24],[0,0],[0,0],[-24,24],[-31.028,24],[-55.028,0]],"c":true}],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-55.755,0],[-31.755,-24],[-24,-24],[0,0],[0,0],[-24,24],[-31.755,24],[-55.755,0]],"c":true}],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-56.405,0],[-32.405,-24],[-24,-24],[0,0],[0,0],[-24,24],[-32.405,24],[-56.405,0]],"c":true}],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-56.99,0],[-32.99,-24],[-24,-24],[0,0],[0,0],[-24,24],[-32.99,24],[-56.99,0]],"c":true}],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-57.522,0],[-33.522,-24],[-24,-24],[0,0],[0,0],[-24,24],[-33.522,24],[-57.522,0]],"c":true}],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-58.006,0],[-34.006,-24],[-24,-24],[0,0],[0,0],[-24,24],[-34.006,24],[-58.006,0]],"c":true}],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-58.451,0],[-34.451,-24],[-24,-24],[0,0],[0,0],[-24,24],[-34.451,24],[-58.451,0]],"c":true}],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-58.861,0],[-34.861,-24],[-24,-24],[0,0],[0,0],[-24,24],[-34.861,24],[-58.861,0]],"c":true}],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-59.24,0],[-35.24,-24],[-24,-24],[0,0],[0,0],[-24,24],[-35.24,24],[-59.24,0]],"c":true}],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-59.591,0],[-35.591,-24],[-24,-24],[0,0],[0,0],[-24,24],[-35.591,24],[-59.591,0]],"c":true}],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-59.917,0],[-35.917,-24],[-24,-24],[0,0],[0,0],[-24,24],[-35.917,24],[-59.917,0]],"c":true}],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-60.221,0],[-36.221,-24],[-24,-24],[0,0],[0,0],[-24,24],[-36.221,24],[-60.221,0]],"c":true}],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-60.504,0],[-36.504,-24],[-24,-24],[0,0],[0,0],[-24,24],[-36.504,24],[-60.504,0]],"c":true}],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-60.769,0],[-36.769,-24],[-24,-24],[0,0],[0,0],[-24,24],[-36.769,24],[-60.769,0]],"c":true}],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-61.017,0],[-37.017,-24],[-24,-24],[0,0],[0,0],[-24,24],[-37.017,24],[-61.017,0]],"c":true}],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-61.248,0],[-37.248,-24],[-24,-24],[0,0],[0,0],[-24,24],[-37.248,24],[-61.248,0]],"c":true}],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-61.465,0],[-37.465,-24],[-24,-24],[0,0],[0,0],[-24,24],[-37.465,24],[-61.465,0]],"c":true}],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-61.669,0],[-37.669,-24],[-24,-24],[0,0],[0,0],[-24,24],[-37.669,24],[-61.669,0]],"c":true}],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-61.859,0],[-37.859,-24],[-24,-24],[0,0],[0,0],[-24,24],[-37.859,24],[-61.859,0]],"c":true}],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-62.038,0],[-38.038,-24],[-24,-24],[0,0],[0,0],[-24,24],[-38.038,24],[-62.038,0]],"c":true}],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-62.205,0],[-38.205,-24],[-24,-24],[0,0],[0,0],[-24,24],[-38.205,24],[-62.205,0]],"c":true}],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-62.362,0],[-38.362,-24],[-24,-24],[0,0],[0,0],[-24,24],[-38.362,24],[-62.362,0]],"c":true}],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-62.509,0],[-38.509,-24],[-24,-24],[0,0],[0,0],[-24,24],[-38.509,24],[-62.509,0]],"c":true}],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-62.647,0],[-38.647,-24],[-24,-24],[0,0],[0,0],[-24,24],[-38.647,24],[-62.647,0]],"c":true}],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-62.776,0],[-38.776,-24],[-24,-24],[0,0],[0,0],[-24,24],[-38.776,24],[-62.776,0]],"c":true}],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-62.896,0],[-38.896,-24],[-24,-24],[0,0],[0,0],[-24,24],[-38.896,24],[-62.896,0]],"c":true}],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.008,0],[-39.008,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.008,24],[-63.008,0]],"c":true}],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.113,0],[-39.113,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.113,24],[-63.113,0]],"c":true}],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.21,0],[-39.21,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.21,24],[-63.21,0]],"c":true}],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.3,0],[-39.3,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.3,24],[-63.3,0]],"c":true}],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.384,0],[-39.384,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.384,24],[-63.384,0]],"c":true}],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.461,0],[-39.461,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.461,24],[-63.461,0]],"c":true}],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.532,0],[-39.532,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.532,24],[-63.532,0]],"c":true}],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.597,0],[-39.597,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.597,24],[-63.597,0]],"c":true}],"t":203,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.657,0],[-39.657,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.657,24],[-63.657,0]],"c":true}],"t":204,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.711,0],[-39.711,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.711,24],[-63.711,0]],"c":true}],"t":205,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.76,0],[-39.76,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.76,24],[-63.76,0]],"c":true}],"t":206,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.804,0],[-39.804,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.804,24],[-63.804,0]],"c":true}],"t":207,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.843,0],[-39.843,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.843,24],[-63.843,0]],"c":true}],"t":208,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.877,0],[-39.877,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.877,24],[-63.877,0]],"c":true}],"t":209,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.907,0],[-39.907,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.907,24],[-63.907,0]],"c":true}],"t":210,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.932,0],[-39.932,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.932,24],[-63.932,0]],"c":true}],"t":211,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[{"i":[[0,0],[-13.246,0],[0,0],[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246]],"o":[[0,-13.246],[0,0],[13.246,0],[0,0],[0,13.246],[0,0],[-13.246,0],[0,0]],"v":[[-63.971,0],[-39.971,-24],[-24,-24],[0,0],[0,0],[-24,24],[-39.971,24],[-63.971,0]],"c":true}],"t":213,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"k":[{"s":[0,0],"t":25,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0],"t":498,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"IndieCorners Shape","bm":0,"hd":false}],"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".tertiaryFixedDim","cl":"tertiaryFixedDim","parent":6,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":47,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":249,"s":[100]},{"t":255,"s":[0]}]},"r":{"a":0,"k":0},"p":{"k":[{"s":[0,0,0],"t":123,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[0,0,0],"t":124,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.001,0,0],"t":125,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.005,0,0],"t":126,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.013,0,0],"t":127,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.029,0,0],"t":128,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.054,0,0],"t":129,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.089,0,0],"t":130,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.134,0,0],"t":131,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.193,0,0],"t":132,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.267,0,0],"t":133,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.358,0,0],"t":134,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.466,0,0],"t":135,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.593,0,0],"t":136,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.739,0,0],"t":137,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-0.903,0,0],"t":138,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.054,0,0],"t":139,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.22,0,0],"t":140,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.403,0,0],"t":141,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.602,0,0],"t":142,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-1.821,0,0],"t":143,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.059,0,0],"t":144,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.319,0,0],"t":145,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.601,0,0],"t":146,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-2.909,0,0],"t":147,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.242,0,0],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.604,0,0],"t":149,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-3.998,0,0],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-4.427,0,0],"t":151,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-4.897,0,0],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-5.407,0,0],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-5.965,0,0],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-6.576,0,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-7.246,0,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-7.983,0,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-8.8,0,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-9.701,0,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-10.699,0,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-11.808,0,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-13.041,0,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-14.414,0,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-15.945,0,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-17.621,0,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-19.429,0,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-21.324,0,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-23.241,0,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-25.111,0,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-26.859,0,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-28.457,0,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-29.897,0,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-31.185,0,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-32.333,0,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-33.36,0,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-34.272,0,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-35.088,0,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-35.82,0,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-36.479,0,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-37.076,0,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-37.613,0,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-38.099,0,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-38.538,0,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-38.937,0,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-39.299,0,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-39.629,0,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-39.927,0,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-40.198,0,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-40.442,0,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-40.663,0,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-40.862,0,0],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.041,0,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.2,0,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.342,0,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.467,0,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.577,0,0],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.672,0,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.754,0,0],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.822,0,0],"t":199,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.879,0,0],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.925,0,0],"t":201,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[-41.961,0,0],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"Super Slider","np":3,"mn":"ADBE Slider Control","ix":1,"en":1,"ef":[{"ty":0,"nm":"Slider","mn":"ADBE Slider Control-0001","ix":1,"v":{"a":1,"k":[{"i":{"x":[0.64],"y":[0.48]},"o":{"x":[0.36],"y":[0]},"t":121,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":138,"s":[17.5]},{"t":205,"s":[100]}]}}]}],"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":247,"s":[28,28]},{"t":257,"s":[36,36]}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":247,"s":[33,0],"to":[0,0],"ti":[0,0]},{"t":257,"s":[41,0]}]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"right circle","bm":0,"hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":247,"s":[28,28]},{"t":257,"s":[36,36]}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":62,"s":[-41,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":0.56},"o":{"x":0.44,"y":0.44},"t":72,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.56,"y":1},"o":{"x":0.44,"y":0},"t":247,"s":[-33,0],"to":[0,0],"ti":[0,0]},{"t":257,"s":[-41,0]}]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"left circle","bm":0,"hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":62,"s":[36,36]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":72,"s":[28,28]},{"i":{"x":[0.56,0.56],"y":[1,1]},"o":{"x":[0.44,0.44],"y":[0,0]},"t":247,"s":[28,28]},{"t":257,"s":[36,36]}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"size","bm":0,"hd":false}],"ip":37,"op":345,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".onTertiaryFixedVariant","cl":"onTertiaryFixedVariant","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,459,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[200,128]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":18},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843139768,0.301960796118,0.184313729405,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Frame 1321317559","bm":0,"hd":false}],"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":3,"nm":"pb:scale","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"k":[{"s":[276.737,197.5,0],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.57,197.5,0],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.319,197.5,0],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.15,197.5,0],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.942,197.5,0],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.687,197.5,0],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.37,197.5,0],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[274.978,197.5,0],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[274.484,197.5,0],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.85,197.5,0],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.008,197.5,0],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[271.825,197.5,0],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[270.222,197.5,0],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[268.416,197.5,0],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[266.436,197.5,0],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[264.37,197.5,0],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[262.33,197.5,0],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[260.423,197.5,0],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[258.703,197.5,0],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[257.178,197.5,0],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[255.833,197.5,0],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[254.646,197.5,0],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[253.594,197.5,0],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252.657,197.5,0],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[251.814,197.5,0],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[251.052,197.5,0],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[250.36,197.5,0],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[249.73,197.5,0],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[249.154,197.5,0],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[248.627,197.5,0],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[248.142,197.5,0],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[247.694,197.5,0],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[247.28,197.5,0],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[246.897,197.5,0],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[246.541,197.5,0],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[246.211,197.5,0],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[245.904,197.5,0],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[245.619,197.5,0],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[245.353,197.5,0],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[245.107,197.5,0],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[244.876,197.5,0],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[244.661,197.5,0],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[244.461,197.5,0],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[244.274,197.5,0],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[244.099,197.5,0],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.937,197.5,0],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.787,197.5,0],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.648,197.5,0],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.52,197.5,0],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.291,197.5,0],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.098,197.5,0],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[242.866,197.5,0],"t":205,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[242.655,197.5,0],"t":209,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[242.5,197.5,0],"t":380,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[242.809,197.5,0],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.805,197.5,0],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[245.726,197.5,0],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[249.159,197.5,0],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[256.3,197.5,0],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[264.431,197.5,0],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[268.009,197.5,0],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[270.087,197.5,0],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[271.496,197.5,0],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[272.536,197.5,0],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.339,197.5,0],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.98,197.5,0],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[274.502,197.5,0],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[274.933,197.5,0],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.295,197.5,0],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.599,197.5,0],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.857,197.5,0],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.075,197.5,0],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.259,197.5,0],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.415,197.5,0],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.655,197.5,0],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.926,197.5,0],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]},"a":{"a":0,"k":[0,0,0]},"s":{"k":[{"s":[99.914,99.914,100],"t":146,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.848,99.848,100],"t":148,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.751,99.751,100],"t":150,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.685,99.685,100],"t":151,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.605,99.605,100],"t":152,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.507,99.507,100],"t":153,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.387,99.387,100],"t":154,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.239,99.239,100],"t":155,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.056,99.056,100],"t":156,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.829,98.829,100],"t":157,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.542,98.542,100],"t":158,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.174,98.174,100],"t":159,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.686,97.686,100],"t":160,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97,97,100],"t":161,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.071,96.071,100],"t":162,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.025,95.025,100],"t":163,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[93.878,93.878,100],"t":164,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.678,92.678,100],"t":165,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[91.495,91.495,100],"t":166,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[90.39,90.39,100],"t":167,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[89.393,89.393,100],"t":168,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88.508,88.508,100],"t":169,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[87.729,87.729,100],"t":170,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[87.041,87.041,100],"t":171,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[86.43,86.43,100],"t":172,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.886,85.886,100],"t":173,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[85.397,85.397,100],"t":174,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[84.956,84.956,100],"t":175,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[84.555,84.555,100],"t":176,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[84.191,84.191,100],"t":177,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[83.857,83.857,100],"t":178,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[83.552,83.552,100],"t":179,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[83.271,83.271,100],"t":180,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[83.011,83.011,100],"t":181,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[82.771,82.771,100],"t":182,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[82.549,82.549,100],"t":183,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[82.342,82.342,100],"t":184,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[82.151,82.151,100],"t":185,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.973,81.973,100],"t":186,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.807,81.807,100],"t":187,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.653,81.653,100],"t":188,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.51,81.51,100],"t":189,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.376,81.376,100],"t":190,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.251,81.251,100],"t":191,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.135,81.135,100],"t":192,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.027,81.027,100],"t":193,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.926,80.926,100],"t":194,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.833,80.833,100],"t":195,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.746,80.746,100],"t":196,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.665,80.665,100],"t":197,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.591,80.591,100],"t":198,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.522,80.522,100],"t":199,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.458,80.458,100],"t":200,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.4,80.4,100],"t":201,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.346,80.346,100],"t":202,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.298,80.298,100],"t":203,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.253,80.253,100],"t":204,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.176,80.176,100],"t":206,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.115,80.115,100],"t":208,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.049,80.049,100],"t":211,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80,80,100],"t":380,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.179,80.179,100],"t":381,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[80.757,80.757,100],"t":382,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[81.87,81.87,100],"t":383,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[83.86,83.86,100],"t":384,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[88,88,100],"t":385,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[92.714,92.714,100],"t":386,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[94.789,94.789,100],"t":387,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[95.992,95.992,100],"t":388,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[96.809,96.809,100],"t":389,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.412,97.412,100],"t":390,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[97.878,97.878,100],"t":391,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.249,98.249,100],"t":392,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.553,98.553,100],"t":393,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[98.803,98.803,100],"t":394,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.012,99.012,100],"t":395,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.188,99.188,100],"t":396,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.337,99.337,100],"t":397,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.464,99.464,100],"t":398,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.57,99.57,100],"t":399,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.661,99.661,100],"t":400,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.737,99.737,100],"t":401,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.8,99.8,100],"t":402,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.896,99.896,100],"t":404,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}},{"s":[99.99,99.99,100],"t":408,"i":{"x":[1,1,1],"y":[1,1,1]},"o":{"x":[0,0,0],"y":[0,0,0]}}]}},"ao":0,"ef":[{"ty":5,"nm":"Void","np":19,"mn":"Pseudo/250958","ix":1,"en":1,"ef":[{"ty":0,"nm":"Width","mn":"Pseudo/250958-0001","ix":1,"v":{"a":0,"k":100}},{"ty":0,"nm":"Height","mn":"Pseudo/250958-0002","ix":2,"v":{"a":0,"k":100}},{"ty":0,"nm":"Offset X","mn":"Pseudo/250958-0003","ix":3,"v":{"a":0,"k":0}},{"ty":0,"nm":"Offset Y","mn":"Pseudo/250958-0004","ix":4,"v":{"a":0,"k":0}},{"ty":0,"nm":"Roundness","mn":"Pseudo/250958-0005","ix":5,"v":{"a":0,"k":0}},{"ty":6,"nm":"About","mn":"Pseudo/250958-0006","ix":6,"v":0},{"ty":6,"nm":"Plague of null layers.","mn":"Pseudo/250958-0007","ix":7,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0008","ix":8,"v":0},{"ty":6,"nm":"Following projects","mn":"Pseudo/250958-0009","ix":9,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0010","ix":10,"v":0},{"ty":6,"nm":"through time.","mn":"Pseudo/250958-0011","ix":11,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0012","ix":12,"v":0},{"ty":6,"nm":"Be free of the past.","mn":"Pseudo/250958-0013","ix":13,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0014","ix":14,"v":0},{"ty":6,"nm":"Copyright 2023 Battle Axe Inc","mn":"Pseudo/250958-0015","ix":15,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0016","ix":16,"v":0},{"ty":6,"nm":"Void","mn":"Pseudo/250958-0017","ix":17,"v":0}]}],"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".onTertiaryFixed","cl":"onTertiaryFixed","parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":253,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":256,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":389,"s":[100]},{"t":392,"s":[0]}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ef":[{"ty":5,"nm":"Global Position","np":4,"mn":"Pseudo/88900","ix":1,"en":1,"ef":[{"ty":10,"nm":"Master Parent","mn":"Pseudo/88900-0001","ix":1,"v":{"a":0,"k":7}},{"ty":3,"nm":"Global Position","mn":"Pseudo/88900-0002","ix":2,"v":{"k":[{"s":[276.737,197.5],"t":148,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.57,197.5],"t":150,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.319,197.5],"t":152,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.15,197.5],"t":153,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.942,197.5],"t":154,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.687,197.5],"t":155,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.37,197.5],"t":156,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[274.978,197.5],"t":157,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[274.484,197.5],"t":158,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.85,197.5],"t":159,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.008,197.5],"t":160,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[271.825,197.5],"t":161,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[270.222,197.5],"t":162,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[268.416,197.5],"t":163,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[266.436,197.5],"t":164,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[264.37,197.5],"t":165,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[262.33,197.5],"t":166,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[260.423,197.5],"t":167,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[258.703,197.5],"t":168,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[257.178,197.5],"t":169,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[255.833,197.5],"t":170,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[254.646,197.5],"t":171,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[253.594,197.5],"t":172,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[252.657,197.5],"t":173,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[251.814,197.5],"t":174,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[251.052,197.5],"t":175,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[250.36,197.5],"t":176,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[249.73,197.5],"t":177,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[249.154,197.5],"t":178,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[248.627,197.5],"t":179,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[248.142,197.5],"t":180,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[247.694,197.5],"t":181,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[247.28,197.5],"t":182,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[246.897,197.5],"t":183,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[246.541,197.5],"t":184,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[246.211,197.5],"t":185,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[245.904,197.5],"t":186,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[245.619,197.5],"t":187,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[245.353,197.5],"t":188,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[245.107,197.5],"t":189,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[244.876,197.5],"t":190,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[244.661,197.5],"t":191,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[244.461,197.5],"t":192,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[244.274,197.5],"t":193,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[244.099,197.5],"t":194,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.937,197.5],"t":195,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.787,197.5],"t":196,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.648,197.5],"t":197,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.52,197.5],"t":198,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.291,197.5],"t":200,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.098,197.5],"t":202,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[242.866,197.5],"t":205,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[242.655,197.5],"t":209,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[242.5,197.5],"t":250,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[243.159,197.525],"t":251,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[245.792,197.842],"t":252,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[251.233,199.672],"t":253,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[257.542,204.005],"t":254,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[262.216,208.989],"t":255,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[265.399,213.457],"t":256,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[267.667,217.355],"t":257,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[269.364,220.773],"t":258,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[270.685,223.812],"t":259,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[271.743,226.538],"t":260,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[272.606,228.991],"t":261,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.321,231.197],"t":262,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[273.92,233.179],"t":263,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[274.427,234.953],"t":264,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[274.858,236.532],"t":265,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.225,237.926],"t":266,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.539,239.152],"t":267,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[275.808,240.219],"t":268,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.038,241.138],"t":269,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.233,241.918],"t":270,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.398,242.568],"t":271,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.537,243.099],"t":272,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.653,243.517],"t":273,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.824,243.574],"t":275,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.884,243.254],"t":276,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.928,242.802],"t":277,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.959,242.269],"t":278,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.976,241.685],"t":279,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.98,241.075],"t":280,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.98,240.497],"t":281,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.98,239.98],"t":282,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.98,239.538],"t":283,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.98,239.181],"t":284,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.98,238.917],"t":285,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.98,239.065],"t":293,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.98,239.265],"t":295,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.98,239.455],"t":297,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[276.98,239.685],"t":300,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.15,239.729],"t":381,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.715,239.199],"t":382,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.839,238.218],"t":383,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.95,236.594],"t":384,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[286.015,234.04],"t":385,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[288.407,226.983],"t":386,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[283.954,217.108],"t":387,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[282.005,212.156],"t":388,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.975,209.156],"t":389,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[280.314,207.064],"t":390,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.834,205.487],"t":391,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.461,204.24],"t":392,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[279.159,203.226],"t":393,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.905,202.385],"t":394,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.691,201.676],"t":395,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.503,201.072],"t":396,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.339,200.553],"t":397,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.193,200.105],"t":398,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[278.061,199.716],"t":399,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.941,199.376],"t":400,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.831,199.079],"t":401,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.729,198.82],"t":402,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.636,198.594],"t":403,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.551,198.398],"t":404,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.472,198.228],"t":405,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.399,198.082],"t":406,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.333,197.956],"t":407,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.209,197.759],"t":409,"i":{"x":1,"y":1},"o":{"x":0,"y":0}},{"s":[277.063,197.577],"t":412,"i":{"x":1,"y":1},"o":{"x":0,"y":0}}]}}]}],"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.2,0.2],"y":[0,0]},"t":250,"s":[504,315]},{"t":280,"s":[30,30],"h":1},{"i":{"x":[0.8,0.8],"y":[0.15,0.15]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":380,"s":[30,30]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.05,0.05],"y":[0.7,0.7]},"t":386,"s":[219.6,144]},{"t":416,"s":[504,315]}]},"p":{"a":0,"k":[0,0]},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":250,"s":[28]},{"t":280,"s":[30],"h":1},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":380,"s":[30]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":386,"s":[29.2]},{"t":416,"s":[28]}]},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450982481,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"matte","parent":7,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":250,"s":[0,0,0],"to":[29.688,0.625,0],"ti":[0,0,0]},{"t":280,"s":[43.1,53,0],"h":1},{"i":{"x":0.8,"y":0.15},"o":{"x":0.3,"y":0},"t":380,"s":[43.1,53,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.05,"y":0.7},"t":386,"s":[25.86,31.8,0],"to":[0,0,0],"ti":[0,0,0]},{"t":416,"s":[0,0,0]}]},"a":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.28,"y":0},"t":255,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.573,"y":1},"o":{"x":0.236,"y":0},"t":273,"s":[0,-6,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.28,"y":0},"t":287,"s":[0,1.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":307,"s":[0,0,0]}]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0,0],"y":[1,1]},"o":{"x":[0.2,0.2],"y":[0,0]},"t":250,"s":[504,315]},{"t":280,"s":[30,30],"h":1},{"i":{"x":[0.8,0.8],"y":[0.15,0.15]},"o":{"x":[0.3,0.3],"y":[0,0]},"t":380,"s":[30,30]},{"i":{"x":[0.1,0.1],"y":[1,1]},"o":{"x":[0.05,0.05],"y":[0.7,0.7]},"t":386,"s":[219.6,144]},{"t":416,"s":[504,315]}]},"p":{"a":0,"k":[0,0]},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":250,"s":[28]},{"t":280,"s":[30],"h":1},{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":380,"s":[30]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.7]},"t":386,"s":[29.2]},{"t":416,"s":[28]}]},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false}],"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"Back_LofiApp","parent":9,"tt":1,"tp":9,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[0,0,0]},"a":{"a":0,"k":[252,157.5,0]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":250,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":280,"s":[10,10,100]},{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":380,"s":[10,10,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.7,0.7,0]},"t":386,"s":[46,46,100]},{"t":416,"s":[100,100,100]}]}},"ao":0,"w":504,"h":315,"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"behindApp","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":253,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":259,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":386,"s":[0]},{"t":397,"s":[100]}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,197.5,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[503.5,314.5]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":28},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"frame","bm":0,"hd":false}],"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"Back_LofiLauncher","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,197.5,0]},"a":{"a":0,"k":[252,157.5,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":504,"h":315,"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".tertiaryFixedDim","cl":"tertiaryFixedDim","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,197.5,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[504,315]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":28},"nm":"Rectangle Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":14},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"op","nm":"Stroke align: Outside","a":{"k":[{"s":[7],"t":25,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}},{"s":[7],"t":498,"i":{"x":[1],"y":[1]},"o":{"x":[0],"y":[0]}}]},"lj":1,"ml":{"a":0,"k":4},"hd":false},{"ty":"fl","c":{"a":0,"k":[0.698039233685,0.811764717102,0.654901981354,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"frame","bm":0,"hd":false}],"ip":0,"op":501,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".onTertiaryFixed","cl":"onTertiaryFixed","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,282,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[554,564]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.1254902035,0.027450980619,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"container for media","bm":0,"hd":false}],"ip":0,"op":501,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Back_LeftDismiss","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,282,0]},"a":{"a":0,"k":[277,282,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":554,"h":564,"ip":0,"op":426,"st":-25,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Back_RightDismiss","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[277,282,0]},"a":{"a":0,"k":[277,282,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"w":554,"h":564,"ip":426,"op":902,"st":401,"ct":1,"bm":0}],"markers":[],"props":{}} \ No newline at end of file
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index adeafbc8eca2..d5ca85c0e75b 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -126,45 +126,27 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Tik om te bekyk"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Kon nie skermopname stoor nie"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Kon nie skermopname begin nie"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_button (2883812564938194350) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Stop opname?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Jy neem tans jou hele skerm op"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Jy neem tans <xliff:g id="APP_NAME">%1$s</xliff:g> op"</string>
+ <string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Stop opname"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Deel tans skerm"</string>
- <!-- no translation found for share_to_app_stop_dialog_title (9212915050910250438) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_button (6334056916284230217) -->
- <skip />
+ <string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Hou op om skerm te deel?"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Jy deel tans jou hele skerm met <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Jy deel tans jou hele skerm met ’n app"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Jy deel tans <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Jy deel tans ’n app"</string>
+ <string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Hou op deel"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Skerm word tans uitgesaai"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Hou op uitsaai?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_button (6420183747435521834) -->
- <skip />
- <!-- no translation found for close_dialog_button (4749497706540104133) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Jy saai tans jou hele skerm uit na <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Jy saai tans jou hele skerm uit na ’n toestel in die omtrek"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Jy saai tans <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> uit na <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Jy saai tans <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> uit na ’n toestel in die omtrek"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Jy saai tans uit na <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Jy saai tans uit na ’n toestel in die omtrek"</string>
+ <string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Hou op uitsaai"</string>
+ <string name="close_dialog_button" msgid="4749497706540104133">"Maak toe"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Kwessieopnemer"</string>
<string name="issuerecord_background_processing_label" msgid="1666840264959336876">"Verwerk tans kwessieopname"</string>
<string name="issuerecord_channel_description" msgid="6142326363431474632">"Deurlopende kennisgewing vir ’n kwessieversamelingsessie"</string>
@@ -175,8 +157,7 @@
<string name="issuerecord_save_error" msgid="6913040083446722726">"Kon nie kwessieopname stoor nie"</string>
<string name="issuerecord_start_error" msgid="3402782952722871190">"Kon nie kwessieopname begin nie"</string>
<string name="immersive_cling_title" msgid="8372056499315585941">"Bekyk tans volskerm"</string>
- <!-- no translation found for immersive_cling_description (2717426731830851921) -->
- <skip />
+ <string name="immersive_cling_description" msgid="2717426731830851921">"Swiep van die bokant van jou skerm af ondertoe om uit te gaan"</string>
<string name="immersive_cling_positive" msgid="3076681691468978568">"Het dit"</string>
<string name="accessibility_back" msgid="6530104400086152611">"Terug"</string>
<string name="accessibility_home" msgid="5430449841237966217">"Tuis"</string>
@@ -309,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Sluimerskerm"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Moenie Steur Nie"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioriteitmodusse"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Geen saamgebinde toestelle beskikbaar nie"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Tik om ’n toestel te koppel of ontkoppel"</string>
@@ -322,8 +302,7 @@
<string name="quick_settings_bluetooth_device_saved" msgid="7549938728928069477">"Gestoor"</string>
<string name="accessibility_quick_settings_bluetooth_device_tap_to_disconnect" msgid="415980329093277342">"ontkoppel"</string>
<string name="accessibility_quick_settings_bluetooth_device_tap_to_activate" msgid="3724301751036877403">"aktiveer"</string>
- <!-- no translation found for turn_on_bluetooth_auto_tomorrow (3345758139235739006) -->
- <skip />
+ <string name="turn_on_bluetooth_auto_tomorrow" msgid="3345758139235739006">"Skakel dit môre outomaties aan"</string>
<string name="turn_on_bluetooth_auto_info_disabled" msgid="682984290339848844">"Kenmerke soos Kitsdeel en Kry My Toestel gebruik Bluetooth"</string>
<string name="turn_on_bluetooth_auto_info_enabled" msgid="7440944034584560279">"Bluetooth sal môreoggend aanskakel"</string>
<string name="quick_settings_bluetooth_audio_sharing_button" msgid="7545274861795853838">"Deel oudio"</string>
@@ -447,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Maak Instellings oop"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Ander toestel"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Wissel oorsig"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioriteitmodusse"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Klaar"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Instellings"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Jy sal nie deur geluide en vibrasies gepla word nie, behalwe deur wekkers, herinneringe, geleenthede en bellers wat jy spesifiseer. Jy sal steeds enigiets hoor wat jy kies om te speel, insluitend musiek, video\'s en speletjies."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Jy sal nie deur geluide en vibrasies gepla word nie, behalwe deur wekkers. Jy sal steeds enigiets hoor wat jy kies om te speel, insluitend musiek, video\'s en speletjies."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Pasmaak"</string>
@@ -511,16 +497,13 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"kies legstuk"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"verwyder legstuk"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"plaas gekose legstuk"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
- <skip />
- <!-- no translation found for communal_widgets_disclaimer_title (1150954395585308868) -->
- <skip />
- <!-- no translation found for communal_widgets_disclaimer_text (1423545475160506349) -->
- <skip />
- <!-- no translation found for communal_widgets_disclaimer_button (4423059765740780753) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Sluitskermlegstukke"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Enigiemand kan legstukke op jou sluitskerm sien, selfs al is jou tablet gesluit."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
+ <string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Sluitskermlegstukke"</string>
+ <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Om ’n app met ’n legstuk oop te maak, sal jy moet verifieer dat dit jy is. Hou ook in gedagte dat enigeen dit kan bekyk, selfs wanneer jou tablet gesluit is. Sommige legstukke is moontlik nie vir jou sluitskerm bedoel nie en dit kan onveilig wees om dit hier by te voeg."</string>
+ <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Het dit"</string>
<string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Wissel gebruiker"</string>
<string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"aftrekkieslys"</string>
<string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Alle programme en data in hierdie sessie sal uitgevee word."</string>
@@ -574,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Begin nou"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Geen kennisgewings nie"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Geen nuwe kennisgewings nie"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Aanpasbare kennisgewings is aan"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Jou toestel verlaag nou die volume en verminder opspringers op die skerm vir tot twee minute wanneer jy baie kennisgewings in ’n kort tydperk ontvang."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Skakel af"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Ontsluit om ouer kennisgewings te sien"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Hierdie toestel word deur jou ouer bestuur"</string>
@@ -742,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Verstek"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Outomaties"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Geen klank of vibrasie nie"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Geen klank of vibrasie nie, maar verskyn steeds in die gesprekafdeling"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Kan lui of vibreer op grond van toestelinstellings"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Kan lui of vibreer op grond van toestelinstellings. Gesprekke van <xliff:g id="APP_NAME">%1$s</xliff:g> af verskyn by verstek in ’n borrel."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Laat die stelsel bepaal of hierdie kennisgewing \'n klank moet maak of vibreer"</string>
@@ -800,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1384,22 +1367,17 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Verdeelde skerm"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Invoer"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Appkortpaaie"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Huidige app"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Toeganklikheid"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Kortpadsleutels"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Soekkortpaaie"</string>
<string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Vou ikoon in"</string>
<string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Vou ikoon uit"</string>
<string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"of"</string>
- <!-- no translation found for touchpad_tutorial_back_gesture_button (2746834288077265946) -->
- <skip />
- <!-- no translation found for touchpad_tutorial_home_gesture_button (7640544867625955304) -->
- <skip />
- <!-- no translation found for touchpad_tutorial_action_key_button (3220074511852927267) -->
- <skip />
- <!-- no translation found for touchpad_tutorial_done_button (176168488821755503) -->
- <skip />
+ <string name="touchpad_tutorial_back_gesture_button" msgid="2746834288077265946">"Teruggebaar"</string>
+ <string name="touchpad_tutorial_home_gesture_button" msgid="7640544867625955304">"Tuisgebaar"</string>
+ <string name="touchpad_tutorial_action_key_button" msgid="3220074511852927267">"Handelingsleutel"</string>
+ <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Klaar"</string>
<string name="touchpad_tutorial_gesture_done" msgid="4784438360736821255">"Uitstekende werk!"</string>
<string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Gaan terug"</string>
<string name="touchpad_back_gesture_guidance" msgid="4222430588599527272">"Swiep enige plek op die raakpaneel links of regs met drie vingers om terug te gaan."</string>
@@ -1409,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Vlak %1$d van %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Huiskontroles"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Kry vinnig toegang tot jou huiskontroles as ’n sluimerskerm"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Ontdoen"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-af/tiles_states_strings.xml b/packages/SystemUI/res/values-af/tiles_states_strings.xml
index 1af9fd9c3415..d30156f30ad6 100644
--- a/packages/SystemUI/res/values-af/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-af/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Af"</item>
<item msgid="4875147066469902392">"Aan"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Onbeskikbaar"</item>
+ <item msgid="2004750556637773692">"Af"</item>
+ <item msgid="8968530753931637871">"Aan"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Onbeskikbaar"</item>
<item msgid="5044688398303285224">"Af"</item>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index fb4c765886b7..f3edff723566 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"ለመመልከት መታ ያድርጉ"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"የማያ ገጽ ቀረጻን ማስቀመጥ ላይ ስህተት"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"የማያ ገፅ ቀረጻን መጀመር ላይ ስህተት"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"መቅዳት ይቁም?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"በአሁኑ ጊዜ ሙሉ ማያ ገፅዎን በመቅዳት ላይ ነዎት"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"በአሁኑ ጊዜ <xliff:g id="APP_NAME">%1$s</xliff:g> በመቅዳት ላይ ነዎት"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"መቅረጽ አቁም"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"ማያ ገፅን በማጋራት ላይ"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"ማያ ገፅን ማጋራት ይቁም?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"በአሁኑ ጊዜ ሙሉ ማያ ገፅዎን ከ<xliff:g id="HOST_APP_NAME">%1$s</xliff:g> ጋር በማጋራት ላይ ነዎት"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"በአሁኑ ጊዜ መሉ ማያ ገፅዎን ከመተግበሪያ ጋር በማጋራት ላይ ነዎት"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"በአሁኑ ጊዜ <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> በማጋራት ላይ ነዎት"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"በአሁኑ ጊዜ መተግበሪያ በማጋራት ላይ ነዎት"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"ማጋራት አቁም"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"ማያ ገፅን cast በማድረግ ላይ"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"cast ማድረግ ይቁም?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"በአሁኑ ጊዜ ሙሉ ማያ ገፅዎን ወደ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cast በማድረግ ላይ ነዎት"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"በአሁኑ ጊዜ ሙሉ ማያ ገፅዎን ወደ በአቅራቢያ ያለ መሣሪያ cast በማድረግ ላይ ነዎት"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"በአሁኑ ጊዜ <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ወደ <xliff:g id="DEVICE_NAME">%2$s</xliff:g> cast በማድረግ ላይ ነዎት"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"በአሁኑ ጊዜ <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ወደ በአቅራቢያ ያለ መሣሪያ cast በማድረግ ላይ ነዎት"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"በአሁኑ ጊዜ ወደ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cast በማድረግ ላይ ነዎት"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"በአሁኑ ጊዜ ወደ በአቅራቢያ ወዳለ መሣሪያ cast በማድረግ ላይ ነዎት"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"cast ማድረግ አቁም"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"ዝጋ"</string>
<string name="issuerecord_title" msgid="286627115110121849">"ችግር መመዝገቢያ"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"የማያ ገፅ ማቆያ"</string>
<string name="ethernet_label" msgid="2203544727007463351">"ኤተርኔት"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"አትረብሽ"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"ቅድሚያ ሁነታዎች"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"ብሉቱዝ"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"ምንም የተጣመሩ መሣሪያዎች አይገኝም"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"መሣሪያን ለማገናኘት ወይም ግንኙነቱን ለማቋረጥ መታ ያድርጉ"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"ቅንብሮችን ክፈት"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"ሌላ መሣሪያ"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"አጠቃላይ እይታን ቀያይር"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"ቅድሚያ ሁነታዎች"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"ተከናውኗል"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"ቅንብሮች"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"እርስዎ ከወሰንዋቸው ማንቂያዎች፣ አስታዋሾች፣ ክስተቶች እና ደዋዮች በስተቀር፣ በድምጾች እና ንዝረቶች አይረበሹም። ሙዚቃ፣ ቪዲዮዎች እና ጨዋታዎች ጨምሮ ለመጫወት የሚመርጡትን ማንኛውም ነገር አሁንም ይሰማሉ።"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"ከማንቂያዎች በስተቀር፣ በድምጾች እና ንዝረቶች አይረበሹም። ሙዚቃ፣ ቪዲዮዎች እና ጨዋታዎች ጨምሮ ለመጫወት የሚመርጡትን ማንኛውም ነገር አሁንም ይሰማሉ።"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"አብጅ"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"ምግብር ይምረጡ"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"ምግብር አስወግድ"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"በቦታ የተመረጠ ምግብር"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"የማያ ገፅ ቁልፍ ምግብሮች"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"የእርስዎ ጡባዊ ቁልፍ ተቆልፎ ቢሆን እንኳን ማንኛውም ሰው በማያ ገፅ ቁልፍዎ ላይ ምግብሮችን ማየት ይችላል።"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"የማያ ገፅ ቁልፍ ምግብሮች"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ምግብር በመጠቀም መተግበሪያ ለመክፈት እርስዎ መሆንዎን ማረጋገጥ አለብዎት። እንዲሁም የእርስዎ ጡባዊ በተቆለፈበት ጊዜ እንኳን ማንኛውም ሰው እነሱን ማየት እንደሚችል ከግምት ውስጥ ያስገቡ። አንዳንድ ምግብሮች ለማያ ገፅ ቁልፍዎ የታሰቡ ላይሆኑ ይችላሉ እና እዚህ ለማከል አስተማማኝ ላይሆኑ ይችላሉ።"</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"አሁን ጀምር"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"ምንም ማሳወቂያ የለም"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"ምንም አዲስ ማሳወቂያዎች የሉም"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"ተለማማጅ ማሳወቂያዎች በርተዋል"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"በአጭር የጊዜ ቆይታ ውስጥ ብዙ ማሳወቂያዎች ሲደርሱዎት መሣሪያዎ አሁን ድምፁን ይቀንሳል እና በማያ ገፁ ላይ ብቅ ባዮችን እስከ ሁለት ደቂቃዎች ይቀንሳል።"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"አጥፋ"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"የቆዩ ማሳወቂያዎችን ለማየት ይክፈቱ"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"ይህ መሣሪያ በእርስዎ ወላጅ የሚተዳደር ነው።"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ነባሪ"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ራስ-ሰር"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"ምንም ድምፅ ወይም ንዝረት የለም"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ምንም ድምፅ ወይም ንዝረት የለም ነገር ግን አሁንም የውይይት ክፍል ውስጥ ይታያል"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"በመሣሪያ ቅንብሮች መሰረት ሊጮህ ወይም ሊነዝር ይችላል"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"በስልክ ቅንብሮች መሰረት ሊጮህ ወይም ሊነዝር ይችላል። የ<xliff:g id="APP_NAME">%1$s</xliff:g> ውይይቶች በነባሪነት አረፋ ይሆናሉ።"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ይህ ማሳወቂያ ድምፅ ወይም ንዝረት መደረግ ካለበት ስርዓቱ እንዲወሰን ያድርጉት"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"ገፅ ወደ ላይ"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"ገፅ ወደ ታች"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"ሰርዝ"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"መነሻ"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"መጨረሻ"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"አስገባ"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"የተከፈለ ማያ ገፅ"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"ግብዓት"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"የመተግበሪያ አቋራጮች"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"የአሁን መተግበሪያ"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"ተደራሽነት"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"የቁልፍ ሰሌዳ አቋራጮች"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"የፍለጋ አቋራጮች"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"ደረጃ %1$d ከ %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"የቤት ውስጥ ቁጥጥሮች"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"የቤት መቆጣጠሪያዎችዎን እንደ የገጸ ማያ አሳራፊ በፍጥነት ይድረሱባቸው"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"ቀልብስ"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-am/tiles_states_strings.xml b/packages/SystemUI/res/values-am/tiles_states_strings.xml
index 8bad7ab52583..40cb02ed642c 100644
--- a/packages/SystemUI/res/values-am/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-am/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"ጠፍቷል"</item>
<item msgid="4875147066469902392">"በርቷል"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"አይገኝም"</item>
+ <item msgid="2004750556637773692">"ጠፍቷል"</item>
+ <item msgid="8968530753931637871">"በርቷል"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"አይገኝም"</item>
<item msgid="5044688398303285224">"ጠፍቷል"</item>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index b96793a38938..d5243f58d79f 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"انقر لعرض التسجيل"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"حدث خطأ أثناء حفظ تسجيل محتوى الشاشة."</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"حدث خطأ في بدء تسجيل الشاشة"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"هل تريد إيقاف التسجيل؟"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"يتم حاليًا تسجيل محتوى الشاشة بأكمله"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"يتم حاليًا تسجيل محتوى \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"إيقاف التسجيل"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"جارِ مشاركة محتوى الشاشة"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"هل تريد إيقاف مشاركة الشاشة؟"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"تتم حاليًا مشاركة محتوى الشاشة بأكمله مع \"<xliff:g id="HOST_APP_NAME">%1$s</xliff:g>\""</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"تتم حاليًا مشاركة محتوى الشاشة بأكمله مع تطبيق"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"تتم حاليًا مشاركة محتوى \"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>\""</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"تتم حاليًا مشاركة محتوى تطبيق"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"إيقاف المشاركة"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"جارٍ بث محتوى الشاشة"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"هل تريد إيقاف البث؟"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"يتم حاليًا بثّ محتوى الشاشة بأكمله على \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"يتم حاليًا بثّ محتوى الشاشة بأكمله على جهاز مجاور"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"يتم حاليًا بثّ محتوى \"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>\" على \"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>\""</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"يتم حاليًا بثّ محتوى \"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>\" على جهاز مجاور"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"يتم حاليًا بثّ المحتوى على \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"يتم حاليًا بثّ المحتوى على جهاز مجاور"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"إيقاف البث"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"إغلاق"</string>
<string name="issuerecord_title" msgid="286627115110121849">"مسجّلة المشاكل"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"شاشة الاستراحة"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"عدم الإزعاج"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"الأوضاع ذات الأولوية"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"بلوتوث"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"لا يتوفر أي أجهزة مقترنة"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"انقر لربط جهاز أو إلغاء ربطه"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"فتح الإعدادات"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"جهاز آخر"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"تبديل \"النظرة العامة\""</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"الأوضاع ذات الأولوية"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"تم"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"الإعدادات"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"لن يتم إزعاجك بالأصوات والاهتزاز، باستثناء المُنبِّهات والتذكيرات والأحداث والمتصلين الذين تحددهم. وسيظل بإمكانك سماع أي عناصر أخرى تختار تشغيلها، بما في ذلك الموسيقى والفيديوهات والألعاب."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"لن يتم إزعاجك بالأصوات والاهتزاز، باستثناء المُنبِّهات. وسيظل بإمكانك سماع أي عناصر أخرى تختار تشغيلها، بما في ذلك الموسيقى والفيديوهات والألعاب."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"تخصيص"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"اختيار التطبيق المصغّر"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"إزالة التطبيق المصغّر"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"إضافة التطبيق المصغّر المحدَّد"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"التطبيقات المصغّرة المصمَّمة لشاشة القفل"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"يمكن للجميع رؤية التطبيقات المصغّرة على شاشة القفل، حتى في حال قفل الجهاز اللوحي."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"التطبيقات المصغّرة المصمَّمة لشاشة القفل"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"لفتح تطبيق باستخدام تطبيق مصغَّر، عليك إثبات هويتك. يُرجى ملاحظة أنّ أي شخص يمكنه الاطّلاع محتوى التطبيقات المصغَّرة، حتى وإن كان جهازك اللوحي مُقفلاً. بعض التطبيقات المصغّرة قد لا تكون مُصمَّمة لإضافتها إلى شاشة القفل، وقد يكون هذا الإجراء غير آمن."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"البدء الآن"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"ما مِن إشعارات"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"ما مِن إشعارات جديدة"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"\"الإشعارات التكيّفية\" مفعَّلة"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"عند تلقّي إشعارات متعددة في فترة زمنية قصيرة، يخفِّض جهازك الصوت ويقلّل من ظهور النوافذ المنبثقة على الشاشة لمدة تصل إلى دقيقتين."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"إيقاف"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"افتَح قفل الشاشة لعرض الإشعارات الأقدم."</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"يتولّى أحد الوالدين إدارة هذا الجهاز."</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"تلقائية"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"تلقائي"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"بدون صوت أو اهتزاز"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"سيظهر الإشعار في قسم المحادثات ولكن بدون صوت أو اهتزاز"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"يمكن إصدار رنين أو اهتزاز بناءً على إعدادات الجهاز"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"يمكن إصدار رنين أو اهتزاز بناءً على إعدادات الجهاز. تظهر المحادثات من \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" كفقاعات تلقائيًا."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"السماح للنظام بتحديد ما إذا يجب اهتزاز الجهاز أو إصدار رنين عند تلقّي هذا الإشعار"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"الرئيسية"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1394,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"‏مستوى الإضاءة: %1$d من %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"إدارة المنزل آليًّا"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"يمكنك إدارة المنزل آليًّا بشكل سريع من شاشة الاستراحة"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"تراجع"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ar/tiles_states_strings.xml b/packages/SystemUI/res/values-ar/tiles_states_strings.xml
index 62a6816a5602..acb38feed48d 100644
--- a/packages/SystemUI/res/values-ar/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ar/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"الميزة غير مفعّلة"</item>
<item msgid="4875147066469902392">"الميزة مفعّلة"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"غير متوفّرة"</item>
+ <item msgid="2004750556637773692">"غير مفعَّلة"</item>
+ <item msgid="8968530753931637871">"مفعَّلة"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"الميزة غير متاحة"</item>
<item msgid="5044688398303285224">"الميزة غير مفعّلة"</item>
diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml
index 99c4326b6515..b1fa417c070b 100644
--- a/packages/SystemUI/res/values-as/strings.xml
+++ b/packages/SystemUI/res/values-as/strings.xml
@@ -426,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"ছেটিং খোলক"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"অন্য ডিভাইচ"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"অৱলোকন ট’গল কৰক"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"অগ্ৰাধিকাৰপ্ৰাপ্ত ম’ডসমূহ"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"কৰা হ’ল"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"ছেটিং"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"আপুনি নিৰ্দিষ্ট কৰা এলাৰ্ম, ৰিমাইণ্ডাৰ, ইভেন্ট আৰু কল কৰোঁতাৰ বাহিৰে আন কোনো শব্দৰ পৰা আপুনি অসুবিধা নাপাব। কিন্তু, সংগীত, ভিডিঅ\' আৰু খেলসমূহকে ধৰি আপুনি প্লে কৰিব খোজা যিকোনো বস্তু তথাপি শুনিব পাৰিব।"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"আপুনি নিৰ্দিষ্ট কৰা এলাৰ্মৰ বাহিৰে আন কোনো ধ্বনি আৰু কম্পনৰ পৰা আপুনি অসুবিধা নাপাব। কিন্তু, সংগীত, ভিডিঅ\' আৰু খেলসমূহকে ধৰি আপুনি প্লে কৰিব খোজা যিকোনো বস্তু তথাপি শুনিব পাৰিব।"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"কাষ্টমাইজ কৰক"</string>
@@ -492,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"বাছনি কৰা ৱিজেটটো ৰাখক"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"লক স্ক্ৰীনৰ ৱিজেট"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"আপোনাৰ টেবলেটটো লক কৰি ৰাখিলেও যিকোনো লোকে আপোনাৰ লক স্ক্ৰীনত ৱিজেট চাব পাৰে।"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"লক স্ক্ৰীন ৱিজেট"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"এটা ৱিজেট ব্যৱহাৰ কৰি কোনো এপ্ খুলিবলৈ, এয়া আপুনিয়েই বুলি সত্যাপন পৰীক্ষা কৰিব লাগিব। লগতে, মনত ৰাখিব যে যিকোনো লোকেই সেইবোৰ চাব পাৰে, আনকি আপোনাৰ টেবলেটটো লক হৈ থাকিলেও। কিছুমান ৱিজেট হয়তো আপোনাৰ লক স্ক্ৰীনৰ বাবে কৰা হোৱা নাই আৰু ইয়াত যোগ কৰাটো অসুৰক্ষিত হ’ব পাৰে।"</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"বুজি পালোঁ"</string>
@@ -548,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"এতিয়াই আৰম্ভ কৰক"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"কোনো জাননী নাই"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"কোনো নতুন জাননী নাই"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"অভিযোজিত জাননী অন কৰা আছে"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"আপোনাৰ ডিভাইচে এতিয়া ভলিউম কমায়, কম সময়ৰ ভিতৰত বহুতো জাননী পালে ২ মিনিটলৈকে স্ক্ৰীনত ওলোৱা পপ-আপ কমায়।"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"অফ কৰক"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"পুৰণি জাননী চবলৈ আনলক কৰক"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"এই ডিভাইচটো আপোনাৰ অভিভাৱকে পৰিচালনা কৰে"</string>
@@ -716,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ডিফ’ল্ট"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"স্বয়ংক্ৰিয়"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"কোনো ধ্বনি অথবা কম্পন নাই"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"কোনো ধ্বনি বা কম্পন নাই, কিন্তু বাৰ্তালাপৰ শাখাত প্ৰদৰ্শিত হয়"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"ডিভাইচৰ ছেটিঙৰ ওপৰত নিৰ্ভৰ কৰি ৰিং কৰিব অথবা কম্পন হ’ব পাৰে"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"ডিভাইচৰ ছেটিঙৰ ওপৰত নিৰ্ভৰ কৰি ৰিং কৰিব অথবা কম্পন হ’ব পাৰে। <xliff:g id="APP_NAME">%1$s</xliff:g>ৰ বাৰ্তালাপ ডিফ’ল্টভাৱে বাবল হিচাপে প্ৰদৰ্শিত হয়।"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"এই জাননীটোৱে ধ্বনি নে কম্পন সৃষ্টি কৰিব সেয়া ছিষ্টেমটোক নিৰ্ধাৰণ কৰিবলৈ দিয়ক"</string>
@@ -1378,4 +1388,28 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"ঘৰৰ সা-সৰঞ্জামৰ নিয়ন্ত্ৰণ"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"স্ক্ৰীনছেভাৰ হিচাপে ক্ষিপ্ৰতাৰে ঘৰৰ সা-সৰঞ্জামৰ নিয়ন্ত্ৰণ এক্সেছ কৰক"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"আনডু কৰক"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index e2ca41b6f61d..d748edc0dcbc 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Baxmaq üçün toxunun"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Ekran çəkimini yadda saxlayarkən xəta oldu"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Ekranın yazılması ilə bağlı xəta"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Çəkiliş dayandırılsın?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Hazırda bütün ekranı çəkirsiniz"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Hazırda <xliff:g id="APP_NAME">%1$s</xliff:g> tətbiqini çəkirsiniz"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Qeydəalmanı dayandırın"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Ekran paylaşılır"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Ekran paylaşımı dayandırılsın?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Hazırda bütün ekranı <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> ilə paylaşırsınız"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Hazırda bütün ekranı tətbiq ilə paylaşırsınız"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Hazırda <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> paylaşırsınız"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Hazırda tətbiq paylaşırsınız"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Paylaşımı dayandırın"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Ekran yayımlanır"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Yayım dayandırılsın?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Hazırda bütün ekranı <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında yayımlayırsınız"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Hazırda bütün ekranı yaxınlıqdakı cihazda yayımlayırsınız"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Hazırda <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> tətbiqini <xliff:g id="DEVICE_NAME">%2$s</xliff:g> cihazında yayımlayırsınız"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Hazırda <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> tətbiqini yaxınlıqdakı cihazda yayımlayırsınız"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Hazırda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında yayımlayırsınız"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Hazırda yaxınlıqdakı cihazda yayımlayırsınız"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Yayımı dayandırın"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Bağlayın"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Problem qeydə alan"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Ekran qoruyucu"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Narahat etməyin"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioritet rejimləri"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Heç bir cütlənmiş cihaz əlçatan deyil"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Toxunaraq cihaza qoşulun, yaxud əlaqəni ayırın"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Ayarları açın"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Digər cihaz"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"İcmala Keçin"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioritet rejimləri"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Hazırdır"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Ayarlar"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Seçdiyiniz siqnal, xatırladıcı, tədbir və zənglər istisna olmaqla səslər və vibrasiyalar Sizi narahat etməyəcək. Musiqi, video və oyunlar da daxil olmaqla oxutmaq istədiyiniz hər şeyi eşidəcəksiniz."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Siqnallar istisna olmaqla səslər və vibrasiyalar Sizi narahat etməyəcək. Musiqi, video və oyunlar da daxil olmaqla oxutmaq istədiyiniz hər şeyi eşidəcəksiniz."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Fərdiləşdirin"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"vidcet seçin"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"vidceti silin"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"seçilmiş vidceti yerləşdirin"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Kilid ekranı vidcetləri"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Planşet kilidli olsa belə, hər kəs kilid ekranınızdakı vidcetlərə baxa bilər."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Kilid ekranı vidcetləri"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Vidcetdən istifadə edərək tətbiqi açmaq üçün kimliyi doğrulamalısınız. Planşet kilidli olsa da, hər kəs vidcetlərə baxa bilər. Bəzi vidcetlər kilid ekranı üçün nəzərdə tutulmayıb və bura əlavə etmək təhlükəli ola bilər."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"İndi başlayın"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Heç bir bildiriş yoxdur"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Yeni bildiriş yoxdur"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptiv bildirişlər aktivdir"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Qısa vaxtda çoxlu bildiriş alanda cihaz səsi azaldır, ekranda popapları iki dəqiqəyə qədər qısaldır."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Deaktiv edin"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Köhnə bildirişləri görmək üçün kilidi açın"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Bu cihaz valideyniniz tərəfindən idarə olunur"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Defolt"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Avtomatik"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Səs və ya vibrasiya yoxdur"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Səs və ya vibrasiya yoxdur, lakin hələ də söhbət bölməsində görünür"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Cihaz ayarlarına əsasən zəng çala və ya vibrasiya edə bilər"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Cihaz ayarlarına əsasən zəng çala və ya vibrasiya edə bilər. <xliff:g id="APP_NAME">%1$s</xliff:g> tətbiqindən söhbətlərdə defolt olaraq qabarcıq çıxır."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Bu bildirişin səs çıxarması və ya vibrasiya etməsi sistem tərəfindən təyin edilsin"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Yuxarı Səhifə"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Aşağı Səhifə"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Silin"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Son"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Daxil edin"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Bölünmüş ekran"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Daxiletmə"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Tətbiq qısayolları"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Cari tətbiq"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Xüsusi imkanlar"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Klaviatura qısayolları"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Axtarış qısayolları"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Səviyyə %1$d/%2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Ev nizamlayıcıları"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Ekran qoruyucu kimi ev nizamlayıcılarına tez giriş"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Geri qaytarın"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-az/tiles_states_strings.xml b/packages/SystemUI/res/values-az/tiles_states_strings.xml
index da6d2177f8d5..678c94ddf57f 100644
--- a/packages/SystemUI/res/values-az/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-az/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Deaktiv"</item>
<item msgid="4875147066469902392">"Aktiv"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Əlçatan deyil"</item>
+ <item msgid="2004750556637773692">"Deaktiv"</item>
+ <item msgid="8968530753931637871">"Aktiv"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Əlçatan deyil"</item>
<item msgid="5044688398303285224">"Deaktiv"</item>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index 3a7cc669a273..28144a62ff19 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Čuvar ekrana"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Eternet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ne uznemiravaj"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioritetni režimi"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Nije dostupan nijedan upareni uređaj"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Dodirnite da biste povezali uređaj ili prekinuli vezu"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Otvori Podešavanja"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Drugi uređaj"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Uključi/isključi pregled"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioritetni režimi"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Gotovo"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Podešavanja"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Neće vas uznemiravati zvukovi i vibracije osim za alarme, podsetnike, događaje i pozivaoce koje navedete. I dalje ćete čuti sve što odaberete da pustite, uključujući muziku, video snimke i igre."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Neće vas uznemiravati zvukovi i vibracije osim za alarme. I dalje ćete čuti sve što odaberete da pustite, uključujući muziku, video snimke i igre."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Prilagodi"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"postavite izabrani vidžet"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Vidžeti za zaključani ekran"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Svi mogu da vide vedžete na zaključanom ekranu, čak i kada je tablet zaključan."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Vidžeti za zaključani ekran"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Da biste otvorili aplikaciju koja koristi vidžet, treba da potvrdite da ste to vi. Imajte u vidu da svako može da ga vidi, čak i kada je tablet zaključan. Neki vidžeti možda nisu namenjeni za zaključani ekran i možda nije bezbedno da ih tamo dodate."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Važi"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Započni"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Nema obaveštenja"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Nema novih obaveštenja"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Prilag. obaveštenja su uključena"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Uređaj sada smanjuje zvuk i broj iskačućih prozora na ekranu do 2 minuta kad primite mnogo obaveštenja u kratkom roku."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Isključi"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Otključajte za starija obaveštenja"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Ovim uređajem upravlja roditelj"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Podrazumevano"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatska"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Bez zvuka i vibriranja"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Bez zvuka i vibriranja, ali se još uvek prikazuje u odeljku za konverzacije"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Može da zvoni ili vibrira u zavisnosti od podešavanja uređaja"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Može da zvoni ili vibrira u zavisnosti od podešavanja uređaja. Konverzacije iz aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g> podrazumevano se prikazuju u oblačićima."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Neka sistem utvrdi da li ovo obaveštenje treba da emituje zvuk ili da vibrira"</string>
@@ -1378,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%1$d. nivo od %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Kontrole za dom"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Brz pristup kontrolama za dom kao čuvaru ekrana"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Opozovi"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
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 6833c27c4208..be48b3bcb916 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
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Isključeno"</item>
<item msgid="4875147066469902392">"Uključeno"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Nedostupno"</item>
+ <item msgid="2004750556637773692">"Isključeno"</item>
+ <item msgid="8968530753931637871">"Uključeno"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Nedostupno"</item>
<item msgid="5044688398303285224">"Isključeno"</item>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index 72808664ea85..eaa7c38c4866 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Экранная застаўка"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Не турбаваць"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Прыярытэтныя рэжымы"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Няма даступных спалучаных прылад"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Націсніце, каб падключыць або адключыць прыладу"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Адкрыць налады"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Іншая прылада"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Уключыць/выключыць агляд"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Прыярытэтныя рэжымы"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Гатова"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Налады"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Вас не будуць турбаваць гукі і вібрацыя, за выключэннем будзільнікаў, напамінаў, падзей і выбраных вамі абанентаў. Вы будзеце чуць усё, што ўключыце, у тым ліку музыку, відэа і гульні."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Вас не будуць турбаваць гукі і вібрацыя, за выключэннем будзільнікаў. Вы будзеце чуць усё, што ўключыце, у тым ліку музыку, відэа і гульні."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Дапасаваць"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"размясціць выбраны віджэт"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Віджэты на экране блакіроўкі"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Віджэты на экране блакіроўкі будуць бачныя, нават калі планшэт заблакіраваны."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Віджэты на экране блакіроўкі"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Каб адкрыць праграму з дапамогай віджэта, вам неабходна будзе пацвердзіць сваю асобу. Таксама памятайце, што такія віджэты могуць пабачыць іншыя людзі, нават калі экран планшэта заблакіраваны. Некаторыя віджэты могуць не падыходзіць для выкарыстання на экране блакіроўкі, і дадаваць іх сюды можа быць небяспечна."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Зразумела"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Пачаць зараз"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Апавяшчэнняў няма"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Няма новых апавяшчэнняў"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Адаптыўныя апавяшчэнні ўключаны"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Пры атрыманні шматлікіх апавяшчэнняў за кароткі час прылада памяншае гучнасць і колькасць усплывальных вокнаў на 2 хв."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Выключыць"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Разблакіруйце, каб убачыць усе апавяшчэнні"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Гэта прылада знаходзіцца пад кантролем бацькоў"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Стандартна"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Аўтаматычна"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Без гуку ці вібрацыі"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Гукавы сігнал або вібрацыя выключаны, але апавяшчэнні ўсё роўна з’яўляюцца ў раздзеле размоў"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"У залежнасці ад налад прылады магчымы званок або вібрацыя"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"У залежнасці ад налад прылады магчымы званок або вібрацыя. Размовы ў праграме \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" стандартна паяўляюцца ў выглядзе ўсплывальных апавяшчэнняў."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Сістэма сама будзе вызначаць, ці трэба для гэтага апавяшчэння ўключаць гук або вібрацыю"</string>
@@ -1358,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Падзелены экран"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Увод"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Ярлыкі праграм"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Бягучая праграма"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Спецыяльныя магчымасці"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Спалучэнні клавіш"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Пошук спалучэнняў клавіш"</string>
@@ -1379,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Узровень %1$d з %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Кіраванне домам"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Хуткі доступ да кіравання домам на застаўцы"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Адрабіць"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-be/tiles_states_strings.xml b/packages/SystemUI/res/values-be/tiles_states_strings.xml
index 4cc09a756431..aea701a66480 100644
--- a/packages/SystemUI/res/values-be/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-be/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Выключана"</item>
<item msgid="4875147066469902392">"Уключана"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Недаступна"</item>
+ <item msgid="2004750556637773692">"Выключана"</item>
+ <item msgid="8968530753931637871">"Уключана"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Недаступна"</item>
<item msgid="5044688398303285224">"Выключана"</item>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 5ac0be0c6e0d..f515ea03a090 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Докоснете за преглед"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Грешка при запазването на записа на екрана"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"При стартирането на записа на екрана възникна грешка"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Да се спре ли записването?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"В момента записвате целия си екран"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"В момента записвате <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Спиране на записа"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Екранът се споделя"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Да се спре ли споделянето на екрана?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"В момента споделяте целия си екран с(ъс) <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"В момента споделяте целия си екран с приложение"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"В момента споделяте <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"В момента споделяте приложение"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Спиране на споделянето"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Екранът се предава"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Да се спре ли предаването?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"В момента предавате целия си екран към <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"В момента предавате целия си екран към устройство в близост"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"В момента предавате <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> към <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"В момента предавате <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> към устройство в близост"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"В момента предавате към <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"В момента предавате към устройство в близост"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Спиране на предаването"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Затваряне"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Записване на проблем"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Скрийнсейвър"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Не безпокойте"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Приоритетни режими"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Няма налични сдвоени устройства"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Докоснете, за да свържете устройство или да прекъснете връзката му"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Към настройките"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Друго устройство"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Превключване на общия преглед"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Приоритетни режими"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Готово"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Настройки"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Няма да бъдете обезпокоявани от звуци и вибрирания освен от будилници, напомняния, събития и обаждания от посочени от вас контакти. Пак ще чувате всичко, което изберете да се пусне, включително музика, видеоклипове и игри."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Няма да бъдете обезпокоявани от звуци и вибрирания освен от будилници. Ще чувате обаче всичко, което изберете пуснете, включително музика, видеоклипове и игри."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Персонализиране"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"избиране на приспособление"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"премахване на приспособлението"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"поставяне на избраното приспособление"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Приспособления за заключения екран"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Всеки ще вижда приспособленията на закл. екран дори ако таблетът ви е заключен."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Приспособления за заключения екран"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"За да отворите дадено приложение посредством приспособление, ще трябва да потвърдите, че това сте вие. Също така имайте предвид, че всеки ще вижда приспособленията дори когато таблетът ви е заключен. Възможно е някои от тях да не са предназначени за заключения екран и добавянето им на него може да е опасно."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Стартиране сега"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Няма известия"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Няма нови известия"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Адаптивните известия са вкл."</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"У-вото ви намалява силата на звука и броя на изскачащите прозорци за период до 2 мин, ако получавате много известия за кратко време."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Изключване"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Отключете за достъп до по-стари известия"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Това устройство се управлява от родителя ви"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Стандартно"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Автоматично"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Без звук или вибриране"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Без звук или вибриране, но пак ще се показва в секцията с разговори"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Може да звъни или да вибрира въз основа на настройките на устройството"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Може да звъни или да вибрира въз основа на настройките на устройството. Разговорите от <xliff:g id="APP_NAME">%1$s</xliff:g> се показват като балончета по подразбиране."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Нека системата да определя дали дадено известие да се придружава от звук, или вибриране"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Страница нагоре"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Страница надолу"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Изтриване"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Разделен екран"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Въвеждане"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Преки пътища към приложения"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Текущо приложение"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Достъпност"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Клавишни комбинации"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Търсете клавишни комбинации"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Ниво %1$d от %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Контроли за дома"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Достъп до контролите за дома ви като скрийнсейвър"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Отмяна"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-bg/tiles_states_strings.xml b/packages/SystemUI/res/values-bg/tiles_states_strings.xml
index 92db27957f48..0258d2780a8d 100644
--- a/packages/SystemUI/res/values-bg/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-bg/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Изкл."</item>
<item msgid="4875147066469902392">"Вкл."</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Не е налице"</item>
+ <item msgid="2004750556637773692">"Изкл."</item>
+ <item msgid="8968530753931637871">"Вкл."</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Не е налице"</item>
<item msgid="5044688398303285224">"Изкл."</item>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index fa38ac3f2dca..2634892696a3 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"দেখতে ট্যাপ করুন"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"স্ক্রিন রেকর্ডিং সেভ করার সময় কোনও সমস্যা হয়েছে"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"স্ক্রিন রেকর্ডিং শুরু করার সময় সমস্যা হয়েছে"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"রেকডিং বন্ধ করবেন?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"আপনি বর্তমানে সম্পূর্ণ স্ক্রিন রেকর্ড করছেন"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"আপনি বর্তমানে <xliff:g id="APP_NAME">%1$s</xliff:g> রেকর্ড করছেন"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"রেকর্ড করা বন্ধ করুন"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"স্ক্রিন শেয়ার করা হচ্ছে"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"স্ক্রিন শেয়ার করা বন্ধ করবেন?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"আপনি বর্তমানে <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> অ্যাপের সাথে আপনার সম্পূর্ণ স্ক্রিন শেয়ার করছেন"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"আপনি বর্তমানে কোনও একটি অ্যাপের সাথে আপনার সম্পূর্ণ স্ক্রিন শেয়ার করছেন"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"আপনি বর্তমানে <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> অ্যাপের সাথে শেয়ার করছেন"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"আপনি বর্তমানে কোনও একটি অ্যাপের সাথে শেয়ার করছেন"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"শেয়ার করা বন্ধ করুন"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"স্ক্রিন কাস্ট করা হচ্ছে"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"কাস্ট করা বন্ধ করবেন?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"আপনি বর্তমানে <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ডিভাইসে সম্পূর্ণ স্ক্রিন কাস্ট করছেন"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"আপনি বর্তমানে আশেপাশের ডিভাইসে সম্পূর্ণ স্ক্রিন কাস্ট করছেন"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"আপনি বর্তমানে <xliff:g id="DEVICE_NAME">%2$s</xliff:g> ডিভাইসে <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> কাস্ট করছেন"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"আপনি বর্তমানে আশেপাশের ডিভাইসে <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> কাস্ট করছেন"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"আপনি বর্তমানে <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ডিভাইসে কাস্ট করছেন"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"আপনি বর্তমানে আশেপাশের ডিভাইসে কাস্ট করছেন"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"কাস্টিং বন্ধ করুন"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"বন্ধ করুন"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Recorder-এ সমস্যা হয়েছে"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"স্ক্রিন সেভার"</string>
<string name="ethernet_label" msgid="2203544727007463351">"ইথারনেট"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"বিরক্ত করবে না"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"প্রায়োরিটি মোড"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"ব্লুটুথ"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"চেনা কোনও ডিভাইস নেই"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"কোনও ডিভাইস কানেক্ট বা ডিসকানেক্ট করতে ট্যাপ করুন"</string>
@@ -440,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"সেটিংস খুলুন"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"অন্য ডিভাইস"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"\'এক নজরে\' বৈশিষ্ট্যটি চালু বা বন্ধ করুন"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"প্রায়োরিটি মোড"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"হয়ে গেছে"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"সেটিংস"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"চালু আছে"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"বন্ধ আছে"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"অ্যালার্ম, রিমাইন্ডার, ইভেন্ট, এবং আপনার নির্দিষ্ট করে দেওয়া ব্যক্তিদের কল ছাড়া অন্য কোনও আওয়াজ বা ভাইব্রেশন হবে না। তবে সঙ্গীত, ভিডিও, এবং গেম সহ আপনি যা কিছু চালাবেন তার আওয়াজ শুনতে পাবেন।"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"অ্যালার্ম ছাড়া অন্য কোনও আওয়াজ বা ভাইব্রেশন হবে না। তবে সঙ্গীত, ভিডিও, এবং গেম সহ আপনি যা কিছু চালাবেন তার আওয়াজ শুনতে পাবেন।"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"কাস্টমাইজ করুন"</string>
@@ -504,10 +495,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"উইজেট বেছে নিন"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"উইজেট সরান"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"বেছে নেওয়া উইজেটটি রাখুন"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
- <skip />
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"লক স্ক্রিন উইজেট"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"আপনার ট্যাবলেট লক থাকলেও যেকোনও ব্যক্তি লক স্ক্রিনে উইজেট দেখতে পাবেন।"</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"উইজেট বাদ দিন"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"লক স্ক্রিন উইজেট"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"উইজেট ব্যবহার করে কোনও অ্যাপ খুলতে, আপনাকে নিজের পরিচয় যাচাই করতে হবে। এছাড়াও, মনে রাখবেন, এমনকি আপনার ট্যাবলেট লক থাকাকালীন যেকেউ তা দেখতে পারবেন। কিছু উইজেট আপনার লক স্ক্রিনের উদ্দেশ্যে তৈরি করা হয়নি এবং এখানে যোগ করা নিরাপদ নাও হতে পারে।"</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"বুঝেছি"</string>
@@ -564,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"এখন শুরু করুন"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"কোনও বিজ্ঞপ্তি নেই"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"নতুন কোনও বিজ্ঞপ্তি নেই"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"অ্যাডাপ্টিভ বিজ্ঞপ্তি চালু আছে"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"অল্প সময়ে অনেক বেশি বিজ্ঞপ্তি পেলে, আপনার ডিভাইস এখন ২ মিনিটের জন্য ভলিউম ও স্ক্রিনে আসা পপ-আপ কমায়।"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"বন্ধ করুন"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"পুরনো বিজ্ঞপ্তি দেখতে আনলক করুন"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"আপনার অভিভাবক এই ডিভাইস ম্যানেজ করেন"</string>
@@ -732,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ডিফল্ট"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"অটোমেটিক"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"আওয়াজ করবে না বা ভাইব্রেট হবে না"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"কোনও সাউন্ড বা ভাইব্রেশন ছাড়াই কথোপকথন বিভাগে দেখা যাবে"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"ডিভাইসের সেটিংস অনুযায়ী রিং বা ভাইব্রেট হতে পারে"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"ডিভাইসের সেটিংস অনুযায়ী রিং বা ভাইব্রেট হতে পারে। <xliff:g id="APP_NAME">%1$s</xliff:g>-এর কথোপকথন সাধারণত বাবলের মতো দেখাবে।"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"এই বিজ্ঞপ্তি এলে ডিভাইস আওয়াজ করবে না ভাইব্রেট করবে তা সিস্টেমকে সেট করতে দিন"</string>
@@ -790,8 +781,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"পেজ আপ"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"পেজ ডাউন"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"মুছুন"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"হোম"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"শেষ"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"ঢোকান"</string>
@@ -1394,6 +1384,17 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%2$d-এর মধ্যে %1$d লেভেল"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"হোম কন্ট্রোল"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"স্ক্রিন সেভার হিসেবে ঝটপট \'হোম কন্ট্রোল\' অ্যাক্সেস করুন"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
- <skip />
+ <string name="volume_undo_action" msgid="5815519725211877114">"আগের অবস্থায় ফিরুন"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"ফিরে যেতে, টাচপ্যাডে তিনটি আঙুল দিয়ে ডান বা বাঁদিকে সোয়াইপ করুন"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"হোমে যেতে, টাচপ্যাডে তিনটি আঙুল দিয়ে উপরের দিকে সোয়াইপ করুন"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"সম্প্রতি ব্যবহার করা অ্যাপ দেখতে, টাচপ্যাডে তিনটি আঙুল ব্যবহার করে উপরের দিকে সোয়াইপ করে ধরে রাখুন"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"আপনার সব অ্যাপ দেখতে, কীবোর্ডে অ্যাকশন কী প্রেস করুন"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"ফিরে যেতে টাচপ্যাড ব্যবহার করুন"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"তিনটি আঙুলের ব্যবহার করে ডান বা বাঁদিকে সোয়াইপ করুন। আরও জেসচার সম্পর্কে জানতে ট্যাপ করুন।"</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"হোমে যেতে টাচপ্যাড ব্যবহার করুন"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"তিনটি আঙুল ব্যবহার করে উপরের দিকে সোয়াইপ করুন। আরও জেসচার সম্পর্কে জানতে ট্যাপ করুন।"</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"সম্প্রতি ব্যবহার করা অ্যাপ দেখতে টাচপ্যাড ব্যবহার করুন"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"তিনটি আঙুল ব্যবহার করে উপরের দিকে সোয়াইপ করে ধরে রাখুন। আরও জেসচার সম্পর্কে জানতে ট্যাপ করুন।"</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"সব অ্যাপ দেখতে আপনার কীবোর্ড ব্যবহার করুন"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"যেকোনও সময় অ্যাকশন কী প্রেস করুন। আরও জেসচার সম্পর্কে জানতে ট্যাপ করুন।"</string>
</resources>
diff --git a/packages/SystemUI/res/values-bn/tiles_states_strings.xml b/packages/SystemUI/res/values-bn/tiles_states_strings.xml
index b6336ba0ecca..4935f32bb532 100644
--- a/packages/SystemUI/res/values-bn/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-bn/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"বন্ধ আছে"</item>
<item msgid="4875147066469902392">"চালু আছে"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"উপলভ্য নেই"</item>
+ <item msgid="2004750556637773692">"বন্ধ আছে"</item>
+ <item msgid="8968530753931637871">"চালু আছে"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"উপলভ্য নেই"</item>
<item msgid="5044688398303285224">"বন্ধ আছে"</item>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index 5a8543510ab1..08052a449a2d 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -126,25 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Dodirnite da vidite"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Greška prilikom pohranjivanja snimka ekrana"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Greška pri pokretanju snimanja ekrana"</string>
- <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Želite li zaustaviti snimanje?"</string>
- <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Trenutačno snimate cijeli zaslon"</string>
- <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Trenutačno snimate aplikaciju <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Zaustaviti snimanje?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Trenutno snimate cijeli ekran"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Trenutno snimate aplikaciju <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Zaustavi snimanje"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Dijeljenje ekrana"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Zaustaviti dijeljenje ekrana?"</string>
- <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Trenutačno dijelite cijeli zaslon s aplikacijom <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
- <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Trenutačno dijelite cijeli zaslon s aplikacijom"</string>
- <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Trenutačno dijelite aplikaciju <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
- <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Trenutačno dijelite aplikaciju"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Trenutno dijelite cijeli ekran s aplikacijom <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Trenutno dijelite cijeli ekran s aplikacijom"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Trenutno dijelite aplikaciju <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Trenutno dijelite aplikaciju"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Zaustavi dijeljenje"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Emitiranje ekrana"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Zaustaviti emitiranje?"</string>
- <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Trenutačno emitirate cijeli zaslon na uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Trenutačno emitirate cijeli zaslon na uređaj u blizini"</string>
- <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Trenutačno emitirate aplikaciju <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> na uređaj <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
- <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Trenutačno emitirate aplikaciju <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> na uređaj u blizini"</string>
- <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Trenutačno emitirate na uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Trenutačno emitirate na uređaj u blizini"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Trenutno emitirate cijeli ekran na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Trenutno emitirate cijeli ekran na uređaju u blizini"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Trenutno emitirate aplikaciju <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> na uređaju <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Trenutno emitirate aplikaciju <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> na uređaju u blizini"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Trenutno emitirate na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Trenutno emitirate na uređaju u blizini"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Zaustavi emitiranje"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Zatvori"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Snimač problema"</string>
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Čuvar ekrana"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ne ometaj"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioritetni načini rada"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Nema dostupnih uparenih uređaja"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Dodirnite da povežete ili prekinete povezanost uređaja"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Otvori Postavke"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Drugi uređaj"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Pregled uključivanja/isključivanja"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioritetni načini rada"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Gotovo"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Postavke"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Neće vas ometati zvukovi i vibracije, osim alarma, podsjetnika, događaja i pozivalaca koje odredite. I dalje ćete čuti sve što ste odabrali za reprodukciju, uključujući muziku, videozapise i igre."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Neće vas ometati zvukovi i vibracije, osim alarma. I dalje ćete čuti sve što izaberete za reprodukciju, uključujući muziku, videozapise i igre."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Prilagodi"</string>
@@ -491,8 +497,10 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"odabir vidžeta"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"uklanjanje vidžeta"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"postavljanje odabranog vidžeta"</string>
- <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgeti zaključanog zaslona"</string>
- <string name="communal_widget_picker_description" msgid="490515450110487871">"Svi vide widgete na vašem zaključanom zaslonu, čak i ako je tablet zaključan."</string>
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Vidžeti na zaključanom ekranu"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Svi mogu pregledati vidžete na zaključanom ekranu, čak i ako je tablet zaključan."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Vidžeti zaključanog ekrana"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Da otvorite aplikaciju pomoću vidžeta, morat ćete potvrditi identitet. Također imajte na umu da ih svako može pregledati, čak i ako je tablet zaključan. Neki vidžeti možda nisu namijenjeni za vaš zaključani ekran i njihovo dodavanje ovdje možda nije sigurno."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Razumijem"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Započni odmah"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Nema obavještenja"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Nema novih obavještenja"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Prilagodljiva obavještenja su uključena"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Uređaj smanjuje jačinu zvuka i broj skočnih prozora na ekranu do dvije minute kada dobijate mnogo obavještenja unutar kratkog vremenskog raspona."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Isključi"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Otključajte da vidite starija obavještenja"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Ovim uređajem upravlja tvoj roditelj"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Zadano"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatski"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Bez zvuka ili vibracije"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Nema zvuka ni vibracije ali se i dalje pojavljuje u odjeljku razgovora"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Može zvoniti ili vibrirati na osnovu postavki uređaja"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Može zvoniti ili vibrirati na osnovu postavki uređaja. Razgovori iz aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g> prikazuju se u oblačićima prema zadanim postavkama."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Neka sistem odluči treba li se ovo obavještenje oglasiti zvukom ili vibracijom"</string>
@@ -1378,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%1$d. nivo od %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Kontrole za dom"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Brzo pristupajte kontrolama za dom putem čuvara ekrana"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Poništi"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-bs/tiles_states_strings.xml b/packages/SystemUI/res/values-bs/tiles_states_strings.xml
index 6833c27c4208..be48b3bcb916 100644
--- a/packages/SystemUI/res/values-bs/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-bs/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Isključeno"</item>
<item msgid="4875147066469902392">"Uključeno"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Nedostupno"</item>
+ <item msgid="2004750556637773692">"Isključeno"</item>
+ <item msgid="8968530753931637871">"Uključeno"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Nedostupno"</item>
<item msgid="5044688398303285224">"Isključeno"</item>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 2b4e30984f61..a76ee9fb91ce 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Estalvi de pantalla"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"No molestis"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Modes prioritaris"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"No hi ha dispositius vinculats disponibles"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Toca per connectar o desconnectar un dispositiu"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Obre Configuració"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Un altre dispositiu"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Activa o desactiva Aplicacions recents"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modes prioritaris"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Fet"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Configuració"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"No t\'interromprà cap so ni cap vibració, tret dels de les alarmes, recordatoris, esdeveniments i trucades de les persones que especifiquis. Continuaràs sentint tot allò que decideixis reproduir, com ara música, vídeos i jocs."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"No t\'interromprà cap so ni cap vibració, tret dels de les alarmes. Continuaràs sentint tot allò que decideixis reproduir, com ara música, vídeos i jocs."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personalitza"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"col·loca el widget seleccionat"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets de la pantalla de bloqueig"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Tothom pot veure widgets a la pantalla de bloqueig, fins i tot amb la tauleta bloquejada."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets de la pantalla de bloqueig"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Per obrir una aplicació utilitzant un widget, necessitaràs verificar la teva identitat. També has de tenir en compte que qualsevol persona pot veure els widgets, fins i tot quan la tauleta està bloquejada. És possible que alguns widgets no estiguin pensats per a la pantalla de bloqueig i que no sigui segur afegir-los-hi."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Entesos"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Comença ara"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"No hi ha cap notificació"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"No hi ha cap notificació nova"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notif. adaptatives activades"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"El dispositiu abaixa el volum i redueix les notificacions emergents durant un màxim de 2 minuts quan reps moltes notificacions en poc temps."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Desactiva"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Desbloqueja per veure notif. anteriors"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Els teus pares gestionen aquest dispositiu"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Predeterminat"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automàtic"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Sense so ni vibració"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Sense so ni vibració, però encara apareix a la secció de converses"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Pot sonar o vibrar en funció de la configuració del dispositiu"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Pot sonar o vibrar en funció de la configuració del dispositiu. Les converses de l\'aplicació <xliff:g id="APP_NAME">%1$s</xliff:g> es mostren com a bombolles de manera predeterminada."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Fes que el sistema determini si aquesta notificació ha d\'emetre un so o una vibració"</string>
@@ -1358,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Pantalla dividida"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrada"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Dreceres d\'aplicacions"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aplicació actual"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Accessibilitat"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Tecles de drecera"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Dreceres de cerca"</string>
@@ -1379,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Nivell %1$d de %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Controls de la llar"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Utilitza controls de la llar com a estalvi de pantalla"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Desfés"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ca/tiles_states_strings.xml b/packages/SystemUI/res/values-ca/tiles_states_strings.xml
index 3b908fd88520..d11dd32d5a82 100644
--- a/packages/SystemUI/res/values-ca/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ca/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Desactivat"</item>
<item msgid="4875147066469902392">"Activat"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"No disponible"</item>
+ <item msgid="2004750556637773692">"Desactivat"</item>
+ <item msgid="8968530753931637871">"Activat"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"No disponible"</item>
<item msgid="5044688398303285224">"Desactivat"</item>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 992b35b515c2..12ef55cf5df6 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Klepnutím nahrávku zobrazíte"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Při ukládání záznamu obrazovky došlo k chybě"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Při spouštění nahrávání obrazovky došlo k chybě"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Zastavit nahrávání?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Momentálně nahráváte celou obrazovku"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Momentálně nahráváte aplikaci <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Ukončit nahrávání"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Sdílení obrazovky"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Ukončit sdílení obrazovky?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Momentálně sdílíte celou obrazovku s aplikací <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Momentálně sdílíte celou obrazovku s aplikací"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Momentálně sdílíte aplikaci <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Momentálně sdílíte aplikaci"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Ukončit sdílení"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Odesílání obsahu obrazovky"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Ukončit odesílání?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Momentálně odesíláte celou obrazovku do zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Momentálně odesíláte celou obrazovku do zařízení v okolí"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Momentálně odesíláte aplikaci <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> do zařízení <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Momentálně odesíláte aplikaci <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> do zařízení v okolí"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Momentálně odesíláte do zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Momentálně odesíláte do zařízení v okolí"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Ukončit odesílání"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Zavřít"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Rekordér problémů"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Spořič obrazovky"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Nerušit"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Režimy priority"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Nejsou dostupná žádná spárovaná zařízení"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Klepnutím zařízení připojíte nebo odpojíte"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Otevřít nastavení"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Další zařízení"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Přepnout přehled"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Režimy priority"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Hotovo"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Nastavení"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Nebudou vás rušit zvuky ani vibrace s výjimkou budíků, upozornění, událostí a volajících, které zadáte. Nadále uslyšíte veškerý obsah, který si sami pustíte (např. hudba, videa nebo hry)."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Nebudou vás rušit zvuky ani vibrace s výjimkou budíků. Nadále uslyšíte veškerý obsah, který si sami pustíte (např. hudba, videa nebo hry)."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Přizpůsobit"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"vybrat widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"odstranit widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"umístit vybraný widget"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgety na obrazovce uzamčení"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Widgety na obrazovce uzamčení může zobrazit kdokoli, i když je tablet uzamčen."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgety na obrazovce uzamčení"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"K otevření aplikace pomocí widgetu budete muset ověřit svou totožnost. Také mějte na paměti, že widgety uvidí kdokoli, i když tablet bude uzamčen. Některé widgety nemusí být pro obrazovku uzamčení určeny a nemusí být bezpečné je na ni přidat."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Spustit"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Žádná oznámení"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Žádná nová oznámení"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Jsou zapnutá adaptivní oznámení"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Když během krátké chvíle obdržíte mnoho oznámení, zařízení teď až na dvě minuty sníží hlasitost a omezí na obrazovce vyskakovací okna."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Vypnout"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Starší oznámení se zobrazí po odemknutí"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Toto zařízení spravuje rodič"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Výchozí"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automaticky"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Žádný zvuk ani vibrace"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Bez zvuku a vibrace, ale nadále se bude zobrazovat v sekci konverzací"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Vyzvání nebo vibruje podle nastavení zařízení"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Vyzvání nebo vibruje podle nastavení zařízení. Konverzace z aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> ve výchozím nastavení bublají."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Nechat systém rozhodnout, zda má toto oznámení vydat zvuk či zavibrovat"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Rozdělená obrazovka"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Vstup"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Zkratky aplikací"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aktuální aplikace"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Přístupnost"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Klávesové zkratky"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Vyhledat zkratky"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Úroveň %1$d z %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Ovládání domácnosti"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Rychlý přístup k funkcím, jako je spořič obrazovky"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Vrátit zpět"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-cs/tiles_states_strings.xml b/packages/SystemUI/res/values-cs/tiles_states_strings.xml
index c4d7388f572f..71c95694e09d 100644
--- a/packages/SystemUI/res/values-cs/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-cs/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Vypnuto"</item>
<item msgid="4875147066469902392">"Zapnuto"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Nedostupné"</item>
+ <item msgid="2004750556637773692">"Vypnuto"</item>
+ <item msgid="8968530753931637871">"Zapnuto"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Nedostupné"</item>
<item msgid="5044688398303285224">"Vypnuto"</item>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 2750b429844e..ef9ef95fe502 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Tryk for at se"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Skærmoptagelsen kunne ikke gemmes"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Skærmoptagelsen kunne ikke startes"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Vil du stoppe optagelsen?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Du optager i øjeblikket hele skærmen"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Du optager i øjeblikket <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Stop optagelse"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Skærmen deles"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Stop skærmdelingen?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Du deler i øjeblikket hele skærmen med <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Du deler i øjeblikket hele skærmen med en app"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Du deler i øjeblikket <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Du deler i øjeblikket en app"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Stop deling"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Skærmen castes"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Vil du stoppe din cast?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Du caster i øjeblikket hele skærmen til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Du caster i øjeblikket hele skærmen til en enhed i nærheden"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Du caster i øjeblikket <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> til <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Du caster i øjeblikket <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> til en enhed i nærheden"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Du caster i øjeblikket til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Du caster i øjeblikket til en enhed i nærheden"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Stop cast"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Luk"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Problemoptagelse"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Pauseskærm"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Forstyr ikke"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Tilstande med prioritet"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Der er ingen tilgængelige parrede enheder"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Tryk for at oprette eller afbryde forbindelse til en enhed"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Åbn Indstillinger"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Anden enhed"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Slå Oversigt til/fra"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Tilstande med prioritet"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Udfør"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Indstillinger"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Du bliver ikke forstyrret af lyde eller vibrationer, undtagen fra alarmer, påmindelser, begivenheder og opkald fra udvalgte personer, du selv angiver. Du kan stadig høre alt, du vælger at afspille, f.eks. musik, videoer og spil."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Du bliver ikke forstyrret af lyde eller vibrationer, undtagen fra alarmer. Du kan stadig høre alt, du vælger at afspille, f.eks. musik, videoer og spil."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Tilpas"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"vælg widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"fjern widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"placer valgt widget"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets på låseskærmen"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Alle kan se widgets på din låseskærm, også selvom din tablet er låst."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets på låseskærmen"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Hvis du vil åbne en app ved hjælp af en widget, skal du verificere din identitet. Husk også, at alle kan se dem, også når din tablet er låst. Nogle widgets er muligvis ikke beregnet til låseskærmen, og det kan være usikkert at tilføje dem her."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Start nu"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Ingen notifikationer"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Ingen nye notifikationer"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptive notifikationer er aktiveret"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Din enhed skruer nu ned for lydstyrken og reducerer pop op-vinduer på skærmen i op til to minutter, når du modtager mange notifikationer over kort tid."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Deaktiver"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Lås op for at se ældre notifikationer"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Denne enhed administreres af din forælder"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Standard"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatisk"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Ingen lyd eller vibration"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Ingen lyd eller vibration, men vises stadig i samtalesektionen"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Kan ringe eller vibrere baseret på enhedens indstillinger"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Kan ringe eller vibrere baseret på enhedens indstillinger. Samtaler fra <xliff:g id="APP_NAME">%1$s</xliff:g> vises som standard i bobler."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Få systemet til at afgøre, om denne notifikation skal vibrere eller afspille en lyd"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Opdelt skærm"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Appgenveje"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aktuel app"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Hjælpefunktioner"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Tastaturgenveje"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Genveje til søgning"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Niveau %1$d af %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Hjemmestyring"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Tilgå hurtigt hjemmestyring via din pauseskærm"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Fortryd"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-da/tiles_states_strings.xml b/packages/SystemUI/res/values-da/tiles_states_strings.xml
index 3a9533a71251..9b11f52902ba 100644
--- a/packages/SystemUI/res/values-da/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-da/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Fra"</item>
<item msgid="4875147066469902392">"Til"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Ikke tilgængelig"</item>
+ <item msgid="2004750556637773692">"Fra"</item>
+ <item msgid="8968530753931637871">"Til"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Ikke tilgængelig"</item>
<item msgid="5044688398303285224">"Fra"</item>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index 710ae57fbc70..c9b449d65c16 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Zum Ansehen tippen"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Fehler beim Speichern der Bildschirmaufzeichnung"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Fehler beim Start der Bildschirmaufzeichnung"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Aufzeichnung beenden?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Du zeichnest momentan deinen gesamten Bildschirm auf"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Du zeichnest momentan Inhalte der <xliff:g id="APP_NAME">%1$s</xliff:g> auf"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Aufnahme beenden"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Bildschirm wird geteilt"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Bildschirmfreigabe beenden?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Du teilst momentan deinen gesamten Bildschirm mit der <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Du teilst momentan deinen gesamten Bildschirm mit einer App"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Du teilst momentan Inhalte der <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Du teilst momentan Inhalte einer App"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Freigabe beenden"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Bildschirm wird übertragen"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Übertragung abbrechen?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Du überträgst momentan deinen gesamten Bildschirm auf das Gerät „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Du überträgst momentan deinen gesamten Bildschirm auf ein Gerät in der Nähe"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Du überträgst momentan Inhalte der <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> auf das Gerät „<xliff:g id="DEVICE_NAME">%2$s</xliff:g>“"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Du überträgst momentan Inhalte der <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> auf ein Gerät in der Nähe"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Du überträgst momentan Inhalte auf das Gerät „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Du überträgst momentan Inhalte auf ein Gerät in der Nähe"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Streaming beenden"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Schließen"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Problem aufzeichnen"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Bildschirmschoner"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Bitte nicht stören"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioritätsmodi"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Keine gekoppelten Geräte verfügbar"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Zum Verbinden oder Trennen eines Geräts tippen"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Einstellungen öffnen"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Sonstiges Gerät"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Übersicht ein-/ausblenden"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioritätsmodi"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Fertig"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Einstellungen"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Klingeltöne und die Vibration werden deaktiviert, außer für Weckrufe, Erinnerungen, Termine sowie Anrufe von zuvor von dir festgelegten Personen. Du hörst jedoch weiterhin Sound, wenn du dir Musik anhörst, Videos ansiehst oder Spiele spielst."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Klingeltöne und die Vibration werden deaktiviert, außer für Weckrufe. Du hörst jedoch weiterhin Sound, wenn du dir Musik anhörst, Videos ansiehst oder Spiele spielst."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Anpassen"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"Widget auswählen"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"Widget entfernen"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"ausgewähltes Widget in den Bearbeitungsmodus versetzen"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Sperrbildschirm-Widgets"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Jeder kann Widgets auf deinem Sperrbildschirm sehen, auch bei gesperrtem Tablet."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Sperrbildschirm-Widgets"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Wenn du eine App mit einem Widget öffnen möchtest, musst du deine Identität bestätigen. Beachte auch, dass jeder die Widgets sehen kann, auch wenn dein Tablet gesperrt ist. Einige Widgets sind möglicherweise nicht für den Sperrbildschirm vorgesehen, sodass es unsicher sein kann, sie hier hinzuzufügen."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Jetzt starten"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Keine Benachrichtigungen"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Keine neuen Benachrichtigungen"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptive Benachrichtigungen an"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Wenn du in kurzer Zeit viele Benachrichtigungen erhältst, reduziert dein Gerät jetzt die Lautstärke und Pop-ups bis zu 2 Minuten lang."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Deaktivieren"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Für ältere Benachrichtigungen entsperren"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Dieses Gerät wird von deinen Eltern verwaltet"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Standard"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatisch"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Kein Ton und keine Vibration"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Weder Ton noch Vibration, erscheint aber dennoch im Bereich „Unterhaltungen“"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Kann je nach Geräteeinstellungen klingeln oder vibrieren"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Kann je nach Geräteeinstellungen klingeln oder vibrieren. Unterhaltungen von <xliff:g id="APP_NAME">%1$s</xliff:g> werden standardmäßig als Bubble angezeigt."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Das System entscheiden lassen, ob bei dieser Benachrichtigung ein Ton oder eine Vibration ausgegeben wird"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Nach oben"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Nach unten"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Entf"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Pos1"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Ende"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Einfg"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Splitscreen"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Eingabe"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App-Verknüpfungen"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aktuelle App"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Bedienungshilfen"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Tastenkürzel"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Tastenkürzel suchen"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Level %1$d von %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Smart-Home-Steuerung"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Smart-Home-Steuerung als Bildschirmschoner nutzen"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Rückgängig machen"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-de/tiles_states_strings.xml b/packages/SystemUI/res/values-de/tiles_states_strings.xml
index 8d9c7930fda8..f27ac22aa925 100644
--- a/packages/SystemUI/res/values-de/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-de/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Aus"</item>
<item msgid="4875147066469902392">"An"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Nicht verfügbar"</item>
+ <item msgid="2004750556637773692">"Aus"</item>
+ <item msgid="8968530753931637871">"An"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Nicht verfügbar"</item>
<item msgid="5044688398303285224">"Aus"</item>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index b77a9f1494d2..55c06d11e3a9 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Πατήστε για προβολή"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Σφάλμα κατά την αποθήκευση της εγγραφής οθόνης"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Σφάλμα κατά την έναρξη της εγγραφής οθόνης"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Να διακοπεί η εγγραφή;"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Αυτή τη στιγμή εγγράφετε ολόκληρη την οθόνη σας"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Αυτή τη στιγμή εγγράφετε την <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Διακοπή εγγραφής"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Γίνεται κοινοποίηση οθόνης"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Διακοπή κοινής χρήσης οθόνης;"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Αυτή τη στιγμή μοιράζεστε ολόκληρη την οθόνη σας με την <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Αυτή τη στιγμή μοιράζεστε ολόκληρη την οθόνη σας με μια εφαρμογή"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Αυτή τη στιγμή μοιράζεστε την <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Αυτή τη στιγμή μοιράζεστε μια εφαρμογή"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Διακοπή κοινής χρήσης"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Μετάδοση οθόνης"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Τερματισμός μετάδοσης;"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Αυτή τη στιγμή μεταδίδετε ολόκληρη την οθόνη σας στη <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Αυτή τη στιγμή μεταδίδετε ολόκληρη την οθόνη σας σε μια συσκευή σε κοντινή απόσταση"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Αυτή τη στιγμή μεταδίδετε την <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> στη <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Αυτή τη στιγμή μεταδίδετε την <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> σε μια συσκευή σε κοντινή απόσταση"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Αυτή τη στιγμή κάνετε μετάδοση στη <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Αυτή τη στιγμή κάνετε μετάδοση σε μια συσκευή σε κοντινή απόσταση"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Διακοπή μετάδοσης"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Κλείσιμο"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Εργαλείο καταγραφής προβλημάτων"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Προφύλαξη οθόνης"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Μην ενοχλείτε"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Λειτουργίες προτεραιότητας"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Δεν υπάρχουν διαθέσιμες συσκευές σε σύζευξη"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Πατήστε για σύνδεση ή αποσύνδεση μιας συσκευής"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Άνοιγμα Ρυθμίσεων"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Άλλη συσκευή"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Εναλλαγή επισκόπησης"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Λειτουργίες προτεραιότητας"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Τέλος"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Ρυθμίσεις"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Δεν θα ενοχλείστε από ήχους και δονήσεις, παρά μόνο από ξυπνητήρια, υπενθυμίσεις, συμβάντα και καλούντες που έχετε καθορίσει. Θα εξακολουθείτε να ακούτε όλο το περιεχόμενο που επιλέγετε να αναπαραγάγετε, συμπεριλαμβανομένης της μουσικής, των βίντεο και των παιχνιδιών."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Δεν θα ενοχλείστε από ήχους και δονήσεις, παρά μόνο από ξυπνητήρια. Θα εξακολουθείτε να ακούτε όλο το περιεχόμενο που επιλέγετε να αναπαραγάγετε, συμπεριλαμβανομένης της μουσικής, των βίντεο και των παιχνιδιών."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Προσαρμογή"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"επιλογή γραφικού στοιχείου"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"κατάργηση γραφικού στοιχείου"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"τοποθέτηση επιλεγμένου γραφικού στοιχείου"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Γραφικά στοιχεία οθόνης κλειδώματος"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Όλοι μπορούν να δουν γραφικά στοιχεία στην οθόνη κλειδώματος, ακόμα και αν το tablet είναι κλειδωμένο."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Γραφικά στοιχεία οθόνης κλειδώματος"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Για να ανοίξετε μια εφαρμογή χρησιμοποιώντας ένα γραφικό στοιχείο, θα πρέπει να επαληθεύσετε την ταυτότητά σας. Επίσης, λάβετε υπόψη ότι η προβολή τους είναι δυνατή από οποιονδήποτε, ακόμα και όταν το tablet σας είναι κλειδωμένο. Ορισμένα γραφικά στοιχεία μπορεί να μην προορίζονται για την οθόνη κλειδώματος και η προσθήκη τους εδώ ενδέχεται να μην είναι ασφαλής."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Έναρξη τώρα"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Δεν υπάρχουν ειδοποιήσεις"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Δεν υπάρχουν νέες ειδοποιήσεις"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Προσαρμοστ. ειδοπ. – Ενεργές"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Όταν λαμβάνετε πολλές ειδοποιήσεις σε σύντομο χρονικό διάστημα, η συσκευή θα χαμηλώνει την ένταση και θα μειώνει τα αναδυόμενα για έως και 2 λεπτά."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Απενεργοποίηση"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Ξεκλειδώστε για εμφάνιση παλαιότ. ειδοπ."</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Αυτή η συσκευή είναι διαχειριζόμενη από τον γονέα σου"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Προεπιλογή"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Αυτόματο"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Χωρίς ήχο ή δόνηση"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Δεν προκαλέι ήχο ή δόνηση, αλλά εξακολουθεί να εμφανίζεται στην ενότητα συζητήσεων"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Ενδέχεται να κουδουνίζει ή να δονείται βάσει των ρυθμίσεων συσκευής"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Ενδέχεται να κουδουνίζει ή να δονείται βάσει των ρυθμίσεων συσκευής. Οι συζητήσεις από την εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> εμφανίζονται σε συννεφάκι από προεπιλογή."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Επιτρέψτε στο σύστημα να αποφασίσει αν αυτή η ειδοποίηση θα αναπαράγει έναν ήχο ή θα ενεργοποιήσει τη δόνηση της συσκευής"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Προηγούμενη σελίδα"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Επόμενη σελίδα"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Λήξη"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Διαχωρισμός οθόνης"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Είσοδος"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Συντομεύσεις εφαρμογών"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Τρέχουσα εφαρμογή"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Προσβασιμότητα"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Συντομεύσεις πληκτρολογίου"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Συντομεύσεις αναζήτησης"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Επίπεδο %1$d από %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Οικιακοί έλεγχοι"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Γρήγ. πρόσβαση σε οικιακ. ελέγχους ως προφ. οθόνης"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Αναίρεση"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-el/tiles_states_strings.xml b/packages/SystemUI/res/values-el/tiles_states_strings.xml
index 3f27fb49806c..9db5c8fdc636 100644
--- a/packages/SystemUI/res/values-el/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-el/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Ανενεργό"</item>
<item msgid="4875147066469902392">"Ενεργό"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Μη διαθέσιμο"</item>
+ <item msgid="2004750556637773692">"Ανενεργό"</item>
+ <item msgid="8968530753931637871">"Ενεργό"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Μη διαθέσιμο"</item>
<item msgid="5044688398303285224">"Ανενεργό"</item>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index 1b1ae9765e72..23c3ff333821 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Tap to view"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Error saving screen recording"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Error starting screen recording"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Stop recording?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"You\'re currently recording your entire screen"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"You\'re currently recording <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Stop recording"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Sharing screen"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Stop sharing screen?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"You\'re currently sharing your entire screen with <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"You\'re currently sharing your entire screen with an app"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"You\'re currently sharing <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"You\'re currently sharing an app"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Stop sharing"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Casting screen"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Stop casting?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"You\'re currently casting your entire screen to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"You\'re currently casting your entire screen to a nearby device"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"You\'re currently casting <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> to <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"You\'re currently casting <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> to a nearby device"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"You\'re currently casting to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"You\'re currently casting to a nearby device"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Stop casting"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Close"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Issue Recorder"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Screen saver"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Do Not Disturb"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Priority modes"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"No paired devices available"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Tap to connect or disconnect a device"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Open settings"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Other device"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Toggle Overview"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Priority modes"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Done"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Settings"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"You won\'t be disturbed by sounds and vibrations, except from alarms, reminders, events and callers you specify. You\'ll still hear anything you choose to play including music, videos and games."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"You won\'t be disturbed by sounds and vibrations, except from alarms. You\'ll still hear anything you choose to play including music, videos and games."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Customise"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"select widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"remove widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"place selected widget"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Lock screen widgets"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Anyone can view widgets on your lock screen, even if your tablet\'s locked."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Lock screen widgets"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"To open an app using a widget, you\'ll need to verify that it\'s you. Also, bear in mind that anyone can view them, even when your tablet\'s locked. Some widgets may not have been intended for your lock screen and may be unsafe to add here."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Start now"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"No notifications"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"No new notifications"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptive notifications is on"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Your device now lowers the volume and reduces pop-ups on the screen for up to 2 minutes when you receive many notifications in a short time span."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Turn off"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Unlock to see older notifications"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"This device is managed by your parent"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Default"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatic"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"No sound or vibration"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"No sound or vibration but still appears in the conversation section"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"May ring or vibrate based on device settings"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"May ring or vibrate based on device settings. Conversations from <xliff:g id="APP_NAME">%1$s</xliff:g> bubble by default."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Have the system determine if this notification should make sound or vibration"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Split screen"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App shortcuts"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Current app"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Accessibility"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Keyboard shortcuts"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Search shortcuts"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Level %1$d of %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Home controls"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Quickly access your home controls as a screensaver"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Undo"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
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 27c23aa63a07..0658ce58e60f 100644
--- a/packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Off"</item>
<item msgid="4875147066469902392">"On"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Unavailable"</item>
+ <item msgid="2004750556637773692">"Off"</item>
+ <item msgid="8968530753931637871">"On"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Unavailable"</item>
<item msgid="5044688398303285224">"Off"</item>
diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml
index 0acb6744e869..8a582cb83cbb 100644
--- a/packages/SystemUI/res/values-en-rCA/strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/strings.xml
@@ -426,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Open Settings"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Other device"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Toggle Overview"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Priority modes"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Done"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Settings"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"On"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"Off"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"You won\'t be disturbed by sounds and vibrations, except from alarms, reminders, events, and callers you specify. You\'ll still hear anything you choose to play including music, videos, and games."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"You won\'t be disturbed by sounds and vibrations, except from alarms. You\'ll still hear anything you choose to play including music, videos, and games."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Customize"</string>
@@ -492,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"place selected widget"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Lock screen widgets"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Anyone can view widgets on your lock screen, even if your tablet\'s locked."</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"unselect widget"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Lock screen widgets"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"To open an app using a widget, you’ll need to verify it’s you. Also, keep in mind that anyone can view them, even when your tablet’s locked. Some widgets may not have been intended for your lock screen and may be unsafe to add here."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Got it"</string>
@@ -548,8 +554,8 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Start now"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"No notifications"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"No new notifications"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptive notifications is on"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Your device now lowers the volume and reduces pop-ups on the screen for up to two minutes when you receive many notifications in a short time span."</string>
+ <string name="adaptive_notification_edu_hun_title" msgid="7790738150177329960">"Notification cooldown is on"</string>
+ <string name="adaptive_notification_edu_hun_text" msgid="7743367744129536610">"Your device volume and alerts are reduced automatically for up to 2 minutes when you get too many notifications at once."</string>
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Turn off"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Unlock to see older notifications"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"This device is managed by your parent"</string>
@@ -716,8 +722,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Default"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatic"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"No sound or vibration"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"No sound or vibration but still appears in the conversation section"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"May ring or vibrate based on device settings"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"May ring or vibrate based on device settings. Conversations from <xliff:g id="APP_NAME">%1$s</xliff:g> bubble by default."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Have the system determine if this notification should make sound or vibration"</string>
@@ -1378,4 +1383,16 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"Home Controls"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Quickly access your home controls as a screensaver"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"Undo"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"To go back, swipe left or right with three fingers on the touchpad"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"To go home, swipe up with three fingers on the touchpad"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"To view recent apps, swipe up and hold with three fingers on the touchpad"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"To view all your apps, press the action key on your keyboard"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"Use your touchpad to go back"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"Swipe left or right using three fingers. Tap to learn more gestures."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"Use your touchpad to go home"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"Swipe up using three fingers. Tap to learn more gestures."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"Use your touchpad to view recent apps"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"Swipe up and hold using three fingers. Tap to learn more gestures."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"Use your keyboard to view all apps"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"Press the action key at any time. Tap to learn more gestures."</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 1b1ae9765e72..23c3ff333821 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Tap to view"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Error saving screen recording"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Error starting screen recording"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Stop recording?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"You\'re currently recording your entire screen"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"You\'re currently recording <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Stop recording"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Sharing screen"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Stop sharing screen?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"You\'re currently sharing your entire screen with <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"You\'re currently sharing your entire screen with an app"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"You\'re currently sharing <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"You\'re currently sharing an app"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Stop sharing"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Casting screen"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Stop casting?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"You\'re currently casting your entire screen to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"You\'re currently casting your entire screen to a nearby device"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"You\'re currently casting <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> to <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"You\'re currently casting <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> to a nearby device"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"You\'re currently casting to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"You\'re currently casting to a nearby device"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Stop casting"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Close"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Issue Recorder"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Screen saver"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Do Not Disturb"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Priority modes"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"No paired devices available"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Tap to connect or disconnect a device"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Open settings"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Other device"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Toggle Overview"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Priority modes"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Done"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Settings"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"You won\'t be disturbed by sounds and vibrations, except from alarms, reminders, events and callers you specify. You\'ll still hear anything you choose to play including music, videos and games."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"You won\'t be disturbed by sounds and vibrations, except from alarms. You\'ll still hear anything you choose to play including music, videos and games."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Customise"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"select widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"remove widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"place selected widget"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Lock screen widgets"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Anyone can view widgets on your lock screen, even if your tablet\'s locked."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Lock screen widgets"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"To open an app using a widget, you\'ll need to verify that it\'s you. Also, bear in mind that anyone can view them, even when your tablet\'s locked. Some widgets may not have been intended for your lock screen and may be unsafe to add here."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Start now"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"No notifications"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"No new notifications"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptive notifications is on"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Your device now lowers the volume and reduces pop-ups on the screen for up to 2 minutes when you receive many notifications in a short time span."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Turn off"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Unlock to see older notifications"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"This device is managed by your parent"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Default"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatic"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"No sound or vibration"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"No sound or vibration but still appears in the conversation section"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"May ring or vibrate based on device settings"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"May ring or vibrate based on device settings. Conversations from <xliff:g id="APP_NAME">%1$s</xliff:g> bubble by default."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Have the system determine if this notification should make sound or vibration"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Split screen"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App shortcuts"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Current app"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Accessibility"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Keyboard shortcuts"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Search shortcuts"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Level %1$d of %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Home controls"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Quickly access your home controls as a screensaver"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Undo"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
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 27c23aa63a07..0658ce58e60f 100644
--- a/packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Off"</item>
<item msgid="4875147066469902392">"On"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Unavailable"</item>
+ <item msgid="2004750556637773692">"Off"</item>
+ <item msgid="8968530753931637871">"On"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Unavailable"</item>
<item msgid="5044688398303285224">"Off"</item>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index 1b1ae9765e72..23c3ff333821 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Tap to view"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Error saving screen recording"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Error starting screen recording"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Stop recording?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"You\'re currently recording your entire screen"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"You\'re currently recording <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Stop recording"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Sharing screen"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Stop sharing screen?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"You\'re currently sharing your entire screen with <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"You\'re currently sharing your entire screen with an app"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"You\'re currently sharing <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"You\'re currently sharing an app"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Stop sharing"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Casting screen"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Stop casting?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"You\'re currently casting your entire screen to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"You\'re currently casting your entire screen to a nearby device"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"You\'re currently casting <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> to <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"You\'re currently casting <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> to a nearby device"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"You\'re currently casting to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"You\'re currently casting to a nearby device"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Stop casting"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Close"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Issue Recorder"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Screen saver"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Do Not Disturb"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Priority modes"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"No paired devices available"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Tap to connect or disconnect a device"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Open settings"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Other device"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Toggle Overview"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Priority modes"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Done"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Settings"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"You won\'t be disturbed by sounds and vibrations, except from alarms, reminders, events and callers you specify. You\'ll still hear anything you choose to play including music, videos and games."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"You won\'t be disturbed by sounds and vibrations, except from alarms. You\'ll still hear anything you choose to play including music, videos and games."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Customise"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"select widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"remove widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"place selected widget"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Lock screen widgets"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Anyone can view widgets on your lock screen, even if your tablet\'s locked."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Lock screen widgets"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"To open an app using a widget, you\'ll need to verify that it\'s you. Also, bear in mind that anyone can view them, even when your tablet\'s locked. Some widgets may not have been intended for your lock screen and may be unsafe to add here."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Start now"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"No notifications"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"No new notifications"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptive notifications is on"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Your device now lowers the volume and reduces pop-ups on the screen for up to 2 minutes when you receive many notifications in a short time span."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Turn off"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Unlock to see older notifications"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"This device is managed by your parent"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Default"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatic"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"No sound or vibration"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"No sound or vibration but still appears in the conversation section"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"May ring or vibrate based on device settings"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"May ring or vibrate based on device settings. Conversations from <xliff:g id="APP_NAME">%1$s</xliff:g> bubble by default."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Have the system determine if this notification should make sound or vibration"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Split screen"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App shortcuts"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Current app"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Accessibility"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Keyboard shortcuts"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Search shortcuts"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Level %1$d of %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Home controls"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Quickly access your home controls as a screensaver"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Undo"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
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 27c23aa63a07..0658ce58e60f 100644
--- a/packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Off"</item>
<item msgid="4875147066469902392">"On"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Unavailable"</item>
+ <item msgid="2004750556637773692">"Off"</item>
+ <item msgid="8968530753931637871">"On"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Unavailable"</item>
<item msgid="5044688398303285224">"Off"</item>
diff --git a/packages/SystemUI/res/values-en-rXC/strings.xml b/packages/SystemUI/res/values-en-rXC/strings.xml
index e4a6603df2bf..7ff790037472 100644
--- a/packages/SystemUI/res/values-en-rXC/strings.xml
+++ b/packages/SystemUI/res/values-en-rXC/strings.xml
@@ -426,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎Open Settings‎‏‎‎‏‎"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‏‎‎‏‎‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎Other device‎‏‎‎‏‎"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‎‎‎‎‏‏‎‎‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‏‏‏‎‎‏‎‎‎‏‏‎Toggle Overview‎‏‎‎‏‎"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‏‏‏‎Priority modes‎‏‎‎‏‎"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‏‏‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‎‎‏‏‎‎Done‎‏‎‎‏‎"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‏‏‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‏‎‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎Settings‎‏‎‎‏‎"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‎On‎‏‎‎‏‎"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎Off‎‏‎‎‏‎"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎You won\'t be disturbed by sounds and vibrations, except from alarms, reminders, events, and callers you specify. You\'ll still hear anything you choose to play including music, videos, and games.‎‏‎‎‏‎"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‏‎‎‎‏‏‎‎‎‎‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‏‎‏‏‎‎You won\'t be disturbed by sounds and vibrations, except from alarms. You\'ll still hear anything you choose to play including music, videos, and games.‎‏‎‎‏‎"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‎‎‏‏‎‎‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‏‎‏‎‎‎‏‎‎‏‏‏‎Customize‎‏‎‎‏‎"</string>
@@ -492,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‎‎‏‏‎‎‎‎‏‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎‎place selected widget‎‏‎‎‏‎"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‏‎Lock screen widgets‎‏‎‎‏‎"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‎‏‎‎‏‏‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‎Anyone can view widgets on your lock screen, even if your tablet\'s locked.‎‏‎‎‏‎"</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎unselect widget‎‏‎‎‏‎"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‏‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‎‎‎‏‏‎‎‎‏‎‎‎Lock screen widgets‎‏‎‎‏‎"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‎‎‎‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‎‎‎‎‎‎‏‎‎‎‏‏‏‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎To open an app using a widget, you’ll need to verify it’s you. Also, keep in mind that anyone can view them, even when your tablet’s locked. Some widgets may not have been intended for your lock screen and may be unsafe to add here.‎‏‎‎‏‎"</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‎‎‎‏‎‏‏‎‏‎‏‎‎‏‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‎‏‎Got it‎‏‎‎‏‎"</string>
@@ -548,8 +554,8 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‎‎‏‎‎‏‏‏‎‏‎‏‏‏‎‎‏‎‎‎‎Start now‎‏‎‎‏‎"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎‎No notifications‎‏‎‎‏‎"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎No new notifications‎‏‎‎‏‎"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‎‏‎‏‎Adaptive notifications is on‎‏‎‎‏‎"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‏‏‎‏‎‏‏‎‎‏‎Your device now lowers the volume and reduces pop-ups on the screen for up to two minutes when you receive many notifications in a short time span.‎‏‎‎‏‎"</string>
+ <string name="adaptive_notification_edu_hun_title" msgid="7790738150177329960">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‏‎‎‏‎‎‎‎‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‎‏‏‎‎‏‎‏‎‎‎‎Notification cooldown is on‎‏‎‎‏‎"</string>
+ <string name="adaptive_notification_edu_hun_text" msgid="7743367744129536610">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‎‏‎‎‏‎‎‏‏‎‎‎‏‎‎Your device volume and alerts are reduced automatically for up to 2 minutes when you get too many notifications at once.‎‏‎‎‏‎"</string>
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‏‎‏‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎Turn off‎‏‎‎‏‎"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‎‏‏‎Unlock to see older notifications‎‏‎‎‏‎"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎This device is managed by your parent‎‏‎‎‏‎"</string>
@@ -716,8 +722,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‎‏‎‏‎‎‎‎‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎Default‎‏‎‎‏‎"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎Automatic‎‏‎‎‏‎"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‎‏‏‎‎No sound or vibration‎‏‎‎‏‎"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‎‎No sound or vibration but still appears in the conversation section‎‏‎‎‏‎"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎May ring or vibrate based on device settings‎‏‎‎‏‎"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‏‎‎‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‎‏‎‎‎‎‎May ring or vibrate based on device settings. Conversations from ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ bubble by default.‎‏‎‎‏‎"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‎‎‎‏‎‏‎‎‎‎‎‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‏‏‏‎‎‎‏‎‏‏‎Have the system determine if this notification should make sound or vibration‎‏‎‎‏‎"</string>
@@ -1378,4 +1383,16 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‎‏‎Home Controls‎‏‎‎‏‎"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‏‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‏‎‎‏‏‎‏‎Quickly access your home controls as a screensaver‎‏‎‎‏‎"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎Undo‎‏‎‎‏‎"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‏‎‏‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎To go back, swipe left or right with three fingers on the touchpad‎‏‎‎‏‎"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‏‎‎‏‏‏‎‏‎‏‏‏‎‏‎‎‏‏‏‎‏‎‏‏‏‎To go home, swipe up with three fingers on the touchpad‎‏‎‎‏‎"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‏‎‏‎‏‎‎‎‎‎‏‎‎‎‎‎‏‎‏‏‏‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎To view recent apps, swipe up and hold with three fingers on the touchpad‎‏‎‎‏‎"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‏‏‎‎‏‎‏‎‏‎‎To view all your apps, press the action key on your keyboard‎‏‎‎‏‎"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‏‎‏‎‎‏‏‏‏‎‏‎‏‏‏‏‎‎Use your touchpad to go back‎‏‎‎‏‎"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‎‏‎‎‎‏‎‏‎‎‎‎‎‎‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎Swipe left or right using three fingers. Tap to learn more gestures.‎‏‎‎‏‎"</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‎‎‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‎‎‏‏‎‎‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‎‏‎Use your touchpad to go home‎‏‎‎‏‎"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎Swipe up using three fingers. Tap to learn more gestures.‎‏‎‎‏‎"</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‎‏‎‎‏‎‎‎‎‎‎‎‏‎‎‏‎‏‎‎‏‏‎‎Use your touchpad to view recent apps‎‏‎‎‏‎"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‏‏‎‏‎‎‎Swipe up and hold using three fingers. Tap to learn more gestures.‎‏‎‎‏‎"</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‎‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‏‎Use your keyboard to view all apps‎‏‎‎‏‎"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‎‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎Press the action key at any time. Tap to learn more gestures.‎‏‎‎‏‎"</string>
</resources>
diff --git a/packages/SystemUI/res/values-es-feminine/strings.xml b/packages/SystemUI/res/values-es-feminine/strings.xml
new file mode 100644
index 000000000000..a227bf21a288
--- /dev/null
+++ b/packages/SystemUI/res/values-es-feminine/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="guest_wipe_session_title" msgid="7147965814683990944">"¡Bienvenida de nuevo, invitada!"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-es-masculine/strings.xml b/packages/SystemUI/res/values-es-masculine/strings.xml
new file mode 100644
index 000000000000..d684205a234f
--- /dev/null
+++ b/packages/SystemUI/res/values-es-masculine/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="guest_wipe_session_title" msgid="7147965814683990944">"¡Bienvenido de nuevo, invitado!"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-es-neuter/strings.xml b/packages/SystemUI/res/values-es-neuter/strings.xml
new file mode 100644
index 000000000000..ea971b364717
--- /dev/null
+++ b/packages/SystemUI/res/values-es-neuter/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="guest_wipe_session_title" msgid="7147965814683990944">"¡Te damos la bienvenida de nuevo a la sesión de invitados!"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-es-rUS-feminine/strings.xml b/packages/SystemUI/res/values-es-rUS-feminine/strings.xml
new file mode 100644
index 000000000000..0bc9262df5a9
--- /dev/null
+++ b/packages/SystemUI/res/values-es-rUS-feminine/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="guest_wipe_session_title" msgid="7147965814683990944">"¡Hola de nuevo, invitada!"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-es-rUS-masculine/strings.xml b/packages/SystemUI/res/values-es-rUS-masculine/strings.xml
new file mode 100644
index 000000000000..727431f22883
--- /dev/null
+++ b/packages/SystemUI/res/values-es-rUS-masculine/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="guest_wipe_session_title" msgid="7147965814683990944">"¡Hola de nuevo, invitado!"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-es-rUS-neuter/strings.xml b/packages/SystemUI/res/values-es-rUS-neuter/strings.xml
new file mode 100644
index 000000000000..727431f22883
--- /dev/null
+++ b/packages/SystemUI/res/values-es-rUS-neuter/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="guest_wipe_session_title" msgid="7147965814683990944">"¡Hola de nuevo, invitado!"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 1b751b46ec90..fcfd1f4057b2 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Presiona para ver"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Se produjo un error al guardar la grabación de pantalla"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Error al iniciar la grabación de pantalla"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"¿Quieres detener la grabación?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Actualmente, estás grabando toda la pantalla"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Actualmente, estás grabando <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Detener la grabación"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Compartiendo pantalla"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"¿Quieres dejar de compartir la pantalla?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Actualmente, estás compartiendo toda la pantalla con <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Actualmente, estás compartiendo toda la pantalla con una app"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Actualmente, estás compartiendo <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Actualmente, estás compartiendo una app"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Dejar de compartir"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Transmitiendo pantalla"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"¿Detener la transmisión?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Actualmente, estás transmitiendo toda la pantalla a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Actualmente, estás transmitiendo toda la pantalla a un dispositivo cercano"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Actualmente, estás transmitiendo <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> a <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Actualmente, estás transmitiendo <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> a un dispositivo cercano"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Actualmente, estás transmitiendo a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Actualmente, estás transmitiendo a un dispositivo cercano"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Detener transmisión"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Cerrar"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Grabadora de errores"</string>
@@ -296,15 +283,14 @@
<string name="accessibility_sensors_off_active" msgid="2619725434618911551">"Sensores desactivados sí"</string>
<string name="accessibility_clear_all" msgid="970525598287244592">"Eliminar todas las notificaciones"</string>
<string name="notification_group_overflow_indicator" msgid="7605120293801012648">"<xliff:g id="NUMBER">%s</xliff:g> más"</string>
- <string name="notification_group_overflow_description" msgid="7176322877233433278">"{count,plural, =1{# notificación más en el grupo.}many{# notificaciones más en el grupo.}other{# notificaciones más en el grupo.}}"</string>
+ <string name="notification_group_overflow_description" msgid="7176322877233433278">"{count,plural, =1{# notificación más en el grupo.}many{# de notificaciones más en el grupo.}other{# notificaciones más en el grupo.}}"</string>
<string name="accessibility_rotation_lock_on_landscape" msgid="936972553861524360">"La pantalla está bloqueada en modo horizontal."</string>
<string name="accessibility_rotation_lock_on_portrait" msgid="2356633398683813837">"La pantalla está bloqueada en modo vertical."</string>
<string name="dessert_case" msgid="9104973640704357717">"Caja para postres"</string>
<string name="start_dreams" msgid="9131802557946276718">"Protector pantalla"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"No interrumpir"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Modos de prioridad"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"No hay dispositivos sincronizados disponibles"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Presiona para conectar o desconectar un dispositivo"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Abrir Configuración"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Otro dispositivo"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Ocultar o mostrar Recientes"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modos de prioridad"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Listo"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Configuración"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"No te molestarán los sonidos ni las vibraciones, excepto las alarmas, los recordatorios, los eventos y las llamadas de los emisores que especifiques. Podrás escuchar el contenido que reproduzcas, como música, videos y juegos."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"No te molestarán los sonidos ni las vibraciones, excepto las alarmas. Podrás escuchar el contenido que reproduzcas, como música, videos y juegos."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personalizar"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"Seleccionar widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"quitar widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"colocar widget seleccionado"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets en la pantalla de bloqueo"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Los widgets de la pantalla de bloqueo podrán verse incluso si bloqueas la tablet."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets en la pantalla de bloqueo"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir una app usando un widget, debes verificar tu identidad. Además, ten en cuenta que cualquier persona podrá verlo, incluso cuando la tablet esté bloqueada. Es posible que algunos widgets no se hayan diseñados para la pantalla de bloqueo y podría ser peligroso agregarlos allí."</string>
@@ -522,7 +515,7 @@
<string name="guest_notification_session_active" msgid="5567273684713471450">"Estás en el modo de invitado"</string>
<string name="user_add_user_message_guest_remove" msgid="5589286604543355007">\n\n"Si agregas un usuario nuevo, se desactivará el modo de invitado y se borrarán todas las apps y los datos de la sesión de invitado actual."</string>
<string name="user_limit_reached_title" msgid="2429229448830346057">"Alcanzaste el límite de usuarios"</string>
- <string name="user_limit_reached_message" msgid="1070703858915935796">"{count,plural, =1{Solo se puede crear un usuario.}many{Puedes agregar hasta # usuarios.}other{Puedes agregar hasta # usuarios.}}"</string>
+ <string name="user_limit_reached_message" msgid="1070703858915935796">"{count,plural, =1{Solo se puede crear un usuario.}many{Puedes agregar hasta # de usuarios.}other{Puedes agregar hasta # usuarios.}}"</string>
<string name="user_remove_user_title" msgid="9124124694835811874">"¿Confirmas que quieres quitar el usuario?"</string>
<string name="user_remove_user_message" msgid="6702834122128031833">"Se borrarán todas las aplicaciones y los datos de este usuario."</string>
<string name="user_remove_user_remove" msgid="8387386066949061256">"Quitar"</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Comenzar ahora"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"No hay notificaciones"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"No hay notificaciones nuevas"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notific. adaptables activadas"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Tu dispositivo ahora baja el volumen y reduce las ventanas emergentes en la pantalla por hasta dos minutos si recibes muchas notificaciones en poco tiempo."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Desactivar"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Desbloquea para ver notificaciones anteriores"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Tu padre o madre administra este dispositivo"</string>
@@ -714,7 +709,7 @@
<string name="accessibility_status_bar_satellite_available" msgid="6514855015496916829">"Satélite, conexión disponible"</string>
<string name="satellite_connected_carrier_text" msgid="118524195198532589">"SOS por satélite"</string>
<string name="accessibility_managed_profile" msgid="4703836746209377356">"Perfil de trabajo"</string>
- <string name="tuner_warning_title" msgid="7721976098452135267">"Diversión para algunos, pero no para todos"</string>
+ <string name="tuner_warning_title" msgid="7721976098452135267">"Diversión solo para algunas personas"</string>
<string name="tuner_warning" msgid="1861736288458481650">"El sintonizador de IU del sistema te brinda más formas para editar y personalizar la interfaz de usuario de Android. Estas funciones experimentales pueden cambiar, dejar de funcionar o no incluirse en futuras versiones. Procede con precaución."</string>
<string name="tuner_persistent_warning" msgid="230466285569307806">"Estas funciones experimentales pueden cambiar, dejar de funcionar o no incluirse en futuras versiones. Procede con precaución."</string>
<string name="got_it" msgid="477119182261892069">"Entendido"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Predeterminada"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automática"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Sin sonido ni vibración"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"No suena ni vibra, pero aparece en la sección de conversaciones"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Puede sonar o vibrar según la configuración del dispositivo"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Puede sonar o vibrar según la configuración del dispositivo. Conversaciones de la burbuja de <xliff:g id="APP_NAME">%1$s</xliff:g> de forma predeterminada."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Dejar que el sistema determine si esta notificación debe emitir un sonido o una vibración"</string>
@@ -771,8 +765,8 @@
<string name="snooze_undo" msgid="2738844148845992103">"Deshacer"</string>
<string name="snooze_undo_content_description" msgid="2711656788917580801">"Deshacer la acción de posponer notificaciones"</string>
<string name="snoozed_for_time" msgid="7586689374860469469">"Posponer <xliff:g id="TIME_AMOUNT">%1$s</xliff:g>"</string>
- <string name="snoozeHourOptions" msgid="2332819756222425558">"{count,plural, =1{# hora}=2{# horas}many{# horas}other{# horas}}"</string>
- <string name="snoozeMinuteOptions" msgid="2222082405822030979">"{count,plural, =1{# minuto}many{# minutos}other{# minutos}}"</string>
+ <string name="snoozeHourOptions" msgid="2332819756222425558">"{count,plural, =1{# hora}=2{# horas}many{# de horas}other{# horas}}"</string>
+ <string name="snoozeMinuteOptions" msgid="2222082405822030979">"{count,plural, =1{# minuto}many{# de minutos}other{# minutos}}"</string>
<string name="battery_detail_switch_title" msgid="6940976502957380405">"Ahorro de batería"</string>
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Botón <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Inicio"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Re Pág"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Av Pág"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Borrar"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Inicio"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Fin"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insertar"</string>
@@ -1285,7 +1278,7 @@
<string name="dream_overlay_status_bar_camera_off" msgid="5273073778969890823">"La cámara está desactivada"</string>
<string name="dream_overlay_status_bar_mic_off" msgid="8366534415013819396">"El micrófono está desactivado"</string>
<string name="dream_overlay_status_bar_camera_mic_off" msgid="3199425257833773569">"La cámara y el micrófono están apagados"</string>
- <string name="dream_overlay_status_bar_notification_indicator" msgid="8091389255691081711">"{count,plural, =1{# notificación}many{# notificaciones}other{# notificaciones}}"</string>
+ <string name="dream_overlay_status_bar_notification_indicator" msgid="8091389255691081711">"{count,plural, =1{# notificación}many{# de notificaciones}other{# notificaciones}}"</string>
<string name="dream_overlay_weather_complication_desc" msgid="824503662089783824">"<xliff:g id="WEATHER_CONDITION">%1$s</xliff:g>, <xliff:g id="TEMPERATURE">%2$s</xliff:g>"</string>
<string name="note_task_button_label" msgid="230135078402003532">"Tomar notas"</string>
<string name="note_task_shortcut_long_label" msgid="7729325091147319409">"Tomar notas, <xliff:g id="NOTE_TAKING_APP">%1$s</xliff:g>"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Pantalla dividida"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrada"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Accesos directos a aplicaciones"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"App actual"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Accesibilidad"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Combinaciones de teclas"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Buscar combinaciones de teclas"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Nivel %1$d de %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Controles de la casa"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Usa rápidamente los controles de la casa como protector de pantalla"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Deshacer"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
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 b82fafeb122c..5c1341af8185 100644
--- a/packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Desactivado"</item>
<item msgid="4875147066469902392">"Activado"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"No disponible"</item>
+ <item msgid="2004750556637773692">"No"</item>
+ <item msgid="8968530753931637871">"Sí"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"No disponible"</item>
<item msgid="5044688398303285224">"Desactivada"</item>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 56985bc4d478..544939d5f093 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Toca para verla"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"No se ha podido guardar la grabación de pantalla"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"No se ha podido empezar a grabar la pantalla"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"¿Detener grabación?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Estás grabando toda la pantalla"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Estás grabando <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Detener grabación"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Compartiendo pantalla"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"¿Dejar de compartir pantalla?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Estás compartiendo toda tu pantalla con <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Estás compartiendo toda tu pantalla con una aplicación"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Estás compartiendo <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Estás compartiendo una aplicación"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Dejar de compartir"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Enviando pantalla"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"¿Dejar de enviar?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Estás enviando toda la pantalla a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Estás enviando toda la pantalla a un dispositivo cercano"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Estás enviando <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> a <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Estás enviando <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> a un dispositivo cercano"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Estás enviando a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Estás enviando a un dispositivo cercano"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Dejar de enviar contenido"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Cerrar"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Grabadora de problemas"</string>
@@ -256,7 +243,7 @@
<string name="accessibility_battery_unknown" msgid="1807789554617976440">"Porcentaje de batería desconocido."</string>
<string name="accessibility_bluetooth_name" msgid="7300973230214067678">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string>
<string name="accessibility_cast_name" msgid="7344437925388773685">"Conectado a <xliff:g id="CAST">%s</xliff:g>."</string>
- <string name="accessibility_not_connected" msgid="4061305616351042142">"No conectado"</string>
+ <string name="accessibility_not_connected" msgid="4061305616351042142">"No conectado."</string>
<string name="data_connection_roaming" msgid="375650836665414797">"Roaming"</string>
<string name="cell_data_off" msgid="4886198950247099526">"Desactivados"</string>
<string name="accessibility_airplane_mode" msgid="1899529214045998505">"Modo Avión"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Salvapantallas"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"No molestar"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Modos prioritarios"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"No hay dispositivos vinculados disponibles"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Toca para conectar o desconectar un dispositivo"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Abrir Ajustes"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Otro dispositivo"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Mostrar u ocultar aplicaciones recientes"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modos prioritarios"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Hecho"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Ajustes"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"No te molestarán los sonidos ni las vibraciones, excepto las alarmas, los recordatorios, los eventos y las llamadas que especifiques. Seguirás escuchando el contenido que quieras reproducir, como música, vídeos y juegos."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"No te molestarán los sonidos ni las vibraciones, excepto las alarmas. Seguirás escuchando el contenido que quieras reproducir, como música, vídeos y juegos."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personalizar"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"seleccionar widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"eliminar widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"colocar widget seleccionado"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets para la pantalla de bloqueo"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Cualquiera puede ver los widgets de tu pantalla de bloqueo, aunque tu tablet esté bloqueada."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets para la pantalla de bloqueo"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir una aplicación usando un widget, deberás verificar que eres tú. Además, ten en cuenta que cualquier persona podrá verlos, incluso aunque tu tablet esté bloqueada. Es posible que algunos widgets no estén pensados para la pantalla de bloqueo y no sea seguro añadirlos aquí."</string>
@@ -514,15 +507,15 @@
<string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Cambiar de usuario"</string>
<string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menú desplegable"</string>
<string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Se eliminarán todas las aplicaciones y datos de esta sesión."</string>
- <string name="guest_wipe_session_title" msgid="7147965814683990944">"¡Hola de nuevo, invitado!"</string>
+ <string name="guest_wipe_session_title" msgid="7147965814683990944">"¡Te damos la bienvenida de nuevo a la sesión de invitados!"</string>
<string name="guest_wipe_session_message" msgid="3393823610257065457">"¿Quieres continuar con tu sesión?"</string>
<string name="guest_wipe_session_wipe" msgid="8056836584445473309">"Volver a empezar"</string>
<string name="guest_wipe_session_dontwipe" msgid="3211052048269304205">"Sí, continuar"</string>
<string name="guest_notification_app_name" msgid="2110425506754205509">"Modo Invitado"</string>
<string name="guest_notification_session_active" msgid="5567273684713471450">"Estás en modo Invitado"</string>
- <string name="user_add_user_message_guest_remove" msgid="5589286604543355007">\n\n"Si añades un nuevo usuario, saldrás del modo Invitado y se eliminarán todas las aplicaciones y datos de la sesión de invitado actual."</string>
+ <string name="user_add_user_message_guest_remove" msgid="5589286604543355007">\n\n"Si añades un nuevo usuario, saldrás del modo Invitado y se eliminarán todas las aplicaciones y los datos de la sesión de invitado actual."</string>
<string name="user_limit_reached_title" msgid="2429229448830346057">"Has alcanzado el límite de usuarios"</string>
- <string name="user_limit_reached_message" msgid="1070703858915935796">"{count,plural, =1{Solo se puede crear un usuario.}many{Puedes añadir # usuarios como máximo.}other{Puedes añadir # usuarios como máximo.}}"</string>
+ <string name="user_limit_reached_message" msgid="1070703858915935796">"{count,plural, =1{Solo se puede crear 1 usuario.}many{Puedes añadir # usuarios como máximo.}other{Puedes añadir # usuarios como máximo.}}"</string>
<string name="user_remove_user_title" msgid="9124124694835811874">"¿Quitar usuario?"</string>
<string name="user_remove_user_message" msgid="6702834122128031833">"Se eliminarán todas las aplicaciones y datos de este usuario."</string>
<string name="user_remove_user_remove" msgid="8387386066949061256">"Quitar"</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Empezar ahora"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"No hay notificaciones"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"No hay notificaciones nuevas"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notificaciones adaptativas activadas"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Tu dispositivo baja el volumen y reduce las ventanas emergentes durante un máximo de 2 minutos cuando recibes muchas notificaciones en poco tiempo."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Desactivar"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Desbloquea para ver notificaciones anteriores"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Este dispositivo lo gestionan tu padre o tu madre"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Predeterminado"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automática"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Sin sonido ni vibración"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"No suena ni vibra, pero aparece en la sección de conversación"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Puede sonar o vibrar según los ajustes del dispositivo"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Puede sonar o vibrar según los ajustes del dispositivo. Las conversaciones de <xliff:g id="APP_NAME">%1$s</xliff:g> aparecen como burbujas de forma predeterminada."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Haz que el sistema determine si con esta notificación el dispositivo debe sonar o vibrar"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Re Pág"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Av Pág"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Supr"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Inicio"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Fin"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1235,7 +1228,7 @@
<string name="mobile_data_settings_title" msgid="3955246641380064901">"Datos móviles"</string>
<string name="preference_summary_default_combination" msgid="8453246369903749670">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
<string name="mobile_data_connection_active" msgid="944490013299018227">"Conectado"</string>
- <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Conectado temporalmente"</string>
+ <string name="mobile_data_temp_connection_active" msgid="4590222725908806824">"Conectada temporalmente"</string>
<string name="mobile_data_poor_connection" msgid="819617772268371434">"Conexión inestable"</string>
<string name="mobile_data_off_summary" msgid="3663995422004150567">"Los datos móviles no se conectarán automáticamente"</string>
<string name="mobile_data_no_connection" msgid="1713872434869947377">"Sin conexión"</string>
@@ -1254,7 +1247,7 @@
<string name="qs_tile_request_dialog_text" msgid="3501359944139877694">"<xliff:g id="APPNAME">%1$s</xliff:g> quiere añadir el siguiente recuadro a ajustes rápidos"</string>
<string name="qs_tile_request_dialog_add" msgid="4888460910694986304">"Añadir recuadro"</string>
<string name="qs_tile_request_dialog_not_add" msgid="4168716573114067296">"No añadir recuadro"</string>
- <string name="qs_user_switch_dialog_title" msgid="3045189293587781366">"Selecciona un usuario"</string>
+ <string name="qs_user_switch_dialog_title" msgid="3045189293587781366">"Seleccionar usuario"</string>
<string name="fgs_manager_footer_label" msgid="8276763570622288231">"{count,plural, =1{# aplicación activa}many{# aplicaciones activas}other{# aplicaciones activas}}"</string>
<string name="fgs_dot_content_description" msgid="2865071539464777240">"Información nueva"</string>
<string name="fgs_manager_dialog_title" msgid="5879184257257718677">"Aplicaciones activas"</string>
@@ -1277,7 +1270,7 @@
<string name="clipboard_image_preview" msgid="2156475174343538128">"Vista previa de la imagen"</string>
<string name="clipboard_edit" msgid="4500155216174011640">"editar"</string>
<string name="add" msgid="81036585205287996">"Añadir"</string>
- <string name="manage_users" msgid="1823875311934643849">"Gest. usuarios"</string>
+ <string name="manage_users" msgid="1823875311934643849">"Gestionar usuarios"</string>
<string name="drag_split_not_supported" msgid="7173481676120546121">"Esta notificación no se puede arrastrar a la pantalla dividida"</string>
<string name="dream_overlay_status_bar_wifi_off" msgid="4497069245055003582">"Wi‑Fi no disponible"</string>
<string name="dream_overlay_status_bar_priority_mode" msgid="5428462123314728739">"Modo prioritario"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Pantalla dividida"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrada"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Accesos directos a aplicaciones"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aplicación en uso"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Accesibilidad"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Combinaciones de teclas"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Atajos de búsqueda"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Nivel %1$d de %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Controles de la casa"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Usa los controles de tu casa como salvapantallas"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Deshacer"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-es/tiles_states_strings.xml b/packages/SystemUI/res/values-es/tiles_states_strings.xml
index 02365e5061a8..fa0b40e77b88 100644
--- a/packages/SystemUI/res/values-es/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-es/tiles_states_strings.xml
@@ -43,7 +43,7 @@
</string-array>
<string-array name="tile_states_cell">
<item msgid="1235899788959500719">"No disponible"</item>
- <item msgid="2074416252859094119">"Desactivadas"</item>
+ <item msgid="2074416252859094119">"Desactivado"</item>
<item msgid="287997784730044767">"Activado"</item>
</string-array>
<string-array name="tile_states_battery">
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Desactivado"</item>
<item msgid="4875147066469902392">"Activado"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"No disponible"</item>
+ <item msgid="2004750556637773692">"Desactivado"</item>
+ <item msgid="8968530753931637871">"Activado"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"No disponible"</item>
<item msgid="5044688398303285224">"Desactivado"</item>
@@ -192,6 +194,6 @@
<string-array name="tile_states_hearing_devices">
<item msgid="1235334096484287173">"No disponibles"</item>
<item msgid="3079622119444911877">"Desactivados"</item>
- <item msgid="3028994095749238254">"Activados"</item>
+ <item msgid="3028994095749238254">"Activado"</item>
</string-array>
</resources>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index 111480fc9e2c..fa981faad87b 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Puudutage kuvamiseks"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Viga ekraanisalvestise salvestamisel"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Viga ekraanikuva salvestamise alustamisel"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Kas peatada salvestamine?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Salvestate praegu kogu oma ekraanikuva"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Salvestate praegu rakendust <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Peata salvestamine"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Ekraani jagamine"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Kas lõpetada ekraanikuva jagamine?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Jagate praegu kogu oma ekraanikuva rakendusega <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Jagate praegu kogu oma ekraanikuva rakendusega"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Jagate praegu rakenduse <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> kuva"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Jagate praegu rakenduse kuva"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Lõpeta jagamine"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Ekraanikuva ülekandmine"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Kas peatada ülekandmine?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Kannate praegu kogu oma ekraanikuva üle seadmesse <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Kannate praegu kogu oma ekraanikuva üle lähedalasuvasse seadmesse"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Kannate praegu rakendust <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> üle seadmesse <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Kannate praegu rakendust <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> üle lähedalasuvasse seadmesse"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Kannate praegu üle seadmesse <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Kannate praegu üle lähedalasuvasse seadmesse"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Peata ülekandmine"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Sule"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Probleemisalvesti"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Ekraanisäästja"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Mitte segada"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioriteetsed režiimid"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Ühtegi seotud seadet pole saadaval"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Puudutage seadme ühendamiseks või ühenduse katkestamiseks"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Ava menüü Seaded"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Muu seade"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Lehe Ülevaade sisse- ja väljalülitamine"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioriteetsed režiimid"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Valmis"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Seaded"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Helid ja värinad ei sega teid. Kuulete siiski enda määratud äratusi, meeldetuletusi, sündmusi ja helistajaid. Samuti kuulete kõike, mille esitamise ise valite, sh muusika, videod ja mängud."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Helid ja värinad ei sega teid. Kuulete siiski äratusi. Samuti kuulete kõike, mille esitamise ise valite, sh muusika, videod ja mängud."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Kohanda"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"vidina valimine"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"eemaldage vidin"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"asetage valitud vidin"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Lukustuskuva vidinad"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Igaüks saab vaadata luk.kuval olevaid vidinaid, isegi kui tahvelarvuti on lukus."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Lukustuskuva vidinad"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Rakenduse avamiseks vidina abil peate kinnitama, et see olete teie. Samuti pidage meeles, et kõik saavad vidinaid vaadata, isegi kui teie tahvelarvuti on lukus. Mõni vidin ei pruugi olla ette nähtud teie lukustuskuva jaoks ja seda pole turvaline siia lisada."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Alusta kohe"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Märguandeid pole"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Uusi märguandeid ei ole"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Kohanduvad märguanded on sees"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Seade vähendab nüüd helitugevust ja ekraanil kuvatavaid hüpikaknaid kuni kaheks minutiks, kui saate lühikese aja jooksul palju märguandeid."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Lülita välja"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Vanemate märguannete nägemiseks avage"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Seda seadet haldab sinu vanem"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Vaikeseade"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automaatne"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Ilma heli ja vibreerimiseta"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Heli ja vibreerimist pole, aga märguanne kuvatakse siiski vestlusjaotises"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Võib seadme seadete põhjal heliseda või vibreerida"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Võib seadme seadete põhjal heliseda või vibreerida. Rakenduse <xliff:g id="APP_NAME">%1$s</xliff:g> vestlused kuvatakse vaikimisi mullis."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Laske süsteemil määrata, kas selle märguande puhul peaks esitama heli või vibreerima"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Lehe võrra üles"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Lehe võrra alla"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Kustuta"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Paoklahv"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Avakuva"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Lõpp"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Sisesta"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Jagatud ekraanikuva"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Sisend"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Rakenduse otseteed"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Praegune rakendus"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Juurdepääsetavus"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Klaviatuuri otseteed"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Otsingu otseteed"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Tase %1$d/%2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Kodu juhtelemendid"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Juurdepääs kodu juhtelementidele ekraanisäästjalt"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Võta tagasi"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-et/tiles_states_strings.xml b/packages/SystemUI/res/values-et/tiles_states_strings.xml
index 3794f9ae109f..65bf1a9d1c19 100644
--- a/packages/SystemUI/res/values-et/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-et/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Väljas"</item>
<item msgid="4875147066469902392">"Sees"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Pole saadaval"</item>
+ <item msgid="2004750556637773692">"Väljas"</item>
+ <item msgid="8968530753931637871">"Sees"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Pole saadaval"</item>
<item msgid="5044688398303285224">"Väljas"</item>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index f082ea11de98..70949691bfaa 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Sakatu ikusteko"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Errore bat gertatu da pantaila-grabaketa gordetzean"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Errore bat gertatu da pantaila grabatzen hastean"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Grabaketa gelditu nahi duzu?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Pantaila osoa grabatzen ari zara"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"<xliff:g id="APP_NAME">%1$s</xliff:g> grabatzen ari zara"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Utzi grabatzeari"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Pantaila partekatzen"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Pantaila partekatzeari utzi nahi diozu?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Pantaila osoa <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> aplikazioarekin partekatzen ari zara"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Pantaila osoa aplikazio batekin partekatzen ari zara"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> partekatzen ari zara"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Aplikazio bat partekatzen ari zara"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Utzi partekatzeari"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Pantaila igortzen"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Igortzeari utzi nahi diozu?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Pantaila osoa <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura igortzen ari zara"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Pantaila osoa inguruko gailu batera igortzen ari zara"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> <xliff:g id="DEVICE_NAME">%2$s</xliff:g> gailura igortzen ari zara"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> inguruko gailu batera igortzen ari zara"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura igortzen ari zara"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Inguruko gailu batera igortzen ari zara"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Utzi igortzeari"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Itxi"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Arazo-grabagailua"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Pantaila-babeslea"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ez molestatzeko modua"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Lehentasunezko moduak"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetootha"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Ez dago parekatutako gailurik erabilgarri"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Sakatu hau gailu bat konektatu edo deskonektatzeko"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Ireki Ezarpenak"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Beste gailu bat"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Aldatu ikuspegi orokorra"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Lehentasunezko moduak"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Eginda"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Ezarpenak"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Gailuak ez du egingo ez soinurik ez dardararik, baina alarmak, gertaera eta abisuen tonuak, eta aukeratzen dituzun deitzaileen dei-tonuak joko ditu. Bestalde, zuk erreproduzitutako guztia entzungo duzu, besteak beste, musika, bideoak eta jokoak."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Gailuak ez du egingo ez soinurik ez dardararik, baina alarmak joko ditu. Hala ere, zuk erreproduzitutako guztia entzun ahal izango duzu, besteak beste, musika, bideoak eta jokoak."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Pertsonalizatu"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"hautatu widget bat"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"kendu widgeta"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"kokatu hautatutako widgeta"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Pantaila blokeatuko widgetak"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Edonork ikus ditzake pantaila blokeatuko widgetak, tableta blokeatuta badago ere."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Pantaila blokeatuko widgetak"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Aplikazio bat widget baten bidez irekitzeko, zeu zarela egiaztatu beharko duzu. Gainera, kontuan izan edonork ikusi ahalko dituela halako widgetak, tableta blokeatuta badago ere. Baliteke widget batzuk pantaila blokeaturako egokiak ez izatea, eta agian ez da segurua haiek bertan gehitzea."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Hasi"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Ez dago jakinarazpenik"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Ez dago jakinarazpen berririk"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Jakinarazpen egokituak aktibatuta"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Epe labur batean jakinarazpen ugari jasotzen badituzu, bolumena jaitsi, eta pantailako leiho gainerakorrak murriztuko ditu gailuak orain, gehienez 2 minutuz."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Desaktibatu"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Jakinarazpen zaharragoak ikusteko, desblokeatu"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Zure gurasoak kudeatzen du gailua"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Lehenetsia"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatikoa"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Ez du tonurik jotzen edo dar-dar egiten"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Ez du tonurik jotzen edo dar-dar egiten, baina elkarrizketen atalean agertzen da"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Baliteke tonua jotzea edo dardara egitea, gailuaren ezarpenen arabera"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Baliteke tonua jotzea edo dardara egitea, gailuaren ezarpenen arabera. Modu lehenetsian, <xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioko elkarrizketak burbuila gisa agertzen dira."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Ezarri sistemak zehaztu dezala jakinarazpen honek soinua edo dardara egin behar duen ala ez"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Orrian gora"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Orrian behera"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Ezabatu"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Ihes"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Hasiera"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Amaitu"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Txertatu"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Pantaila zatitzea"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Sarrera"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Aplikazioetarako lasterbideak"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Oraingo aplikazioa"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Erabilerraztasuna"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Lasterbideak"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Bilatu lasterbideak"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%1$d/%2$d maila"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Etxeko gailuen kontrola"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Kontrolatu etxeko gailuak pantaila-babesletik"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Desegin"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-eu/tiles_states_strings.xml b/packages/SystemUI/res/values-eu/tiles_states_strings.xml
index 45d5121c4256..75162bcc6257 100644
--- a/packages/SystemUI/res/values-eu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-eu/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Desaktibatuta"</item>
<item msgid="4875147066469902392">"Aktibatuta"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Ez dago erabilgarri"</item>
+ <item msgid="2004750556637773692">"Desaktibatuta"</item>
+ <item msgid="8968530753931637871">"Aktibatuta"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Ez dago erabilgarri"</item>
<item msgid="5044688398303285224">"Desaktibatuta"</item>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index ceb62e48f3f5..0c09567a087c 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"برای مشاهده تک‌ضرب بزنید"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"خطا در ذخیره‌سازی ضبط صفحه‌نمایش"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"خطا هنگام شروع ضبط صفحه‌نمایش"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"ضبط متوقف شود؟"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"اکنون درحال ضبط کل صفحه‌نمایشتان هستید"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"اکنون درحال ضبط <xliff:g id="APP_NAME">%1$s</xliff:g> هستید"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"توقف ضبط"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"درحال هم‌رسانی صفحه‌نمایش"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"صفحه هم‌رسانی متوقف شود؟"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"اکنون درحال هم‌رسانی کل صفحه‌نمایشتان با <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> هستید"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"اکنون درحال هم‌رسانی کل صفحه‌نمایشتان با یک برنامه هستید"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"اکنون درحال هم‌رسانی <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> هستید"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"اکنون درحال هم‌رسانی با یک برنامه هستید"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"توقف هم‌رسانی"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"درحال پخش محتوای صفحه‌نمایش"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"پخش محتوا متوقف شود؟"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"اکنون درحال پخش محتوای کل صفحه‌نمایشتان در <xliff:g id="DEVICE_NAME">%1$s</xliff:g> هستید"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"اکنون درحال پخش محتوای کل صفحه‌نمایشتان در یکی از دستگاه‌های اطراف هستید"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"اکنون درحال پخش محتوای <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> در <xliff:g id="DEVICE_NAME">%2$s</xliff:g> هستید"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"اکنون درحال پخش محتوای <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> در یکی از دستگاه‌های اطراف هستید"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"اکنون درحال پخش محتوا در <xliff:g id="DEVICE_NAME">%1$s</xliff:g> هستید"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"اکنون درحال پخش محتوا در یکی از دستگاه‌های اطراف هستید"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"توقف پخش محتوا"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"بستن"</string>
<string name="issuerecord_title" msgid="286627115110121849">"ضبط‌کننده مشکل"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"محافظ صفحه"</string>
<string name="ethernet_label" msgid="2203544727007463351">"اترنت"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"مزاحم نشوید"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"حالت‌های اولویت‌دار"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"بلوتوث"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"هیچ دستگاه مرتبط شده‌ای موجود نیست"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"برای اتصال یا قطع اتصال دستگاه، تک‌ضرب بزنید"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"باز کردن تنظیمات"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"دستگاه دیگر"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"تغییر وضعیت نمای کلی"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"حالت‌های اولویت‌دار"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"تمام"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"تنظیمات"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"به‌جز هشدارها، یادآوری‌ها، رویدادها و تماس‌گیرندگانی که خودتان مشخص می‌کنید، هیچ صدا و لرزشی نخواهید داشت. همچنان صدای مواردی را که پخش می‌کنید می‌شنوید (ازجمله صدای موسیقی، ویدیو و بازی)."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"به‌جز هشدارها، هیچ صدا و لرزشی نخواهید داشت. همچنان صدای مواردی را که پخش می‌کنید می‌شنوید (ازجمله صدای موسیقی، ویدیو و بازی)."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"سفارشی کردن"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"انتخاب ابزارک"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"برداشتن ابزارک"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"جای‌گذاری ابزارک انتخاب‌شده"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"ابزاره‌های صفحه قفل"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"همه می‌توانند ابزاره‌ها را در صفحه قفل شما ببینند، حتی اگر رایانه لوحی قفل باشد."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"ابزارک‌های صفحه قفل"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"برای باز کردن برنامه بااستفاده از ابزارک، باید هویت خودتان را به‌تأیید برسانید. همچنین، به‌خاطر داشته باشید که همه می‌توانند آن‌ها را مشاهده کنند، حتی وقتی رایانه لوحی‌تان قفل است. برخی‌از ابزارک‌ها ممکن است برای صفحه قفل درنظر گرفته نشده باشند و ممکن است اضافه کردن آن‌ها در اینجا ناامن باشد."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"اکنون شروع کنید"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"اعلانی موجود نیست"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"اعلان جدیدی وجود ندارد"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"اعلان‌های تطبیقی روشن است"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"ازاین‌پس هروقت اعلان‌های زیادی در یک بازه زمانی کوتاه دریافت کنید، دستگاهتان تا دو دقیقه صدا را کم می‌کند و تعداد پنجره‌های بالاپر را در صفحه‌نمایش کاهش می‌دهد."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"خاموش کردن"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"برای دیدن اعلان‌های قبلی قفل را باز کنید"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"این دستگاه را ولی‌تان مدیریت می‌کند"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"پیش‌فرض"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"خودکار"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"بدون صدا یا لرزش"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"«بدون صدا یا لرزش» همچنان در بخش مکالمه نشان داده می‌شود"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"بسته به تنظیمات دستگاه ممکن است زنگ بزند یا بلرزد"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"بسته به تنظیمات دستگاه ممکن است زنگ بزند یا بلرزد. مکالمه‌های <xliff:g id="APP_NAME">%1$s</xliff:g> به‌طور پیش‌فرض در حبابک نشان داده می‌شوند."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"سیستم را تنظیم کنید که تشخیص دهد اعلان صدا و لرزش داشته باشد یا نه"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"صفحه بعد"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"صفحه قبل"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"حذف"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"کلید گریز"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"ابتدا"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1394,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"‏سطح %1$d از %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"کنترل خانه هوشمند"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"به کنترل خانه هوشمند به‌عنوان محافظ صفحه‌نمایش دسترسی سریع دارید"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"واگرداندن"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-fa/tiles_states_strings.xml b/packages/SystemUI/res/values-fa/tiles_states_strings.xml
index d6e0e8257196..b2444e8cd8ab 100644
--- a/packages/SystemUI/res/values-fa/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fa/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"خاموش"</item>
<item msgid="4875147066469902392">"روشن"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"دردسترس نیست"</item>
+ <item msgid="2004750556637773692">"خاموش"</item>
+ <item msgid="8968530753931637871">"روشن"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"دردسترس نیست"</item>
<item msgid="5044688398303285224">"خاموش"</item>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 5ba52d570787..10a2dffdc4dd 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Katso napauttamalla"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Virhe näyttötallenteen tallentamisessa"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Virhe näytön tallennuksen aloituksessa"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Lopetetaanko tallennus?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Tallennat tällä hetkellä koko näyttöä"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Laite, jonka sisältöä tallennat: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Lopeta tallennus"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Näyttöä jaetaan"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Lopetetaanko näytön jakaminen?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Jaat tällä hetkellä koko näyttöä: <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Jaat tällä hetkellä koko näyttöä sovellukselle"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Jaat tällä hetkellä tätä: <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Jaat tällä hetkellä sovellusta"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Lopeta jakaminen"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Näyttöä striimataan"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Lopetetaanko striimaus?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Striimaat tällä hetkellä koko näyttöä: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Striimaat tällä hetkellä koko näyttöä lähellä olevalle laitteelle"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Striimaat (<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>) tällä hetkellä: <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Striimaat (<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>) tällä hetkellä lähellä olevalle laitteelle"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Striimaat tällä hetkellä: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Striimaat tällä hetkellä lähellä olevalle laitteelle"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Lopeta striimaus"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Sulje"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Ongelman tallentaja"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Näytönsäästäjä"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Älä häiritse"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioriteettitilat"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Laitepareja ei ole käytettävissä"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Muodosta yhteys laitteeseen tai katkaise yhteys napauttamalla"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Avaa Asetukset"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Muu laite"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Näytä/piilota viimeisimmät"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioriteettitilat"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Valmis"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Asetukset"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Äänet ja värinät eivät häiritse sinua, paitsi jos ne ovat hälytyksiä, muistutuksia, tapahtumia tai määrittämiäsi soittajia. Kuulet edelleen kaiken valitsemasi sisällön, kuten musiikin, videot ja pelit."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Äänet ja värinät eivät häiritse sinua, paitsi jos ne ovat hälytyksiä. Kuulet edelleen kaiken valitsemasi sisällön, kuten musiikin, videot ja pelit."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Muokkaa"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"valitse widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"poista widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"aseta valittu widget"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Lukitusnäytön widgetit"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Kaikki voivat nähdä widgetit lukitusnäytöllä, vaikka tabletti olisi lukittuna."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Lukitusnäytön widgetit"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Jos haluat avata sovelluksen käyttämällä widgetiä, sinun täytyy vahvistaa henkilöllisyytesi. Muista myös, että widgetit näkyvät kaikille, vaikka tabletti olisi lukittuna. Jotkin widgetit on ehkä tarkoitettu lukitusnäytölle, ja niiden lisääminen tänne ei välttämättä ole turvallista."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Aloita nyt"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Ei ilmoituksia"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Ei uusia ilmoituksia"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Mukautuvat ilmoitukset päällä"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Laite vähentää nyt äänenvoimakkuutta ja ponnahdusikkunoiden määrää enintään kahdeksi minuutiksi, kun saat monta ilmoitusta lyhyellä aikavälillä."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Laita pois päältä"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Avaa lukitus niin näet ilmoituksia"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Vanhempasi ylläpitää tätä laitetta"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Oletus"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automaattinen"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Ei ääntä tai värinää"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Ei ääntä tai värinää, mutta näkyy yhä keskusteluosiossa"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Voi soida tai väristä laitteen asetuksista riippuen"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Voi soida tai väristä laitteen asetuksista riippuen. Keskusteluista (<xliff:g id="APP_NAME">%1$s</xliff:g>) luodaan oletuksena kuplia."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Järjestelmä valitsee, kuuluuko tästä ilmoituksesta ääntä tai väriseekö se"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Jaettu näyttö"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Syöte"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Sovellusten pikakuvakkeet"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Nykyinen sovellus"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Saavutettavuus"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Pikanäppäimet"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Pikahaut"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Taso %1$d/%2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Kodin ohjaus"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Avaa kodin ohjaus nopeasti näytönsäästäjän kautta"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Kumoa"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-fi/tiles_states_strings.xml b/packages/SystemUI/res/values-fi/tiles_states_strings.xml
index 62900622551a..a7a6bdc109c2 100644
--- a/packages/SystemUI/res/values-fi/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fi/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Poissa päältä"</item>
<item msgid="4875147066469902392">"Päällä"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Ei saatavilla"</item>
+ <item msgid="2004750556637773692">"Pois päältä"</item>
+ <item msgid="8968530753931637871">"Päällä"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Ei saatavilla"</item>
<item msgid="5044688398303285224">"Poissa päältä"</item>
diff --git a/packages/SystemUI/res/values-fr-rCA-feminine/strings.xml b/packages/SystemUI/res/values-fr-rCA-feminine/strings.xml
new file mode 100644
index 000000000000..c179235ffcfd
--- /dev/null
+++ b/packages/SystemUI/res/values-fr-rCA-feminine/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="accessibility_quick_settings_user" msgid="505821942882668619">"Connectée en tant que <xliff:g id="ID_1">%s</xliff:g>"</string>
+ <string name="qs_user_switch_dialog_title" msgid="3045189293587781366">"Choisir l\'utilisatrice"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-fr-rCA-masculine/strings.xml b/packages/SystemUI/res/values-fr-rCA-masculine/strings.xml
new file mode 100644
index 000000000000..a658bee92f82
--- /dev/null
+++ b/packages/SystemUI/res/values-fr-rCA-masculine/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="accessibility_quick_settings_user" msgid="505821942882668619">"Connecté en tant que <xliff:g id="ID_1">%s</xliff:g>"</string>
+ <string name="qs_user_switch_dialog_title" msgid="3045189293587781366">"Choisir l\'utilisateur"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-fr-rCA-neuter/strings.xml b/packages/SystemUI/res/values-fr-rCA-neuter/strings.xml
new file mode 100644
index 000000000000..325f484b55d7
--- /dev/null
+++ b/packages/SystemUI/res/values-fr-rCA-neuter/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="accessibility_quick_settings_user" msgid="505821942882668619">"Personne connectée en tant que <xliff:g id="ID_1">%s</xliff:g>"</string>
+ <string name="qs_user_switch_dialog_title" msgid="3045189293587781366">"Choisir l\'utilisateur·trice"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index a72cdc7e39a5..b8c30eec07a0 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Touchez pour afficher"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Erreur d\'enregistrement de l\'écran"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Une erreur s\'est produite lors du démarrage de l\'enregistrement d\'écran"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Arrêter l\'enregistrement?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Vous êtes en train d\'enregistrer l\'intégralité de votre écran"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Vous êtes en train d\'enregistrer <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Arrêter l\'enregistrement"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Partage d\'écran en cours…"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Arrêter le partage d\'écran?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Vous partagez actuellement l\'intégralité de votre écran avec <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Vous partagez actuellement l\'intégralité de votre écran avec une appli"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Vous partagez actuellement <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Vous partagez actuellement une appli"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Arrêter le partage"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Diffusion de l\'écran en cours…"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Arrêter de diffuser?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Vous diffusez actuellement l\'intégralité de votre écran sur <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Vous diffusez actuellement l\'intégralité de votre écran sur un appareil à proximité"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Vous diffusez actuellement <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> sur <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Vous diffusez actuellement <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> sur un appareil à proximité"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Vous diffusez actuellement du contenu sur <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Vous diffusez actuellement du contenu sur un appareil à proximité"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Arrêter la diffusion"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Fermer"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Enregistreur de problèmes"</string>
@@ -223,7 +210,7 @@
<string name="biometric_dialog_last_pattern_attempt_before_wipe_user" msgid="8400180746043407270">"Si vous entrez un schéma incorrect à la prochaine tentative, cet utilisateur sera supprimé."</string>
<string name="biometric_dialog_last_pin_attempt_before_wipe_user" msgid="4159878829962411168">"Si vous entrez un NIP incorrect à la prochaine tentative, cet utilisateur sera supprimé."</string>
<string name="biometric_dialog_last_password_attempt_before_wipe_user" msgid="4695682515465063885">"Si vous entrez un mot de passe incorrect à la prochaine tentative, cet utilisateur sera supprimé."</string>
- <string name="biometric_dialog_last_pattern_attempt_before_wipe_profile" msgid="6045224069529284686">"Si vous entrez un schéma incorrect à la prochaine tentative suivante, votre profil professionnel et ses données seront supprimés."</string>
+ <string name="biometric_dialog_last_pattern_attempt_before_wipe_profile" msgid="6045224069529284686">"Si vous entrez un schéma incorrect à la prochaine tentative, votre profil professionnel et ses données seront supprimés."</string>
<string name="biometric_dialog_last_pin_attempt_before_wipe_profile" msgid="545567685899091757">"Si vous entrez un NIP incorrect à la prochaine tentative, votre profil professionnel et ses données seront supprimés."</string>
<string name="biometric_dialog_last_password_attempt_before_wipe_profile" msgid="8538032972389729253">"Si vous entrez un mot de passe incorrect à la prochaine tentative suivante, votre profil professionnel et ses données seront supprimés."</string>
<string name="biometric_re_enroll_dialog_confirm" msgid="3049858021857801836">"Configuration"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Écran de veille"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ne pas déranger"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Modes prioritaires"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Aucun des appareils associés n\'est disponible"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Touchez pour connecter ou déconnecter un appareil"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Ouvrir les paramètres"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Autre appareil"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Basculer l\'aperçu"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modes prioritaires"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"OK"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Paramètres"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Vous ne serez pas dérangé par les sons et les vibrations, sauf pour les alarmes, les rappels, les événements et les appelants que vous sélectionnez. Vous entendrez tout ce que vous choisissez d\'écouter, y compris la musique, les vidéos et les jeux."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Vous ne serez pas dérangé par les sons et les vibrations, sauf pour les alarmes. Vous entendrez tout ce que vous choisissez d\'écouter, y compris la musique, les vidéos et les jeux."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personnaliser"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"sélectionner le widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"retirer le widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"placer le widget sélectionné"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets de l\'écran de verrouillage"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"N\'importe qui peut voir les widgets sur votre écran de verrouillage, même si votre tablette est verrouillée."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets de l\'écran de verrouillage"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Pour ouvrir une appli à l\'aide d\'un widget, vous devrez confirmer votre identité. En outre, gardez à l\'esprit que tout le monde peut les voir, même lorsque votre tablette est verrouillée. Certains widgets n\'ont peut-être pas été conçus pour votre écran de verrouillage et il pourrait être dangereux de les ajouter ici."</string>
@@ -522,7 +515,7 @@
<string name="guest_notification_session_active" msgid="5567273684713471450">"Vous êtes en mode Invité"</string>
<string name="user_add_user_message_guest_remove" msgid="5589286604543355007">\n\n"Si vous ajoutez un nouvel utilisateur, vous quitterez le mode Invité, et toutes les applis et données de la session d\'invité en cours seront supprimées."</string>
<string name="user_limit_reached_title" msgid="2429229448830346057">"Limite d\'utilisateurs atteinte"</string>
- <string name="user_limit_reached_message" msgid="1070703858915935796">"{count,plural, =1{Vous ne pouvez créer qu\'un seul utilisateur.}one{Vous pouvez ajouter jusqu\'à # utilisateur.}many{Vous pouvez ajouter jusqu\'à # d\'utilisateurs.}other{Vous pouvez ajouter jusqu\'à # utilisateurs.}}"</string>
+ <string name="user_limit_reached_message" msgid="1070703858915935796">"{count,plural, =1{Un seul utilisateur peut être créé}one{Vous pouvez ajouter jusqu\'à # utilisateur.}many{Vous pouvez ajouter jusqu\'à # d\'utilisateurs.}other{Vous pouvez ajouter jusqu\'à # utilisateurs.}}"</string>
<string name="user_remove_user_title" msgid="9124124694835811874">"Supprimer l\'utilisateur?"</string>
<string name="user_remove_user_message" msgid="6702834122128031833">"Toutes les applis et les données de cet utilisateur seront supprimées."</string>
<string name="user_remove_user_remove" msgid="8387386066949061256">"Supprimer"</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Commencer"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Aucune notification"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Aucune nouvelle notification"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notifications adaptatives actives"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Votre appareil réduit le volume et les fenêtres contextuelles à l\'écran pendant 2 minutes max. quand vous recevez plusieurs notifications rapidement."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Désactiver"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Déverr. pour voir les anciennes notif."</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Cet appareil est géré par ton parent"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Par défaut"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatique"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Aucun son ni vibration"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Pas de son ni de vibration, mais s\'affiche tout de même dans la section « conversations »"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Peut sonner ou vibrer, selon les paramètres de l\'appareil"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Peut sonner ou vibrer, selon les paramètres de l\'appareil. Conversations des bulles de <xliff:g id="APP_NAME">%1$s</xliff:g> par défaut."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Faire en sorte que le système détermine si cette notification devrait émettre un son ou vibrer"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page précédente"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page suivante"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Supprimer"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Échap"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Accueil"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Fin"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insérer"</string>
@@ -924,7 +917,7 @@
<string name="accessibility_quick_settings_settings" msgid="7098489591715844713">"Ouvrir les paramètres."</string>
<string name="accessibility_quick_settings_expand" msgid="2609275052412521467">"Ouvrir les réglages rapides."</string>
<string name="accessibility_quick_settings_collapse" msgid="4674876336725041982">"Fermer les réglages rapides."</string>
- <string name="accessibility_quick_settings_user" msgid="505821942882668619">"Connecté comme <xliff:g id="ID_1">%s</xliff:g>"</string>
+ <string name="accessibility_quick_settings_user" msgid="505821942882668619">"Personne connectée en tant que <xliff:g id="ID_1">%s</xliff:g>"</string>
<string name="accessibility_quick_settings_choose_user_action" msgid="4554388498186576087">"choisir un utilisateur"</string>
<string name="data_connection_no_internet" msgid="691058178914184544">"Aucune connexion Internet"</string>
<string name="accessibility_quick_settings_open_settings" msgid="536838345505030893">"Ouvrir les paramètres <xliff:g id="ID_1">%s</xliff:g>."</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Écran divisé"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrée"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Raccourcis des applis"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Appli actuelle"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Accessibilité"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Raccourcis-clavier"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Recherchez des raccourcis"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Niveau %1$d de %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Domotique"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Accès rapide : domotique sous forme d\'Écran de veille"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Annuler"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
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 e0445fa8c9e9..75be453b526f 100644
--- a/packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/tiles_states_strings.xml
@@ -38,7 +38,7 @@
</string-array>
<string-array name="tile_states_wifi">
<item msgid="8054147400538405410">"Non disponible"</item>
- <item msgid="4293012229142257455">"Désactivé"</item>
+ <item msgid="4293012229142257455">"Désactivée"</item>
<item msgid="6221288736127914861">"Activé"</item>
</string-array>
<string-array name="tile_states_cell">
@@ -53,12 +53,14 @@
</string-array>
<string-array name="tile_states_dnd">
<item msgid="467587075903158357">"Non disponible"</item>
- <item msgid="5376619709702103243">"Désactivé"</item>
+ <item msgid="5376619709702103243">"Désactivée"</item>
<item msgid="4875147066469902392">"Activé"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Non accessible"</item>
+ <item msgid="2004750556637773692">"Désactivé"</item>
+ <item msgid="8968530753931637871">"Activé"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Non disponible"</item>
<item msgid="5044688398303285224">"Désactivée"</item>
@@ -71,12 +73,12 @@
</string-array>
<string-array name="tile_states_bt">
<item msgid="5330252067413512277">"Non disponible"</item>
- <item msgid="5315121904534729843">"Désactivé"</item>
+ <item msgid="5315121904534729843">"Désactivée"</item>
<item msgid="503679232285959074">"Activé"</item>
</string-array>
<string-array name="tile_states_airplane">
<item msgid="1985366811411407764">"Non disponible"</item>
- <item msgid="4801037224991420996">"Désactivé"</item>
+ <item msgid="4801037224991420996">"Désactivée"</item>
<item msgid="1982293347302546665">"Activé"</item>
</string-array>
<string-array name="tile_states_location">
@@ -86,7 +88,7 @@
</string-array>
<string-array name="tile_states_hotspot">
<item msgid="3145597331197351214">"Non disponible"</item>
- <item msgid="5715725170633593906">"Désactivé"</item>
+ <item msgid="5715725170633593906">"Désactivée"</item>
<item msgid="2075645297847971154">"Activé"</item>
</string-array>
<string-array name="tile_states_color_correction">
@@ -106,7 +108,7 @@
</string-array>
<string-array name="tile_states_dark">
<item msgid="2762596907080603047">"Non disponible"</item>
- <item msgid="400477985171353">"Désactivé"</item>
+ <item msgid="400477985171353">"Désactivée"</item>
<item msgid="630890598801118771">"Activé"</item>
</string-array>
<string-array name="tile_states_work">
@@ -146,7 +148,7 @@
</string-array>
<string-array name="tile_states_cameratoggle">
<item msgid="6680671247180519913">"Non disponible"</item>
- <item msgid="4765607635752003190">"Désactivé"</item>
+ <item msgid="4765607635752003190">"Désactivée"</item>
<item msgid="1697460731949649844">"Activé"</item>
</string-array>
<string-array name="tile_states_mictoggle">
@@ -156,7 +158,7 @@
</string-array>
<string-array name="tile_states_controls">
<item msgid="8199009425335668294">"Non disponibles"</item>
- <item msgid="4544919905196727508">"Désactivées"</item>
+ <item msgid="4544919905196727508">"Désactivée"</item>
<item msgid="3422023746567004609">"Activées"</item>
</string-array>
<string-array name="tile_states_wallet">
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 240f0131ad50..6fc47328d328 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Appuyez pour afficher"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Erreur lors de l\'enregistrement de l\'écran"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Erreur lors du démarrage de l\'enregistrement de l\'écran"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Arrêter l\'enregistrement ?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Vous enregistrez actuellement l\'intégralité de votre écran"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Vous enregistrez actuellement <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Arrêter l\'enregistrement"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Partage de l\'écran…"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Arrêter le partage d\'écran ?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Vous partagez actuellement l\'intégralité de votre écran avec <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Vous partagez actuellement l\'intégralité de votre écran avec une appli"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Vous partagez actuellement <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Vous partagez actuellement une appli"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Arrêter le partage"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Cast de l\'écran"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Arrêter de caster ?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Vous castez actuellement l\'intégralité de votre écran sur <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Vous castez actuellement l\'intégralité de votre écran sur un appareil à proximité"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Vous castez actuellement <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> sur <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Vous castez actuellement <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> sur un appareil à proximité"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Vous castez actuellement du contenu sur <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Vous castez actuellement du contenu sur un appareil à proximité"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Arrêter de caster du contenu"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Fermer"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Enregistreur de problèmes"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Économiseur d\'écran"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ne pas déranger"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Modes prioritaires"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Aucun appareil associé disponible."</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Appuyez pour connecter ou déconnecter un appareil"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Ouvrir les paramètres"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Autre appareil"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Activer/Désactiver l\'écran Récents"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modes prioritaires"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"OK"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Paramètres"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Vous ne serez pas dérangé par des sons ou des vibrations, hormis ceux des alarmes, des rappels, des événements et des appelants de votre choix. Vous entendrez encore les sons que vous choisirez de jouer, notamment la musique, les vidéos et les jeux."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Vous ne serez pas dérangé par des sons ou des vibrations, hormis ceux des alarmes. Vous entendrez encore les sons que vous choisirez de jouer, comme la musique, les vidéos et les jeux."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personnaliser"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"sélectionner un widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"supprimer le widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"positionner le widget sélectionné"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets sur l\'écran de verrouillage"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"N\'importe qui peut consulter les widgets sur votre écran de verrouillage, même si votre tablette est verrouillée."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets pour l\'écran de verrouillage"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Pour ouvrir une appli à l\'aide d\'un widget, vous devez confirmer qu\'il s\'agit bien de vous. N\'oubliez pas non plus que tout le monde peut voir vos widgets, même lorsque votre tablette est verrouillée. Certains d\'entre eux n\'ont pas été conçus pour l\'écran de verrouillage et les ajouter à cet endroit peut s\'avérer dangereux."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Commencer"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Aucune notification"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Aucune nouvelle notification"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Les notifications intelligentes sont activées"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Désormais, lorsque vous recevez de nombreuses notifications en peu de temps, votre appareil baisse le volume et réduit les pop-up qui apparaissent à l\'écran pendant deux minutes maximum."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Désactiver"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Déverrouiller pour voir anciennes notifications"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Cet appareil est géré par tes parents"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Par défaut"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatique"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Ni son, ni vibreur"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Pas de son ni de vibration, mais toujours visible dans la section de la conversation"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Peut sonner ou vibrer en fonction des paramètres de l\'appareil"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Peut sonner ou vibrer en fonction des paramètres de l\'appareil. Les conversations provenant de <xliff:g id="APP_NAME">%1$s</xliff:g> s\'affichent sous forme de bulles par défaut."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Laisser le système déterminer si cette notification doit être accompagnée d\'un son ou d\'une vibration"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page précédente"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page suivante"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Supprimer"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Échap"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Accueil"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Fin"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insérer"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Écran partagé"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Entrée"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Raccourcis d\'application"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Appli actuelle"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Accessibilité"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Raccourcis clavier"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Raccourcis de recherche"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Niveau %1$d sur %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Contrôle de la maison"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Domotique sous forme d\'économiseur d\'écran"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Annuler"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-fr/tiles_states_strings.xml b/packages/SystemUI/res/values-fr/tiles_states_strings.xml
index adc9cb3789cf..daa91524a148 100644
--- a/packages/SystemUI/res/values-fr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-fr/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Désactivé"</item>
<item msgid="4875147066469902392">"Activé"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Non disponible"</item>
+ <item msgid="2004750556637773692">"Désactivé"</item>
+ <item msgid="8968530753931637871">"Activé"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Indisponible"</item>
<item msgid="5044688398303285224">"Désactivé"</item>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index 5388b09a0a58..7b39df7e8062 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -129,17 +129,14 @@
<string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Queres deter a gravación?"</string>
<string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Estás gravando toda a pantalla"</string>
<string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Estás gravando <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for screenrecord_stop_dialog_button (2883812564938194350) -->
- <skip />
+ <string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Deter gravación"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Compartindo pantalla"</string>
- <!-- no translation found for share_to_app_stop_dialog_title (9212915050910250438) -->
- <skip />
+ <string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Queres deixar de compartir a pantalla?"</string>
<string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Estás compartindo toda a pantalla con <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
<string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Estás compartindo toda a pantalla cunha aplicación"</string>
<string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Estás compartindo <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
<string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Estás compartindo unha aplicación"</string>
- <!-- no translation found for share_to_app_stop_dialog_button (6334056916284230217) -->
- <skip />
+ <string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Deixar de compartir"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Emitindo pantalla"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Queres deter a emisión?"</string>
<string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Estás emitindo toda a pantalla en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -148,10 +145,8 @@
<string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Estás emitindo <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> nun dispositivo próximo"</string>
<string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Estás emitindo contido en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Estás emitindo contido nun dispositivo próximo"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_button (6420183747435521834) -->
- <skip />
- <!-- no translation found for close_dialog_button (4749497706540104133) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Deter emisión"</string>
+ <string name="close_dialog_button" msgid="4749497706540104133">"Pechar"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Gravadora de problemas"</string>
<string name="issuerecord_background_processing_label" msgid="1666840264959336876">"Procesando gravación problema"</string>
<string name="issuerecord_channel_description" msgid="6142326363431474632">"Notificación de actividade en curso para unha sesión de rexistro dun problema"</string>
@@ -162,8 +157,7 @@
<string name="issuerecord_save_error" msgid="6913040083446722726">"Produciuse un erro ao gardar a gravación do problema"</string>
<string name="issuerecord_start_error" msgid="3402782952722871190">"Produciuse un erro ao iniciar a gravación do problema"</string>
<string name="immersive_cling_title" msgid="8372056499315585941">"Vendo pantalla completa"</string>
- <!-- no translation found for immersive_cling_description (2717426731830851921) -->
- <skip />
+ <string name="immersive_cling_description" msgid="2717426731830851921">"Para saír, pasa o dedo cara abaixo desde a parte superior da pantalla"</string>
<string name="immersive_cling_positive" msgid="3076681691468978568">"Entendido"</string>
<string name="accessibility_back" msgid="6530104400086152611">"Volver"</string>
<string name="accessibility_home" msgid="5430449841237966217">"Inicio"</string>
@@ -296,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Protector pantalla"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Non molestar"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Modos de prioridade"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Non hai dispositivos vinculados dispoñibles"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Toca para conectar ou desconectar un dispositivo"</string>
@@ -309,8 +302,7 @@
<string name="quick_settings_bluetooth_device_saved" msgid="7549938728928069477">"Gardouse"</string>
<string name="accessibility_quick_settings_bluetooth_device_tap_to_disconnect" msgid="415980329093277342">"desconectar"</string>
<string name="accessibility_quick_settings_bluetooth_device_tap_to_activate" msgid="3724301751036877403">"activar"</string>
- <!-- no translation found for turn_on_bluetooth_auto_tomorrow (3345758139235739006) -->
- <skip />
+ <string name="turn_on_bluetooth_auto_tomorrow" msgid="3345758139235739006">"Activar mañá automaticamente"</string>
<string name="turn_on_bluetooth_auto_info_disabled" msgid="682984290339848844">"As funcións como Quick Share e Localizar o meu dispositivo utilizan o Bluetooth"</string>
<string name="turn_on_bluetooth_auto_info_enabled" msgid="7440944034584560279">"O Bluetooth activarase mañá á mañá"</string>
<string name="quick_settings_bluetooth_audio_sharing_button" msgid="7545274861795853838">"Compartir audio"</string>
@@ -434,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Abrir Configuración"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Outro dispositivo"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Activar/desactivar Visión xeral"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modos de prioridade"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Feito"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Configuración"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"Activado"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"Desactivado"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"Non te molestará ningún son nin vibración, agás os procedentes de alarmas, recordatorios, eventos e os emisores de chamada especificados. Seguirás escoitando todo aquilo que decidas reproducir, mesmo a música, os vídeos e os xogos."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Non te molestará ningún son nin vibración, agás os procedentes de alarmas. Seguirás escoitando todo aquilo que decidas reproducir, mesmo a música, os vídeos e os xogos."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personalizar"</string>
@@ -500,12 +497,10 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"colocar o widget seleccionado"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets da pantalla de bloqueo"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Calquera pode ver os widgets na pantalla de bloqueo, mesmo coa tableta bloqueada"</string>
- <!-- no translation found for communal_widgets_disclaimer_title (1150954395585308868) -->
- <skip />
- <!-- no translation found for communal_widgets_disclaimer_text (1423545475160506349) -->
- <skip />
- <!-- no translation found for communal_widgets_disclaimer_button (4423059765740780753) -->
- <skip />
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"anular a selección do widget"</string>
+ <string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets da pantalla de bloqueo"</string>
+ <string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir unha aplicación mediante un widget, tes que verificar a túa identidade. Ten en conta que pode velos calquera persoa, mesmo coa tableta bloqueada. Pode ser que algúns widgets non estean pensados para a túa pantalla de bloqueo, polo que talvez non sexa seguro engadilos aquí."</string>
+ <string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Entendido"</string>
<string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"Cambiar usuario"</string>
<string name="accessibility_multi_user_list_switcher" msgid="8574105376229857407">"menú despregable"</string>
<string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"Eliminaranse todas as aplicacións e datos desta sesión."</string>
@@ -559,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Iniciar agora"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Non hai notificacións"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Non hai notificacións novas"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notificacións intelix. activas"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"O dispositivo baixa o volume e reduce as ventás emerxentes na pantalla durante 2 min como máximo cando recibes moitas notificacións en pouco tempo."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Desactivar"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Desbloquea para ver máis notificacións"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"O teu pai ou nai xestiona este dispositivo"</string>
@@ -727,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Configuración predeterminada"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automática"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Sen son nin vibración"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Sen son nin vibración, pero aínda aparece na sección de conversas"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Poderían facer que o dispositivo soe ou vibre en función da súa configuración"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Poderían facer que o dispositivo soe ou vibre en función da súa configuración. As conversas de <xliff:g id="APP_NAME">%1$s</xliff:g> móstranse en burbullas de forma predeterminada."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Fai que o sistema determine se a notificación debe emitir un son ou unha vibración"</string>
@@ -1375,14 +1371,10 @@
<string name="shortcut_helper_content_description_collapse_icon" msgid="8028015738431664954">"Icona de contraer"</string>
<string name="shortcut_helper_content_description_expand_icon" msgid="1084435697860417390">"Icona de despregar"</string>
<string name="shortcut_helper_key_combinations_or_separator" msgid="7082902112102125540">"ou"</string>
- <!-- no translation found for touchpad_tutorial_back_gesture_button (2746834288077265946) -->
- <skip />
- <!-- no translation found for touchpad_tutorial_home_gesture_button (7640544867625955304) -->
- <skip />
- <!-- no translation found for touchpad_tutorial_action_key_button (3220074511852927267) -->
- <skip />
- <!-- no translation found for touchpad_tutorial_done_button (176168488821755503) -->
- <skip />
+ <string name="touchpad_tutorial_back_gesture_button" msgid="2746834288077265946">"Xesto para volver"</string>
+ <string name="touchpad_tutorial_home_gesture_button" msgid="7640544867625955304">"Xesto para ir ao inicio"</string>
+ <string name="touchpad_tutorial_action_key_button" msgid="3220074511852927267">"Tecla de acción"</string>
+ <string name="touchpad_tutorial_done_button" msgid="176168488821755503">"Feito"</string>
<string name="touchpad_tutorial_gesture_done" msgid="4784438360736821255">"Moi ben!"</string>
<string name="touchpad_back_gesture_action_title" msgid="7199067250654332735">"Volver"</string>
<string name="touchpad_back_gesture_guidance" msgid="4222430588599527272">"Para volver, pasa tres dedos cara á esquerda ou cara á dereita en calquera lugar do panel táctil."</string>
@@ -1392,6 +1384,17 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Nivel %1$d de %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Controis domóticos"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Usa os controis domóticos como protector de pantalla"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
- <skip />
+ <string name="volume_undo_action" msgid="5815519725211877114">"Desfacer"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"Para volver, pasa tres dedos cara á esquerda ou cara á dereita no panel táctil"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"Para ir ao inicio, pasa tres dedos cara arriba no panel táctil"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"Para ver as aplicacións recentes, pasa tres dedos cara arriba no panel táctil e mantenos premidos"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para ver todas as aplicacións, preme a tecla de acción do teclado"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"Usa o panel táctil para volver"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"Pasa tres dedos cara á esquerda ou cara á dereita. Toca para obter máis información sobre os xestos."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"Usa o panel táctil para volver ao inicio"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"Pasa tres dedos cara arriba. Toca para obter máis información sobre os xestos."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"Usa o panel táctil para ver as aplicacións recentes"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"Pasa tres dedos cara arriba e mantenos premidos. Toca para obter máis información sobre os xestos."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"Usa o teclado para ver todas as aplicacións"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"Preme a tecla de acción cando queiras. Toca para obter máis información sobre os xestos."</string>
</resources>
diff --git a/packages/SystemUI/res/values-gl/tiles_states_strings.xml b/packages/SystemUI/res/values-gl/tiles_states_strings.xml
index d2c8ea0906d3..8e3fb2634039 100644
--- a/packages/SystemUI/res/values-gl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-gl/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Non"</item>
<item msgid="4875147066469902392">"Si"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Non dispoñible"</item>
+ <item msgid="2004750556637773692">"Desactivado"</item>
+ <item msgid="8968530753931637871">"Activado"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Non dispoñible"</item>
<item msgid="5044688398303285224">"Non"</item>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index 66495f3642d1..78e86fadd500 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"જોવા માટે ટૅપ કરો"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"સ્ક્રીન રેકોર્ડિંગ સાચવવામાં ભૂલ આવી"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"સ્ક્રીનને રેકૉર્ડ કરવાનું શરૂ કરવામાં ભૂલ"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"રેકોર્ડિંગ રોકીએ?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"તમે હાલમાં તમારી પૂર્ણ સ્ક્રીન રેકોર્ડ કરી રહ્યાં છો"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"તમે હાલમાં <xliff:g id="APP_NAME">%1$s</xliff:g> રેકોર્ડ કરી રહ્યાં છો"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"રેકોર્ડિંગ રોકો"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"સ્ક્રીન શેર કરી રહ્યાં છીએ"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"સ્ક્રીન શેર કરવાનું રોકીએ?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"તમે હાલમાં <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> વડે તમારી પૂર્ણ સ્ક્રીન શેર કરી રહ્યાં છો"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"તમે હાલમાં ઍપ વડે તમારી પૂર્ણ સ્ક્રીન શેર કરી રહ્યાં છો"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"તમે હાલમાં <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> શેર કરી રહ્યાં છો"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"તમે હાલમાં ઍપ શેર કરી રહ્યાં છો"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"શેર કરવાનું રોકો"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"સ્ક્રીન કાસ્ટ કરી રહ્યાં છીએ"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"શું કાસ્ટ કરવાનું બંધ કરીએ?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"તમે હાલમાં તમારી પૂર્ણ સ્ક્રીન <xliff:g id="DEVICE_NAME">%1$s</xliff:g> પર કાસ્ટ કરી રહ્યાં છો"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"તમે હાલમાં તમારી પૂર્ણ સ્ક્રીન નજીકના ડિવાઇસ પર કાસ્ટ કરી રહ્યાં છો"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"તમે હાલમાં <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>ને <xliff:g id="DEVICE_NAME">%2$s</xliff:g> પર કાસ્ટ કરી રહ્યાં છો"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"તમે હાલમાં <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>ને નજીકના ડિવાઇસ પર કાસ્ટ કરી રહ્યાં છો"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"તમે હાલમાં <xliff:g id="DEVICE_NAME">%1$s</xliff:g> પર કાસ્ટ કરી રહ્યાં છો"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"તમે હાલમાં નજીકના ડિવાઇસ પર કાસ્ટ કરી રહ્યાં છો"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"કાસ્ટ કરવાનું રોકો"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"બંધ કરો"</string>
<string name="issuerecord_title" msgid="286627115110121849">"સમસ્યા રેકોર્ડર"</string>
@@ -439,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"સેટિંગ ખોલો"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"અન્ય ડિવાઇસ"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"ઝલકને ટૉગલ કરો"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"પ્રાધાન્યતાના મોડ"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"થઈ ગયું"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"સેટિંગ"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"અલાર્મ, રિમાઇન્ડર, ઇવેન્ટ અને તમે ઉલ્લેખ કરો તે કૉલર સિવાય તમને ધ્વનિ કે વાઇબ્રેશન દ્વારા ખલેલ પહોંચાડવામાં આવશે નહીં. સંગીત, વીડિઓ અને રમતો સહિત તમે જે કંઈપણ ચલાવવાનું પસંદ કરશો તે સંભળાતું રહેશે."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"અલાર્મ સિવાય તમને ધ્વનિ કે વાઇબ્રેશન દ્વારા ખલેલ પહોંચાડવામાં આવશે નહીં. સંગીત, વીડિઓ અને રમતો સહિત તમે જે કંઈપણ ચલાવવાનું પસંદ કરશો તે સંભળાતું રહેશે."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"કસ્ટમાઇઝ કરો"</string>
@@ -503,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"વિજેટ પસંદ કરો"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"વિજેટ કાઢી નાખો"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"પસંદ કરેલું વિજેટ મૂકો"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"લૉક સ્ક્રીન વિજેટ"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"તમારું ટૅબ્લેટ લૉક કરેલું હોય તો પણ કોઈપણ તમારી લૉક સ્ક્રીન પર વિજેટ જોઈ શકે છે."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"લૉક સ્ક્રીન વિજેટ"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"વિજેટનો ઉપયોગ કરીને ઍપ ખોલવા માટે, તમારે એ ચકાસણી કરવાની જરૂર રહેશે કે આ તમે જ છો. તે ઉપરાંત, ધ્યાનમાં રાખો કે તમારું ટૅબ્લેટ લૉક કરેલું હોય તો પણ કોઈપણ વ્યક્તિ તેમને જોઈ શકે છે. અમુક વિજેટ કદાચ તમારી લૉક સ્ક્રીન માટે બનાવવામાં આવ્યા ન હોઈ શકે છે અને તેમને અહીં ઉમેરવાનું અસલામત હોઈ શકે છે."</string>
@@ -563,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"હવે શરૂ કરો"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"કોઈ નોટિફિકેશન નથી"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"કોઈ નવું નોટિફિકેશન નથી"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"અડૅપ્ટિવ નોટિફિકેશન ચાલુ છે"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"તમને ટૂંકા સમયગાળામાં ઘણાં નોટિફિકેશન મળે, ત્યારે ડિવાઇસ બે મિનિટ સુધી વૉલ્યૂમ ઓછું કરે છે અને સ્ક્રીન પરના પૉપ-અપની સંખ્યા ઓછી કરે છે."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"બંધ કરો"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"જૂના નોટિફિકેશન જોવા માટે અનલૉક કરો"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"આ ડિવાઇસ તમારા માતાપિતા દ્વારા મેનેજ કરવામાં આવે છે"</string>
@@ -731,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ડિફૉલ્ટ"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ઑટોમૅટિક રીતે"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"કોઈપણ સાઉન્ડ અથવા વાઇબ્રેશન નથી"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"કોઈ સાઉન્ડ કે વાઇબ્રેશન ન હોવા છતાં વાતચીત વિભાગમાં જોવા મળે છે"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"ડિવાઇસના સેટિંગના આધારે રિંગ અથવા વાઇબ્રેટ થઈ શકે છે"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"ડિવાઇસના સેટિંગના આધારે રિંગ અથવા વાઇબ્રેટ થઈ શકે છે. ડિફૉલ્ટ તરીકે <xliff:g id="APP_NAME">%1$s</xliff:g> બબલની વાતચીત."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"આ નોટિફિકેશન સાઉન્ડ અથવા વાઇબ્રેટ કરી શકશે કે નહીં તે સિસ્ટમને નક્કી કરવા દો"</string>
@@ -789,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc કી"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1394,4 +1388,28 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"ઘરેલું સાધનોના નિયંત્રણો"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"સ્ક્રીનસેવર તરીકે તમારા ઘરેલું સાધનોના નિયંત્રણો ઝડપથી ઍક્સેસ કરો"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"છેલ્લો ફેરફાર રદ કરો"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index 1c956722609c..b3c861fb6ebe 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"देखने के लिए टैप करें"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"स्क्रीन रिकॉर्डिंग सेव करते समय गड़बड़ी हुई"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"स्क्रीन को रिकॉर्ड करने में गड़बड़ी आ रही है"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"क्या रिकॉर्डिंग बंद करनी है?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"फ़िलहाल, पूरी स्क्रीन रिकॉर्ड की जा रही है"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"फ़िलहाल, <xliff:g id="APP_NAME">%1$s</xliff:g> की रिकॉर्डिंग की जा रही है"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"रिकॉर्ड करना बंद करें"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"स्क्रीन शेयर की जा रही है"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"क्या स्क्रीन शेयरिंग बंद करनी है?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"फ़िलहाल, <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> पर पूरी स्क्रीन शेयर की जा रही है"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"फ़िलहाल, किसी ऐप्लिकेशन पर पूरी स्क्रीन शेयर की जा रही है"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"फ़िलहाल, <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> शेयर किया जा रहा है"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"फ़िलहाल, कोई ऐप्लिकेशन शेयर किया जा रहा है"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"शेयर करना बंद करें"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"स्क्रीन कास्ट की जा रही है"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"क्या कास्टिंग बंद करनी है?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"फ़िलहाल, <xliff:g id="DEVICE_NAME">%1$s</xliff:g> पर पूरी स्क्रीन कास्ट की जा रही है"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"फ़िलहाल, आस-पास मौजूद किसी डिवाइस पर पूरी स्क्रीन कास्ट की जा रही है"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"फ़िलहाल, <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> को <xliff:g id="DEVICE_NAME">%2$s</xliff:g> पर कास्ट किया जा रहा है"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"फ़िलहाल, <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> को आस-पास मौजूद किसी डिवाइस पर कास्ट किया जा रहा है"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"फ़िलहाल, <xliff:g id="DEVICE_NAME">%1$s</xliff:g> पर कास्ट किया जा रहा है"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"फ़िलहाल, आस-पास मौजूद किसी डिवाइस पर कास्ट किया जा रहा है"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"कास्ट करना बंद करें"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"बंद करें"</string>
<string name="issuerecord_title" msgid="286627115110121849">"समस्या का डेटा सेव करने वाला टूल"</string>
@@ -331,9 +318,9 @@
<string name="quick_settings_location_label" msgid="2621868789013389163">"जगह की जानकारी"</string>
<string name="quick_settings_screensaver_label" msgid="1495003469366524120">"स्क्रीन सेवर"</string>
<string name="quick_settings_camera_label" msgid="5612076679385269339">"कैमरे का ऐक्सेस"</string>
- <string name="quick_settings_mic_label" msgid="8392773746295266375">"माइक्रोफ़ोन का ऐक्सेस"</string>
+ <string name="quick_settings_mic_label" msgid="8392773746295266375">"माइक का ऐक्सेस"</string>
<string name="quick_settings_camera_mic_available" msgid="1453719768420394314">"उपलब्ध है"</string>
- <string name="quick_settings_camera_mic_blocked" msgid="4710884905006788281">"ब्लॉक किया गया है"</string>
+ <string name="quick_settings_camera_mic_blocked" msgid="4710884905006788281">"ब्लॉक है"</string>
<string name="quick_settings_media_device_label" msgid="8034019242363789941">"मीडिया डिवाइस"</string>
<string name="quick_settings_user_title" msgid="8673045967216204537">"उपयोगकर्ता"</string>
<string name="quick_settings_wifi_label" msgid="2879507532983487244">"वाई-फ़ाई"</string>
@@ -439,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"सेटिंग खोलें"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"अन्य डिवाइस"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"खास जानकारी टॉगल करें"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"अहम मोड"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"हो गया"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"सेटिंग"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"चालू है"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"बंद है"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"आपको अलार्म, रिमाइंडर, इवेंट और चुनिंदा कॉल करने वालों के अलावा किसी और तरह से (आवाज़ करके और थरथरा कर ) परेशान नहीं किया जाएगा. आप फिर भी संगीत, वीडियो और गेम सहित अपना चुना हुआ सब कुछ सुन सकते हैं."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"आपको अलार्म छोड़कर दूसरी आवाज़ों और कंपनों से परेशान नहीं किया जाएगा. आपको अब भी संगीत, वीडियो और गेम सहित वह सब कुछ सुनाई देगा जो आपने चलाने के लिए चुना है."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"अपनी पसंद के मुताबिक बनाएं"</string>
@@ -503,10 +495,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"विजेट चुनें"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"विजेट हटाएं"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"चुने गए विजेट के लिए जगह चुनें"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
- <skip />
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"लॉक स्क्रीन विजेट"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"टैबलेट लॉक होने के बावजूद, कोई भी व्यक्ति इसकी लॉक स्क्रीन पर विजेट देख सकता है."</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"विजेट से चुने हुए का निशान हटाएं"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"लॉक स्क्रीन विजेट"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"किसी विजेट से कोई ऐप्लिकेशन खोलने के लिए, आपको अपनी पहचान की पुष्टि करनी होगी. ध्यान रखें कि टैबलेट के लॉक होने पर भी कोई व्यक्ति विजेट देख सकता है. ऐसा हो सकता है कि कुछ विजेट लॉक स्क्रीन पर दिखाने के लिए न बने हों. इन्हें लॉक स्क्रीन पर जोड़ना असुरक्षित हो सकता है."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ठीक है"</string>
@@ -563,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"अभी शुरू करें"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"कोई सूचना नहीं है"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"कोई नई सूचना नहीं है"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"अडैप्टिव नोटिफ़िकेशन चालू हैं"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"अब आपका डिवाइस, तुरंत कई सूचनाएं मिलने पर दो मिनट तक, इनसे होने वाली आवाज़ें कम कर सकता है और स्क्रीन पर कम पॉप-अप दिखा सकता है."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"बंद करें"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"पुरानी सूचाएं देखने के लिए अनलॉक करें"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"इस डिवाइस का प्रबंधन आपके अभिभावक करते हैं"</string>
@@ -731,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"डिफ़ॉल्ट"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"अपने-आप"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"आवाज़ या वाइब्रेशन न हो"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"कोई आवाज़ या वाइब्रेशन नहीं, लेकिन फिर भी बातचीत वाले सेक्शन में दिखता है"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"डिवाइस की सेटिंग के आधार पर, सूचना आने पर घंटी बज सकती है या वाइब्रेशन हो सकता है"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"डिवाइस की सेटिंग के आधार पर, सूचना आने पर घंटी बज सकती है या वाइब्रेशन हो सकता है. <xliff:g id="APP_NAME">%1$s</xliff:g> पर होने वाली बातचीत, डिफ़ॉल्ट रूप से बबल के तौर पर दिखती है."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"सिस्टम को यह तय करने की अनुमति दें कि इस सूचना के मिलने पर आवाज़ हो या वाइब्रेशन हो"</string>
@@ -789,8 +781,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1394,4 +1385,16 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"होम कंट्रोल"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"स्क्रीनसेवर से तुरंत होम कंट्रोल ऐक्सेस करें"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"पहले जैसा करें"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"वापस जाने के लिए, अपने डिवाइस के टचपैड पर तीन उंगलियों से बाईं या दाईं ओर स्वाइप करें"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"होम पर जाने के लिए, अपने डिवाइस के टचपैड पर तीन उंगलियों से ऊपर की ओर स्वाइप करें"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"हाल ही में इस्तेमाल हुए ऐप देखने के लिए, टचपैड पर तीन उंगलियों से ऊपर की ओर स्वाइप करके दबाकर रखें"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"सभी ऐप्लिकेशन देखने के लिए, कीबोर्ड पर ऐक्शन बटन दबाएं"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"वापस जाने के लिए, अपने डिवाइस के टचपैड का इस्तेमाल करें"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"तीन उंगलियों से बाईं या दाईं ओर स्वाइप करें. जेस्चर के बारे में ज़्यादा जानने के लिए टैप करें."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"होम पर जाने के लिए, अपने डिवाइस के टचपैड का इस्तेमाल करें"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"तीन उंगलियों से ऊपर की ओर स्वाइप करें. जेस्चर के बारे में ज़्यादा जानने के लिए टैप करें."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"हाल ही में इस्तेमाल हुए ऐप्लिकेशन देखने के लिए, अपने डिवाइस के टचपैड का इस्तेमाल करें"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"तीन उंगलियों से ऊपर की ओर स्वाइप करें और दबाकर रखें. जेस्चर की ज़्यादा जानकारी पाने के लिए टैप करें."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"सभी ऐप्लिकेशन देखने के लिए, कीबोर्ड का इस्तेमाल करें"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"किसी भी समय ऐक्शन बटन दबाएं. हाथ के जेस्चर के बारे में ज़्यादा जानने के लिए टैप करें."</string>
</resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index fce4ac09ad8c..3bd6c64aa3cc 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Čuvar zaslona"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ne uznemiravaj"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioritetni načini"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Upareni uređaji nisu dostupni"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Dodirnite da biste povezali uređaj ili prekinuli vezu s njim"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Otvori postavke"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Ostali uređaji"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Uključivanje/isključivanje pregleda"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioritetni načini"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Gotovo"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Postavke"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Neće vas ometati zvukovi i vibracije, osim alarma, podsjetnika, događaja i pozivatelja koje navedete. I dalje ćete čuti sve što želite reproducirati, uključujući glazbu, videozapise i igre."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Neće vas ometati zvukovi i vibracije, osim alarma. I dalje ćete čuti sve što želite reproducirati, uključujući glazbu, videozapise i igre."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Prilagodi"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"postavi odabrani widget"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgeti zaključanog zaslona"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Svi vide widgete na vašem zaključanom zaslonu, čak i ako je tablet zaključan."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgeti na zaključanom zaslonu"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Da biste otvorili aplikaciju pomoću widgeta, trebate potvrditi da ste to vi. Također napominjemo da ih svatko može vidjeti, čak i ako je vaš tablet zaključan. Neki widgeti možda nisu namijenjeni za zaključani zaslon, pa ih možda nije sigurno dodati ovdje."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Shvaćam"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Pokreni"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Nema obavijesti"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Nema novih obavijesti"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Prilagodljive obavijesti uklj."</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Uređaj sada stišava zvuk i smanjuje broj skočnih prozora na zaslonu na 2 minute kada primite jako puno obavijesti u kratkom vremenskom razdoblju."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Isključi"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Otključajte za starije obavijesti"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Ovim uređajem upravlja tvoj roditelj"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Zadano"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatski"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Bez zvuka ili vibracije"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Nema zvuka ni vibracije, no i dalje se prikazuje u odjeljku razgovora"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Može zvoniti ili vibrirati ovisno o postavkama uređaja"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Možda će zvoniti ili vibrirati, ovisno o postavkama uređaja. Razgovori iz aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g> prikazuju se u oblačiću prema zadanim postavkama."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Neka sustav odredi treba li obavijest najaviti zvukom ili vibracijom"</string>
@@ -1358,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Podijeljeni zaslon"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Unos"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Prečaci aplikacija"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Trenutačna aplikacija"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Pristupačnost"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Tipkovni prečaci"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Prečaci za pretraživanje"</string>
@@ -1379,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Razina %1$d od %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Upravljanje uređajima"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Brzo upravljajte uređajima putem čuvara zaslona"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Poništi"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-hr/tiles_states_strings.xml b/packages/SystemUI/res/values-hr/tiles_states_strings.xml
index 6833c27c4208..be48b3bcb916 100644
--- a/packages/SystemUI/res/values-hr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hr/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Isključeno"</item>
<item msgid="4875147066469902392">"Uključeno"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Nedostupno"</item>
+ <item msgid="2004750556637773692">"Isključeno"</item>
+ <item msgid="8968530753931637871">"Uključeno"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Nedostupno"</item>
<item msgid="5044688398303285224">"Isključeno"</item>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index f59622c83c22..7a0325e3c658 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Koppintson a megtekintéshez"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Hiba történt a képernyőrögzítés mentése során"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Hiba a képernyőrögzítés indításakor"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Leállítja a felvételt?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Jelenleg a teljes képernyőről készít felvételt"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Jelenleg a következőről készít felvételt: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Felvétel leállítása"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Képernyő megosztása…"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Leállítja a képernyőmegosztást?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Jelenleg megosztja a teljes képernyőt a következővel: <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Jelenleg megosztja a teljes képernyőt egy alkalmazással"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Jelenleg megosztja a következőt: <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Jelenleg megoszt egy alkalmazást"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Megosztás leállítása"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Képernyőtartalom átküldése…"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Leállítja az átküldést?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Jelenleg a teljes képernyőjét átküldi a következő eszközre: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Jelenleg a teljes képernyőjét átküldi egy közeli eszközre"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Jelenleg átküldi a következőt a(z) <xliff:g id="DEVICE_NAME">%2$s</xliff:g> eszközre: <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Jelenleg átküldi a következőt egy közeli eszközre: <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Jelenleg tartalmat küld át a következő eszközre: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Jelenleg tartalmat küld át egy közeli eszközre"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Átküldés leállítása"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Bezárás"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Problémafelvevő"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Képernyővédő"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ne zavarjanak"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioritási módok"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Nem áll rendelkezésre párosított eszköz"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Koppintson egy eszköz csatlakoztatásához vagy leválasztásához"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Beállítások megnyitása"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Más eszköz"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Áttekintés be- és kikapcsolása"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioritási módok"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Kész"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Beállítások"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Az Ön által meghatározott ébresztéseken, emlékeztetőkön, eseményeken és hívókon kívül nem fogja Önt más hang vagy rezgés megzavarni. Továbbra is lesz hangjuk azoknak a tartalmaknak, amelyeket Ön elindít, például zenék, videók és játékok."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Az ébresztéseken kívül nem fogja Önt más hang és rezgés megzavarni. Továbbra is lesz hangjuk azoknak a tartalmaknak, amelyeket Ön elindít, például zenék, videók és játékok."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Személyre szabás"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"modul kiválasztása"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"modul törlése"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"kijelölt modul áthelyezése"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"A lezárási képernyő moduljai"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Bárki megtekintheti a modulokat a lezárási képernyőjén, még ha a táblagépe zárolva is van."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"A lezárási képernyő moduljai"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Ha modul használatával szeretne megnyitni egy alkalmazást, igazolnia kell a személyazonosságát. Ne felejtse továbbá, hogy bárki megtekintheti a modulokat, még akkor is, amikor zárolva van a táblagép. Előfordulhat, hogy bizonyos modulokat nem a lezárási képernyőn való használatra terveztek, ezért nem biztonságos a hozzáadásuk."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Indítás most"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Nincs értesítés"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Nincsenek új értesítések"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Alkalmazkodó értesítések bekapcsolva"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Eszköze most legalább két percre csökkenti a hangerőt és a képernyőn előugró ablakok számát, amikor rövid időn belül sok értesítést kap."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Igen"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"A régebbiek feloldás után láthatók"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Az eszközt a szülőd felügyeli"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Alapértelmezett"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatikus"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Nincs hang és rezgés"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Nincs hang és rezgés, de továbbra is megjelenik a beszélgetések szakaszában"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Az eszközbeállítások alapján csöröghet és rezeghet"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Az eszközbeállítások alapján csöröghet és rezeghet. A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> alkalmazásban lévő beszélgetések alapértelmezés szerint buborékban jelennek meg."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"A rendszer határozza meg, hogy ez az értesítés adjon-e ki hangot, illetve rezegjen-e"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Kezdőképernyő"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Osztott képernyő"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Bevitel"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Alkalmazás-parancsikonok"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Jelenlegi alkalmazás"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Kisegítő lehetőségek"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Billentyűparancsok"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Billentyűparancsok keresése"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Fényerő: %2$d/%1$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Otthon vezérlése"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Gyorsan vezérelheti otthonát képernyőkímélővel"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Visszavonás"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-hu/tiles_states_strings.xml b/packages/SystemUI/res/values-hu/tiles_states_strings.xml
index 6b54c5261fb4..ef23a29b195c 100644
--- a/packages/SystemUI/res/values-hu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hu/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Ki"</item>
<item msgid="4875147066469902392">"Be"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Nem áll rendelkezésre"</item>
+ <item msgid="2004750556637773692">"Ki"</item>
+ <item msgid="8968530753931637871">"Be"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Nem áll rendelkezésre"</item>
<item msgid="5044688398303285224">"Ki"</item>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index 2be9a3ce23c7..afe79208f395 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Էկրանապահ"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Չանհանգստացնել"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Կարևոր ռեժիմներ"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Զուգակցված սարքեր չկան"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Հպեք՝ սարք միացնելու կամ անջատելու համար"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Բացել կարգավորումները"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Այլ սարք"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Միացնել/անջատել համատեսքը"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Կարևոր ռեժիմներ"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Պատրաստ է"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Կարգավորումներ"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Ձայները և թրթռոցները չեն անհանգստացնի ձեզ, բացի ձեր կողմից նշված զարթուցիչները, հիշեցումները, միջոցառումների ծանուցումները և զանգերը։ Դուք կլսեք ձեր ընտրածի նվագարկումը, այդ թվում՝ երաժշտություն, տեսանյութեր և խաղեր:"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Ձայները և թրթռոցները, բացի զարթուցիչներից, չեն անհանգստացնի ձեզ: Դուք կլսեք ձեր ընտրածի նվագարկումը, այդ թվում՝ երաժշտություն, տեսանյութեր և խաղեր:"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Հարմարեցնել"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"տեղադրել ընտրված վիջեթը"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Կողպէկրանի վիջեթներ"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Բոլորը կարող են դիտել ձեր կողպէկրանի վիջեթները, նույնիսկ եթե պլանշետը կողպված է"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Կողպէկրանի վիջեթներ"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Վիջեթի միջոցով հավելված բացելու համար դուք պետք է հաստատեք ձեր ինքնությունը։ Նաև նկատի ունեցեք, որ ցանկացած ոք կարող է դիտել վիջեթները, նույնիսկ երբ ձեր պլանշետը կողպված է։ Որոշ վիջեթներ կարող են նախատեսված չլինել ձեր կողպէկրանի համար, և այստեղ դրանց ավելացնելը կարող է վտանգավոր լինել։"</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Եղավ"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Սկսել հիմա"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Ծանուցումներ չկան"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Նոր ծանուցումներ չկան"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Հարմարվող ծանուցումները միացված են"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Եթե կարճ ժամանակամիջոցում շատ ծանուցումներ ստանաք, ձայնը և ելնող պատուհանների թիվը կնվազեցվի մինչև երկու րոպեով։"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Անջատել"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Ապակողպեք՝ տեսնելու հին ծանուցումները"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Այս սարքը կառավարում է ձեր ծնողը"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Կանխադրված"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Ավտոմատ"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Առանց ձայնի կամ թրթռոցի"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Ձայն կամ թրթռոց չկա, սակայն դեռ հայտնվում է զրույցների բաժնում"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Կարող է զնգալ կամ թրթռալ՝ կախված սարքի կարգավորումներից"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Կարող է զնգալ կամ թրթռալ՝ կախված սարքի կարգավորումներից։ <xliff:g id="APP_NAME">%1$s</xliff:g>-ի զրույցներն ըստ կանխադրման հայտնվում են ամպիկների տեսքով։"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Թող համակարգն ավտոմատ որոշի՝ արդյոք այս ծանուցումը ձայնով, թե թրթռոցով է պետք մատուցել"</string>
@@ -1358,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Տրոհված էկրան"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Ներածում"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Հավելվածի դյուրանցումներ"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Այս հավելվածը"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Հատուկ գործառույթներ"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Ստեղնային դյուրանցումներ"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Դյուրանցումների որոնում"</string>
@@ -1379,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%1$d՝ %2$d-ից"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Տան կառավարման տարրեր"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Տան կառավարման տարրերը դարձրեք էկրանապահ"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Հետարկել"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-hy/tiles_states_strings.xml b/packages/SystemUI/res/values-hy/tiles_states_strings.xml
index 248840eddf5e..0f951f65ddb1 100644
--- a/packages/SystemUI/res/values-hy/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-hy/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Անջատված է"</item>
<item msgid="4875147066469902392">"Միացված է"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Հասանելի չէ"</item>
+ <item msgid="2004750556637773692">"Անջատված է"</item>
+ <item msgid="8968530753931637871">"Միացված է"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Հասանելի չէ"</item>
<item msgid="5044688398303285224">"Անջատված է"</item>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 8f5ecfaff37f..0e30a3cbbec1 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Ketuk untuk melihat"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Terjadi error saat menyimpan rekaman layar"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Terjadi error saat memulai perekaman layar"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Berhenti merekam?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Anda sedang merekam seluruh layar"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Anda sedang merekam <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Berhenti merekam"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Membagikan layar"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Hentikan berbagi layar?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Anda sedang berbagi seluruh layar dengan <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Anda sedang berbagi seluruh layar dengan aplikasi"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Anda sedang berbagi <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Anda sedang berbagi aplikasi"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Berhenti berbagi"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Mentransmisikan layar"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Hentikan transmisi?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Anda sedang mentransmisikan seluruh layar ke <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Anda sedang mentransmisikan seluruh layar ke perangkat di sekitar"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Anda sedang mentransmisikan <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ke <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Anda sedang mentransmisikan <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ke perangkat di sekitar"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Anda sedang mentransmisikan ke <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Anda sedang mentransmisikan ke perangkat di sekitar"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Hentikan transmisi"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Tutup"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Perekam Masalah"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Screensaver"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Jangan Ganggu"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Mode prioritas"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Perangkat yang disandingkan tak tersedia"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Ketuk untuk memulai atau menghentikan koneksi perangkat"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Buka Setelan"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Perangkat lainnya"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Aktifkan Ringkasan"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Mode prioritas"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Selesai"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Setelan"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Anda tidak akan terganggu oleh suara dan getaran, kecuali dari alarm, pengingat, acara, dan penelepon yang Anda tentukan. Anda akan tetap mendengar apa pun yang telah dipilih untuk diputar, termasuk musik, video, dan game."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Anda tidak akan terganggu oleh suara dan getaran, kecuali dari alarm. Anda akan tetap mendengar apa pun yang telah dipilih untuk diputar, termasuk musik, video, dan game."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Sesuaikan"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"pilih widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"hapus widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"letakkan widget yang dipilih"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widget layar kunci"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Siapa saja dapat melihat widget di layar kunci Anda, meskipun tablet terkunci."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widget layar kunci"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Untuk membuka aplikasi menggunakan widget, Anda perlu memverifikasi diri Anda. Selain itu, harap ingat bahwa siapa saja dapat melihatnya, bahkan saat tablet Anda terkunci. Beberapa widget mungkin tidak dirancang untuk layar kunci Anda dan mungkin tidak aman untuk ditambahkan di sini."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Mulai sekarang"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Tidak ada notifikasi"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Tidak ada notifikasi baru"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notifikasi adaptif aktif"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Perangkat Anda kini akan menurunkan volume dan mengurangi jendela pop-up di layar hingga dua menit saat Anda menerima banyak notifikasi dalam waktu singkat."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Nonaktifkan"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Buka kunci untuk melihat notifikasi lama"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Perangkat ini dikelola oleh orang tuamu"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Default"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Otomatis"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Tidak ada suara atau getaran"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Tanpa suara atau getaran tetapi tetap muncul di bagian percakapan"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Dapat berdering atau bergetar berdasarkan setelan perangkat"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Dapat berdering atau bergetar berdasarkan setelan perangkat. Percakapan <xliff:g id="APP_NAME">%1$s</xliff:g> ditampilkan sebagai balon secara default."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Biarkan sistem menentukan apakah notifikasi ini akan berbunyi atau bergetar"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Layar terpisah"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Pintasan aplikasi"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aplikasi Saat Ini"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Aksesibilitas"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Pintasan keyboard"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Pintasan penelusuran"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Tingkat %1$d dari %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Kontrol Rumah"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Akses cepat kontrol rumah Anda sebagai screensaver"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Urungkan"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-in/tiles_states_strings.xml b/packages/SystemUI/res/values-in/tiles_states_strings.xml
index de505ca7eb60..f05d99dc89b4 100644
--- a/packages/SystemUI/res/values-in/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-in/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Nonaktif"</item>
<item msgid="4875147066469902392">"Aktif"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Tidak tersedia"</item>
+ <item msgid="2004750556637773692">"Nonaktif"</item>
+ <item msgid="8968530753931637871">"Aktif"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Tidak tersedia"</item>
<item msgid="5044688398303285224">"Mati"</item>
diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml
index c47475be33c0..2fc70735cdfd 100644
--- a/packages/SystemUI/res/values-is/strings.xml
+++ b/packages/SystemUI/res/values-is/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Ýttu til að skoða"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Villa við að vista skjáupptöku"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Villa við að hefja upptöku skjás"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Stöðva upptöku?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Þú ert að taka upp á öllum skjánum"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Þú ert að taka upp <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Stöðva upptöku"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Deilir skjá"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Hætta að deila skjá?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Þú ert að deila öllum skjánum með <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Þú ert að deila öllum skjánum með forriti"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Þú ert að deila <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Þú ert að deila forriti"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Hætta að deila"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Varpar skjá"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Hætta að varpa?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Þú ert að varpa öllum skjánum yfir í <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Þú ert að varpa öllum skjánum yfir í nálægt tæki"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Þú ert að varpa <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> yfir í <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Þú ert að varpa <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> yfir í nálægt tæki"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Þú ert að varpa yfir í <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Þú ert að varpa yfir í nálægt tæki"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Hætta að varpa"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Loka"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Upptökutæki fyrir vandamál"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Skjávari"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ónáðið ekki"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Forgangsstillingar"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Engin pöruð tæki til staðar"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Ýttu til að tengja eða aftengja tæki"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Opna stillingar"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Annað tæki"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Kveikja/slökkva á yfirliti"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Forgangsstillingar"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Lokið"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Stillingar"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Þú verður ekki fyrir truflunum frá hljóðmerkjum og titringi, fyrir utan vekjara, áminningar, viðburði og símtöl frá þeim sem þú leyfir fyrirfram. Þú heyrir áfram í öllu sem þú velur að spila, svo sem tónlist, myndskeiðum og leikjum."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Þú verður ekki fyrir truflunum frá hljóðmerkjum og titringi, fyrir utan vekjara. Þú heyrir áfram í öllu sem þú velur að spila, svo sem tónlist, myndskeiðum og leikjum."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Sérsníða"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"velja græju"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"fjarlægja græju"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"koma valinni græju fyrir"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Græjur á lásskjá"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Hver sem er getur séð græjur á lásskjánum þínum, jafnvel þótt spjaldtölvan sé læst."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Græjur fyrir lásskjá"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Þú þarft að staðfesta að þetta sért þú til að geta opnað forrit með græju. Hafðu einnig í huga að hver sem er getur skoðað þær, jafnvel þótt spjaldtölvan sé læst. Sumar græjur eru hugsanlega ekki ætlaðar fyrir lásskjá og því gæti verið óöruggt að bæta þeim við hér."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Byrja núna"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Engar tilkynningar"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Engar nýjar tilkynningar"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Kveikt á breytil. tilkynningum"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Tækið þitt lækkar nú hljóðstyrkinn og fækkar sprettigluggum á skjánum í allt að tvær mínútur þegar þú færð margar tilkynningar á stuttum tíma."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Slökkva"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Taktu úr lás til að sjá eldri tilkynningar"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Foreldri þitt stjórnar þessu tæki"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Sjálfgefið"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Sjálfvirk"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Ekkert hljóð eða titringur"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Ekkert hljóð eða titringur en birtist samt sem áður í samtalshlutanum"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Gæti hringt eða titrað en það fer eftir stillingum tækisins"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Gæti hringt eða titrað en það fer eftir stillingum tækisins. Samtöl frá <xliff:g id="APP_NAME">%1$s</xliff:g> birtast sjálfkrafa í blöðru."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Láta kerfið ákvarða hvort hljóð eða titringur fylgir þessari tilkynningu"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc-lykill"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Skjáskipting"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Inntak"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Flýtileiðir forrita"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Núverandi forrit"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Aðgengi"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Flýtilyklar"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Leitarflýtileiðir"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Stig %1$d af %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Heimastýringar"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Fáðu skjótan aðgang að heimastýringum sem skjávara"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Afturkalla"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-is/tiles_states_strings.xml b/packages/SystemUI/res/values-is/tiles_states_strings.xml
index ee3b3116433c..d13075e78fa0 100644
--- a/packages/SystemUI/res/values-is/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-is/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Slökkt"</item>
<item msgid="4875147066469902392">"Kveikt"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Ekki tiltækt"</item>
+ <item msgid="2004750556637773692">"Slökkt"</item>
+ <item msgid="8968530753931637871">"Kveikt"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Ekki í boði"</item>
<item msgid="5044688398303285224">"Slökkt"</item>
diff --git a/packages/SystemUI/res/values-it-feminine/strings.xml b/packages/SystemUI/res/values-it-feminine/strings.xml
new file mode 100644
index 000000000000..99b936180673
--- /dev/null
+++ b/packages/SystemUI/res/values-it-feminine/strings.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="zen_priority_introduction" msgid="3159291973383796646">"Non verrai disturbata da suoni e vibrazioni, ad eccezione di sveglie, promemoria, eventi, chiamate da contatti da te specificati ed elementi che hai scelto di continuare a riprodurre, inclusi video, musica e giochi."</string>
+ <string name="zen_alarms_introduction" msgid="3987266042682300470">"Non verrai disturbata da suoni e vibrazioni, ad eccezione delle sveglie. Potrai comunque sentire qualunque cosa decidi di riprodurre, inclusi video, musica e giochi."</string>
+ <string name="empty_user_name" msgid="3389155775773578300">"Amiche"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-it-masculine/strings.xml b/packages/SystemUI/res/values-it-masculine/strings.xml
new file mode 100644
index 000000000000..5e78889ca971
--- /dev/null
+++ b/packages/SystemUI/res/values-it-masculine/strings.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="zen_priority_introduction" msgid="3159291973383796646">"Non verrai disturbato da suoni e vibrazioni, ad eccezione di sveglie, promemoria, eventi, chiamate da contatti da te specificati ed elementi che hai scelto di continuare a riprodurre, inclusi video, musica e giochi."</string>
+ <string name="zen_alarms_introduction" msgid="3987266042682300470">"Non verrai disturbato da suoni e vibrazioni, ad eccezione delle sveglie. Potrai comunque sentire qualunque cosa decidi di riprodurre, inclusi video, musica e giochi."</string>
+ <string name="empty_user_name" msgid="3389155775773578300">"Amici"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-it-neuter/strings.xml b/packages/SystemUI/res/values-it-neuter/strings.xml
new file mode 100644
index 000000000000..0e1c22792efe
--- /dev/null
+++ b/packages/SystemUI/res/values-it-neuter/strings.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="zen_priority_introduction" msgid="3159291973383796646">"Non verrai disturbatə da suoni e vibrazioni, ad eccezione di sveglie, promemoria, eventi, chiamate da contatti da te specificati ed elementi che hai scelto di continuare a riprodurre, inclusi video, musica e giochi."</string>
+ <string name="zen_alarms_introduction" msgid="3987266042682300470">"Non verrai disturbatə da suoni e vibrazioni, ad eccezione delle sveglie. Potrai comunque sentire qualunque cosa decidi di riprodurre, inclusi video, musica e giochi."</string>
+ <string name="empty_user_name" msgid="3389155775773578300">"Amicɜ"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 1cfc8d4dd7d6..d36d8ccfa14f 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Tocca per visualizzare"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Errore durante il salvataggio della registrazione dello schermo"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Errore durante l\'avvio della registrazione dello schermo"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Vuoi interrompere la registrazione?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Al momento stai registrando l\'intero schermo"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Al momento stai registrando <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Interrompi registrazione"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Condivisione dello schermo in corso"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Vuoi interrompere la condivisione dello schermo?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Al momento stai condividendo l\'intero schermo con <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Al momento stai condividendo l\'intero schermo con un\'app"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Al momento stai condividendo <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Al momento stai condividendo un\'app"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Interrompi condivisione"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Trasmissione dello schermo in corso…"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Vuoi interrompere la trasmissione?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Stai trasmettendo l\'intero schermo su <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Al momento stai trasmettendo l\'intero schermo su un dispositivo nelle vicinanze"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Al momento stai trasmettendo <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> su <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Al momento stai trasmettendo <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> su un dispositivo nelle vicinanze"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Al momento stai trasmettendo su <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Al momento stai trasmettendo su un dispositivo nelle vicinanze"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Interrompi trasmissione"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Chiudi"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Registratore dei problemi"</string>
@@ -232,13 +219,13 @@
<string name="fingerprint_re_enroll_notification_title" msgid="4539432429683916604">"Riconfigura lo Sblocco con l\'Impronta"</string>
<string name="fingerprint_re_enroll_notification_name" msgid="630798657797645704">"Sblocco con l\'Impronta"</string>
<string name="fingerprint_re_enroll_dialog_title" msgid="3526033128113925780">"Configura lo Sblocco con l\'Impronta"</string>
- <string name="fingerprint_re_enroll_dialog_content" msgid="4866561176695984879">"Per riconfigurare lo Sblocco con l\'Impronta, i modelli e le immagini dell\'impronta correnti verranno eliminati.\n\nDopo la cancellazione, dovrai riconfigurare la funzionalità per usare l\'impronta per sbloccare il telefono o verificare la tua identità."</string>
- <string name="fingerprint_re_enroll_dialog_content_singular" msgid="3083663339787381218">"Per riconfigurare lo Sblocco con l\'Impronta, il modello e le immagini dell\'impronta correnti verranno eliminati.\n\nDopo la cancellazione, dovrai riconfigurare la funzionalità per usare l\'impronta per sbloccare il telefono o verificare la tua identità."</string>
+ <string name="fingerprint_re_enroll_dialog_content" msgid="4866561176695984879">"Per riconfigurare lo Sblocco con l\'Impronta, i modelli e le immagini dell\'impronta correnti verranno eliminati.\n\nDopo la cancellazione, dovrai riconfigurare la funzionalità per usare l\'impronta per sbloccare lo smartphone o verificare la tua identità."</string>
+ <string name="fingerprint_re_enroll_dialog_content_singular" msgid="3083663339787381218">"Per riconfigurare lo Sblocco con l\'Impronta, il modello e le immagini dell\'impronta correnti verranno eliminati.\n\nDopo la cancellazione, dovrai riconfigurare la funzionalità per usare l\'impronta per sbloccare lo smartphone o verificare la tua identità."</string>
<string name="fingerprint_reenroll_failure_dialog_content" msgid="4733768492747300666">"Impossibile configurare lo Sblocco con l\'Impronta. Vai alle Impostazioni e riprova."</string>
<string name="face_re_enroll_notification_title" msgid="1850838867718410520">"Riconfigura lo Sblocco con il Volto"</string>
<string name="face_re_enroll_notification_name" msgid="7384545252206120659">"Sblocco con il Volto"</string>
<string name="face_re_enroll_dialog_title" msgid="6392173708176069994">"Configura lo Sblocco con il Volto"</string>
- <string name="face_re_enroll_dialog_content" msgid="7353502359464038511">"Per riconfigurare lo Sblocco con il Volto, l\'attuale modello del volto verrà eliminato.\n\nDovrai riconfigurare questa funzionalità per usare il volto per sbloccare il telefono."</string>
+ <string name="face_re_enroll_dialog_content" msgid="7353502359464038511">"Per riconfigurare lo Sblocco con il Volto, l\'attuale modello del volto verrà eliminato.\n\nDovrai riconfigurare questa funzionalità per usare il volto per sbloccare lo smartphone."</string>
<string name="face_reenroll_failure_dialog_content" msgid="7073947334397236935">"Impossibile configurare lo Sblocco con il Volto. Vai alle Impostazioni e riprova."</string>
<string name="fingerprint_dialog_touch_sensor" msgid="2817887108047658975">"Tocca il sensore di impronte"</string>
<string name="fingerprint_dialog_authenticated_confirmation" msgid="1603899612957562862">"Premi l\'icona Sblocca per continuare"</string>
@@ -262,8 +249,10 @@
<string name="accessibility_airplane_mode" msgid="1899529214045998505">"Modalità aereo."</string>
<string name="accessibility_vpn_on" msgid="8037549696057288731">"VPN attiva."</string>
<string name="accessibility_battery_level" msgid="5143715405241138822">"Batteria: <xliff:g id="NUMBER">%d</xliff:g> percento."</string>
- <string name="accessibility_battery_level_with_estimate" msgid="6548654589315074529">"Batteria a <xliff:g id="PERCENTAGE">%1$d</xliff:g> per cento, <xliff:g id="TIME">%2$s</xliff:g>"</string>
- <string name="accessibility_battery_level_charging" msgid="8892191177774027364">"Batteria in carica, <xliff:g id="BATTERY_PERCENTAGE">%d</xliff:g>%%."</string>
+ <string name="accessibility_battery_level_with_estimate" msgid="6548654589315074529">"Batteria rimanente: <xliff:g id="PERCENTAGE">%1$d</xliff:g> per cento, <xliff:g id="TIME">%2$s</xliff:g>"</string>
+ <!-- String.format failed for translation -->
+ <!-- no translation found for accessibility_battery_level_charging (8892191177774027364) -->
+ <skip />
<string name="accessibility_battery_level_charging_paused" msgid="3560711496775146763">"Batteria a <xliff:g id="PERCENTAGE">%d</xliff:g> per cento; ricarica in pausa per proteggere la batteria."</string>
<string name="accessibility_battery_level_charging_paused_with_estimate" msgid="2223541217743647858">"Batteria a <xliff:g id="PERCENTAGE">%1$d</xliff:g> per cento, <xliff:g id="TIME">%2$s</xliff:g>; ricarica in pausa per proteggere la batteria."</string>
<string name="accessibility_overflow_action" msgid="8555835828182509104">"Visualizza tutte le notifiche"</string>
@@ -296,15 +285,14 @@
<string name="accessibility_sensors_off_active" msgid="2619725434618911551">"Opzione Sensori disattivati attiva"</string>
<string name="accessibility_clear_all" msgid="970525598287244592">"Cancella tutte le notifiche."</string>
<string name="notification_group_overflow_indicator" msgid="7605120293801012648">"+ <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="notification_group_overflow_description" msgid="7176322877233433278">"{count,plural, =1{# altra notifica nel gruppo.}many{Altre # notifiche nel gruppo.}other{Altre # notifiche nel gruppo.}}"</string>
+ <string name="notification_group_overflow_description" msgid="7176322877233433278">"{count,plural, =1{# altra notifica nel gruppo.}many{Altre # di notifiche nel gruppo.}other{Altre # notifiche nel gruppo.}}"</string>
<string name="accessibility_rotation_lock_on_landscape" msgid="936972553861524360">"Lo schermo è bloccato in orientamento orizzontale."</string>
<string name="accessibility_rotation_lock_on_portrait" msgid="2356633398683813837">"Lo schermo è bloccato in orientamento verticale."</string>
<string name="dessert_case" msgid="9104973640704357717">"Vetrina di dolci"</string>
<string name="start_dreams" msgid="9131802557946276718">"Salvaschermo"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Non disturbare"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Modalità priorità"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Nessun dispositivo accoppiato disponibile"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Tocca per connettere o disconnettere un dispositivo"</string>
@@ -398,7 +386,7 @@
<string name="qs_record_issue_bug_report" msgid="8229031766918650079">"Segnalazione di bug"</string>
<string name="qs_record_issue_dropdown_header" msgid="5995983175678658329">"Quali problemi ha l\'esperienza del dispositivo?"</string>
<string name="qs_record_issue_dropdown_prompt" msgid="2526949919167046219">"Seleziona il tipo di problema"</string>
- <string name="qs_record_issue_dropdown_screenrecord" msgid="6396141928484257626">"Regis. dello schermo"</string>
+ <string name="qs_record_issue_dropdown_screenrecord" msgid="6396141928484257626">"Registrazione schermo"</string>
<string name="performance" msgid="6552785217174378320">"Prestazioni"</string>
<string name="user_interface" msgid="3712869377953950887">"Interfaccia utente"</string>
<string name="thermal" msgid="6758074791325414831">"Termico"</string>
@@ -440,8 +428,15 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Apri Impostazioni"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Altro dispositivo"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Attiva/disattiva la panoramica"</string>
- <string name="zen_priority_introduction" msgid="3159291973383796646">"Non verrai disturbato da suoni e vibrazioni, ad eccezione di sveglie, promemoria, eventi, chiamate da contatti da te specificati ed elementi che hai scelto di continuare a riprodurre, inclusi video, musica e giochi."</string>
- <string name="zen_alarms_introduction" msgid="3987266042682300470">"Non verrai disturbato da suoni e vibrazioni, ad eccezione delle sveglie e degli elementi che hai scelto di continuare a riprodurre, inclusi video, musica e giochi."</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modalità priorità"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Fine"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Impostazioni"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
+ <string name="zen_priority_introduction" msgid="3159291973383796646">"Suoni e vibrazioni non ti disturberanno, ad eccezione di sveglie, promemoria, eventi, chiamate da contatti da te specificati ed elementi che hai scelto di continuare a riprodurre, inclusi video, musica e giochi."</string>
+ <string name="zen_alarms_introduction" msgid="3987266042682300470">"Non riceverai distrazioni da suoni e vibrazioni, ad eccezione delle sveglie. Potrai comunque sentire qualunque cosa decidi di riprodurre, inclusi video, musica e giochi."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personalizza"</string>
<string name="zen_silence_introduction_voice" msgid="853573681302712348">"Verranno bloccati TUTTI i suoni e le vibrazioni, anche di sveglie, musica, video e giochi. Potrai ancora telefonare."</string>
<string name="zen_silence_introduction" msgid="6117517737057344014">"Verranno bloccati TUTTI i suoni e le vibrazioni, anche di sveglie, musica, video e giochi."</string>
@@ -486,7 +481,7 @@
<string name="popup_on_dismiss_cta_tile_text" msgid="8292501780996070019">"Premi a lungo per personalizzare i widget"</string>
<string name="button_to_configure_widgets_text" msgid="4191862850185256901">"Personalizza widget"</string>
<string name="unlock_reason_to_customize_widgets" msgid="5011909432460546033">"Sblocca per personalizzare i widget"</string>
- <string name="icon_description_for_disabled_widget" msgid="4693151565003206943">"Icona dell\'app per widget disattivati"</string>
+ <string name="icon_description_for_disabled_widget" msgid="4693151565003206943">"Icona dell\'app per widget disattivato"</string>
<string name="icon_description_for_pending_widget" msgid="8413816401868001755">"Icona dell\'app per un widget in fase di installazione"</string>
<string name="edit_widget" msgid="9030848101135393954">"Modifica widget"</string>
<string name="button_to_remove_widget" msgid="3948204829181214098">"Rimuovi"</string>
@@ -504,9 +499,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"seleziona widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"rimuovi widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"posiziona il widget selezionato"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widget della schermata di blocco"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Chiunque può visualizzare i widget sulla tua schermata di blocco, anche se il tablet è bloccato."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widget della schermata di blocco"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Per aprire un\'app utilizzando un widget, dovrai verificare la tua identità. Inoltre tieni presente che chiunque può vederlo, anche quando il tablet è bloccato. Alcuni widget potrebbero non essere stati progettati per la schermata di blocco e potrebbe non essere sicuro aggiungerli qui."</string>
@@ -522,7 +517,7 @@
<string name="guest_notification_session_active" msgid="5567273684713471450">"Sei in modalità Ospite"</string>
<string name="user_add_user_message_guest_remove" msgid="5589286604543355007">\n\n"Se aggiungi un nuovo utente, la modalità Ospite viene disattivata e vengono eliminati tutti i dati e le app della sessione Ospite corrente."</string>
<string name="user_limit_reached_title" msgid="2429229448830346057">"Limite di utenti raggiunto"</string>
- <string name="user_limit_reached_message" msgid="1070703858915935796">"{count,plural, =1{Può essere creato un solo utente.}many{Puoi aggiungere fino a # utenti.}other{Puoi aggiungere fino a # utenti.}}"</string>
+ <string name="user_limit_reached_message" msgid="1070703858915935796">"{count,plural, =1{Può essere creato un solo utente.}many{Puoi aggiungere fino a # di utenti.}other{Puoi aggiungere fino a # utenti.}}"</string>
<string name="user_remove_user_title" msgid="9124124694835811874">"Rimuovere l\'utente?"</string>
<string name="user_remove_user_message" msgid="6702834122128031833">"Tutte le app e i dati di questo utente verranno eliminati."</string>
<string name="user_remove_user_remove" msgid="8387386066949061256">"Rimuovi"</string>
@@ -564,8 +559,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Avvia adesso"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Nessuna notifica"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Nessuna nuova notifica"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notifiche adattive attivate"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Il dispositivo abbassa il volume e riduce i popup fino a 2 minuti quando ricevi molte notifiche."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Disattiva"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Sblocca per vedere le notifiche meno recenti"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Questo dispositivo è gestito dai tuoi genitori"</string>
@@ -601,9 +598,9 @@
<string name="monitoring_description_ca_certificate" msgid="448923057059097497">"Sul dispositivo è installata un\'autorità di certificazione. Il tuo traffico di rete protetto potrebbe essere monitorato o modificato."</string>
<string name="monitoring_description_management_network_logging" msgid="216983105036994771">"L\'amministratore ha attivato i log di rete, che consentono di monitorare il traffico sul dispositivo."</string>
<string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"L\'amministratore ha attivato i log di rete, che consentono di monitorare il traffico nel profilo di lavoro, ma non nel profilo personale."</string>
- <string name="monitoring_description_named_vpn" msgid="8220190039787149671">"Questo dispositivo è connesso a internet tramite <xliff:g id="VPN_APP">%1$s</xliff:g>. La tua attività di rete, inclusi email e dati di navigazione, è visibile al provider VPN."</string>
- <string name="monitoring_description_managed_device_named_vpn" msgid="7693648349547785255">"Questo dispositivo è connesso a internet tramite <xliff:g id="VPN_APP">%1$s</xliff:g>. La tua attività di rete, inclusi email e dati di navigazione, è visibile all\'amministratore IT."</string>
- <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Questo dispositivo si connette a Internet tramite <xliff:g id="VPN_APP_0">%1$s</xliff:g> e <xliff:g id="VPN_APP_1">%2$s</xliff:g>. La tua attività di rete, inclusi email e dati di navigazione, è visibile all\'amministratore IT."</string>
+ <string name="monitoring_description_named_vpn" msgid="8220190039787149671">"Questo dispositivo si connette a internet tramite <xliff:g id="VPN_APP">%1$s</xliff:g>. La tua attività di rete, inclusi email e dati di navigazione, è visibile al provider VPN."</string>
+ <string name="monitoring_description_managed_device_named_vpn" msgid="7693648349547785255">"Questo dispositivo si connette a internet tramite <xliff:g id="VPN_APP">%1$s</xliff:g>. La tua attività di rete, inclusi email e dati di navigazione, è visibile all\'amministratore IT."</string>
+ <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Questo dispositivo si connette a internet tramite <xliff:g id="VPN_APP_0">%1$s</xliff:g> e <xliff:g id="VPN_APP_1">%2$s</xliff:g>. La tua attività di rete, inclusi email e dati di navigazione, è visibile all\'amministratore IT."</string>
<string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Le tue app di lavoro si connettono a Internet tramite <xliff:g id="VPN_APP">%1$s</xliff:g>. La tua attività di rete nelle app di lavoro, inclusi email e dati di navigazione, è visibile all\'amministratore IT e al provider VPN."</string>
<string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"Le tue app personali si connettono a Internet tramite <xliff:g id="VPN_APP">%1$s</xliff:g>. La tua attività di rete, inclusi email e dati di navigazione, è visibile al provider VPN."</string>
<string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string>
@@ -732,8 +729,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Modalità predefinita"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatico"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Nessun suono o vibrazione"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Nessun suono o vibrazione, ma appare ancora nella sezione delle conversazioni"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Potrebbero essere attivati lo squillo o la vibrazione in base alle impostazioni del dispositivo"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Potrebbero essere attivati lo squillo o la vibrazione in base alle impostazioni del dispositivo. Conversazioni dalla bolla <xliff:g id="APP_NAME">%1$s</xliff:g> per impostaz. predefinita."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Fai stabilire al sistema se questa notifica deve emettere suoni o vibrazioni"</string>
@@ -771,8 +767,8 @@
<string name="snooze_undo" msgid="2738844148845992103">"Annulla"</string>
<string name="snooze_undo_content_description" msgid="2711656788917580801">"Annulla ripetizione notifica"</string>
<string name="snoozed_for_time" msgid="7586689374860469469">"Posticipato di <xliff:g id="TIME_AMOUNT">%1$s</xliff:g>"</string>
- <string name="snoozeHourOptions" msgid="2332819756222425558">"{count,plural, =1{# ora}=2{# ore}many{# ore}other{# ore}}"</string>
- <string name="snoozeMinuteOptions" msgid="2222082405822030979">"{count,plural, =1{# minuto}many{# minuti}other{# minuti}}"</string>
+ <string name="snoozeHourOptions" msgid="2332819756222425558">"{count,plural, =1{# ora}=2{# ore}many{# di ore}other{# ore}}"</string>
+ <string name="snoozeMinuteOptions" msgid="2222082405822030979">"{count,plural, =1{# minuto}many{# di minuti}other{# minuti}}"</string>
<string name="battery_detail_switch_title" msgid="6940976502957380405">"Risparmio energetico"</string>
<string name="keyboard_key_button_template" msgid="8005673627272051429">"Pulsante <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="keyboard_key_home" msgid="3734400625170020657">"Home page"</string>
@@ -790,8 +786,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Pagina su"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Pagina giù"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Elimina"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home page"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Fine"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"INS"</string>
@@ -1059,7 +1054,7 @@
<string name="accessibility_floating_button_hidden_notification_title" msgid="4115036997406994799">"Pulsante Accessibilità nascosto"</string>
<string name="accessibility_floating_button_hidden_notification_text" msgid="1457021647040915658">"Tocca per mostrare il pulsante Accessibilità"</string>
<string name="accessibility_floating_button_undo_message_label_text" msgid="9017658016426242640">"Scorciatoia <xliff:g id="FEATURE_NAME">%s</xliff:g> rimossa"</string>
- <string name="accessibility_floating_button_undo_message_number_text" msgid="4909270290725226075">"{count,plural, =1{# scorciatoia rimossa}many{# scorciatoie rimosse}other{# scorciatoie rimosse}}"</string>
+ <string name="accessibility_floating_button_undo_message_number_text" msgid="4909270290725226075">"{count,plural, =1{# scorciatoia rimossa}many{# di scorciatoie rimosse}other{# scorciatoie rimosse}}"</string>
<string name="accessibility_floating_button_action_move_top_left" msgid="6253520703618545705">"Sposta in alto a sinistra"</string>
<string name="accessibility_floating_button_action_move_top_right" msgid="6106225581993479711">"Sposta in alto a destra"</string>
<string name="accessibility_floating_button_action_move_bottom_left" msgid="8063394111137429725">"Sposta in basso a sinistra"</string>
@@ -1209,7 +1204,7 @@
<string name="video_status" msgid="4548544654316843225">"Visione in corso"</string>
<string name="audio_status" msgid="4237055636967709208">"Ascolto in corso"</string>
<string name="game_status" msgid="1340694320630973259">"Gioco in corso"</string>
- <string name="empty_user_name" msgid="3389155775773578300">"Amici"</string>
+ <string name="empty_user_name" msgid="3389155775773578300">"Persone amiche"</string>
<string name="empty_status" msgid="5938893404951307749">"Chattiamo stasera."</string>
<string name="status_before_loading" msgid="1500477307859631381">"I contenuti verranno mostrati a breve"</string>
<string name="missed_call" msgid="4228016077700161689">"Chiamata persa"</string>
@@ -1255,7 +1250,7 @@
<string name="qs_tile_request_dialog_add" msgid="4888460910694986304">"Aggiungi riquadro"</string>
<string name="qs_tile_request_dialog_not_add" msgid="4168716573114067296">"Non aggiungerlo"</string>
<string name="qs_user_switch_dialog_title" msgid="3045189293587781366">"Seleziona utente"</string>
- <string name="fgs_manager_footer_label" msgid="8276763570622288231">"{count,plural, =1{# app è attiva}many{# di app sono attive}other{# app sono attive}}"</string>
+ <string name="fgs_manager_footer_label" msgid="8276763570622288231">"{count,plural, =1{C\'è # app attiva}many{Ci sono # di app attive}other{Ci sono # app attive}}"</string>
<string name="fgs_dot_content_description" msgid="2865071539464777240">"Nuove informazioni"</string>
<string name="fgs_manager_dialog_title" msgid="5879184257257718677">"App attive"</string>
<string name="fgs_manager_dialog_message" msgid="2670045017200730076">"Queste app sono attive e in esecuzione, anche quando non le utilizzi. Questo migliora la loro funzionalità, ma influisce sulla durata della batteria."</string>
@@ -1285,7 +1280,7 @@
<string name="dream_overlay_status_bar_camera_off" msgid="5273073778969890823">"La fotocamera è disattivata"</string>
<string name="dream_overlay_status_bar_mic_off" msgid="8366534415013819396">"Il microfono è disattivato"</string>
<string name="dream_overlay_status_bar_camera_mic_off" msgid="3199425257833773569">"Fotocamera e microfono non attivi"</string>
- <string name="dream_overlay_status_bar_notification_indicator" msgid="8091389255691081711">"{count,plural, =1{# notifica}many{# notifiche}other{# notifiche}}"</string>
+ <string name="dream_overlay_status_bar_notification_indicator" msgid="8091389255691081711">"{count,plural, =1{# notifica}many{# di notifiche}other{# notifiche}}"</string>
<string name="dream_overlay_weather_complication_desc" msgid="824503662089783824">"<xliff:g id="WEATHER_CONDITION">%1$s</xliff:g>, <xliff:g id="TEMPERATURE">%2$s</xliff:g>"</string>
<string name="note_task_button_label" msgid="230135078402003532">"Aggiunta di note"</string>
<string name="note_task_shortcut_long_label" msgid="7729325091147319409">"Aggiunta di note, <xliff:g id="NOTE_TAKING_APP">%1$s</xliff:g>"</string>
@@ -1394,6 +1389,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Livello %1$d di %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Controlli della casa"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Accedi rapidamente ai controlli della casa dal salvaschermo"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Annulla"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-it/tiles_states_strings.xml b/packages/SystemUI/res/values-it/tiles_states_strings.xml
index e7c626f648af..95c33c4acbf4 100644
--- a/packages/SystemUI/res/values-it/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-it/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Off"</item>
<item msgid="4875147066469902392">"On"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Non disponibile"</item>
+ <item msgid="2004750556637773692">"Off"</item>
+ <item msgid="8968530753931637871">"On"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Non disponibile"</item>
<item msgid="5044688398303285224">"Off"</item>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 2ff5f83a4f94..553b23d7485b 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"יש להקיש כדי להציג"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"שגיאה בשמירה של הקלטת המסך"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"שגיאה בהפעלה של הקלטת המסך"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"לעצור את ההקלטה?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"מתבצעת כרגע הקלטה של כל המסך שלך"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"מתבצעת כרגע הקלטה של <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"הפסקת ההקלטה"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"שיתוף המסך מתבצע"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"להפסיק את שיתוף המסך?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"מתבצע כרגע שיתוף של כל המסך שלך עם <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"מתבצע כרגע שיתוף של כל המסך שלך עם אפליקציה"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"מתבצע כרגע שיתוף של <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"מתבצע כרגע שיתוף של אפליקציה"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"הפסקת השיתוף"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"‏הפעלת Cast של המסך מתבצעת"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"‏להפסיק את הפעלת ה-Cast?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"‏מתבצעת כרגע הפעלת Cast של כל המסך שלך למכשיר <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"‏מתבצעת כרגע הפעלת Cast של כל המסך שלך למכשיר בקרבת מקום"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"‏מתבצעת כרגע הפעלת Cast של <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> למכשיר <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"‏מתבצעת כרגע הפעלת Cast של <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> למכשיר בקרבת מקום"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"‏מתבצעת כרגע הפעלת Cast למכשיר <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"‏מתבצעת כרגע הפעלת Cast למכשיר בקרבת מקום"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"‏הפסקת ה-Cast"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"סגירה"</string>
<string name="issuerecord_title" msgid="286627115110121849">"בעיה במכשיר ההקלטה"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"שומר מסך"</string>
<string name="ethernet_label" msgid="2203544727007463351">"אתרנט"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"נא לא להפריע"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"מצבי עדיפות"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"אין מכשירים מותאמים זמינים"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"אפשר להקיש כדי להתחבר למכשיר או להתנתק ממנו"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"פתיחת ההגדרות"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"מכשיר אחר"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"החלפת מצב של מסכים אחרונים"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"מצבי עדיפות"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"סיום"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"הגדרות"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"כדי לא להפריע לך, המכשיר לא ירטוט ולא ישמיע שום צליל, חוץ מהתראות, תזכורות, אירועים ושיחות ממתקשרים מסוימים לבחירתך. המצב הזה לא ישפיע על צלילים שהם חלק מתוכן שבחרת להפעיל, כמו מוזיקה, סרטונים ומשחקים."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"כדי לא להפריע לך, המכשיר לא ירטוט ולא ישמיע שום צליל, חוץ מהתראות. המצב הזה לא ישפיע על צלילים שהם חלק מתוכן שבחרת להפעיל, כמו מוזיקה, סרטונים ומשחקים."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"התאמה אישית"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"צריך לבחור ווידג\'ט"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"הסרת הווידג\'ט"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"צריך למקם את הווידג\'ט שנבחר"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"ווידג\'טים במסך הנעילה"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"כולם יכולים לראות את הווידג\'טים במסך הנעילה שלך, גם אם הטאבלט נעול."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"ווידג\'טים במסך הנעילה"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"כדי לפתוח אפליקציה באמצעות ווידג\'ט, עליך לאמת את זהותך. בנוסף, כדאי לזכור שכל אחד יכול לראות את הווידג\'טים גם כשהטאבלט שלך נעול. יכול להיות שחלק מהווידג\'טים לא נועדו למסך הנעילה ושלא בטוח להוסיף אותם לכאן."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"כן, אפשר להתחיל"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"אין התראות"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"אין התראות חדשות"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"ההתראות המותאמות מופעלות"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"מעכשיו, כשיש התראות רבות בזמן קצר, עוצמת הקול מופחתת ומופיעים פחות חלונות קופצים במשך עד שתי דקות."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"השבתה"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"יש לבטל את הנעילה כדי לראות התראות ישנות"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"המכשיר הזה מנוהל על ידי ההורה שלך"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ברירת מחדל"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"באופן אוטומטי"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"ללא צליל או רטט"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ללא צליל או רטט אבל עדיין מופיע בקטע השיחה"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"ייתכן שיופעל צלצול או רטט בהתאם להגדרות במכשיר"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"ייתכן שיופעל צלצול או רטט בהתאם להגדרות במכשיר. שיחות מהאפליקציה <xliff:g id="APP_NAME">%1$s</xliff:g> מופיעות בבועות כברירת מחדל."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"אפשר לתת למערכת לקבוע אם ההתראה הזאת צריכה להיות מלווה בצליל או ברטט"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"דפדוף למעלה"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"דפדוף למטה"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"מחיקה"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"דף הבית"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"סיום"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"הוספה"</string>
@@ -1394,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"‏רמה %1$d מתוך %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"שליטה במכשירים"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"גישה מהירה לממשק השליטה במכשירים כשומר מסך"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"ביטול"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-iw/tiles_states_strings.xml b/packages/SystemUI/res/values-iw/tiles_states_strings.xml
index a81cda4739bc..86edca8fca05 100644
--- a/packages/SystemUI/res/values-iw/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-iw/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"כבוי"</item>
<item msgid="4875147066469902392">"פועל"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"לא זמין"</item>
+ <item msgid="2004750556637773692">"מצב מושבת"</item>
+ <item msgid="8968530753931637871">"מצב מופעל"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"לא זמין"</item>
<item msgid="5044688398303285224">"כבוי"</item>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 4290be9f3667..7a759980d953 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"スクリーン セーバー"</string>
<string name="ethernet_label" msgid="2203544727007463351">"イーサネット"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"サイレント モード"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"優先モード"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"ペア設定されたデバイスがありません"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"タップしてデバイスを接続または接続解除します"</string>
@@ -427,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"設定を開く"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"その他のデバイス"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"概要を切り替え"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"優先モード"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"完了"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"設定"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"ON"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"OFF"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"アラーム、リマインダー、予定、指定した人からの着信以外の音やバイブレーションに煩わされることはありません。音楽、動画、ゲームなど再生対象として選択したコンテンツは引き続き再生されます。"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"アラーム以外の音やバイブレーションに煩わされることはありません。音楽、動画、ゲームなど再生対象として選択したコンテンツは引き続き再生されます。"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"カスタマイズ"</string>
@@ -493,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"選択したウィジェットを配置"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"ロック画面ウィジェット"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"タブレットがロックされていても、ロック画面のウィジェットは誰でも確認できます。"</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"ウィジェットの選択を解除する"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"ロック画面ウィジェット"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ウィジェットを使用してアプリを起動するには、本人確認が必要です。タブレットがロックされた状態でも他のユーザーにウィジェットが表示されますので、注意してください。一部のウィジェットについてはロック画面での使用を想定していないため、ロック画面への追加は危険な場合があります。"</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>
@@ -549,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"今すぐ開始"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"通知はありません"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"新しい通知はありません"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"通知の自動調整は ON です"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"短期間に多くの通知が届いたときに最長 2 分間デバイスの音量を下げて画面上のポップアップを減らします。"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"OFF にする"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"ロック解除して以前の通知を表示"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"このデバイスは保護者によって管理されています"</string>
@@ -717,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"デフォルト"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"自動"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"着信音もバイブレーションも OFF になります"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"通知音もバイブレーションも OFF になりますが、会話セクションには引き続き表示されます"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"デバイスの設定を基に着信音またはバイブレーションが有効になります"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"デバイスの設定を基に着信音またはバイブレーションが有効になります。デフォルトでは <xliff:g id="APP_NAME">%1$s</xliff:g> からの会話がふきだしで表示されます。"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"この通知を音またはバイブレーションで知らせるかどうかの自動判断"</string>
@@ -1358,8 +1364,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"分割画面"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"入力"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"アプリのショートカット"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"現在のアプリ"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"ユーザー補助"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"キーボード ショートカット"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"検索ショートカット"</string>
@@ -1379,6 +1384,17 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"レベル %1$d/%2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"ホーム コントロール"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"ホーム コントロールにスクリーンセーバーからすばやくアクセス"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
- <skip />
+ <string name="volume_undo_action" msgid="5815519725211877114">"元に戻す"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"戻るには、3 本の指でタッチパッドを左右にスワイプします"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"ホームに移動するには、3 本の指でタッチパッドを上にスワイプします"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"最近使ったアプリを表示するには、3 本の指でタッチパッドを上にスワイプして長押しします"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"すべてのアプリを表示するには、キーボードのアクションキーを押してください"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"タッチパッドを使用して、前の画面に戻る"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"3 本の指で左または右にスワイプします。ジェスチャーの詳細を確認するにはタップしてください。"</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"タッチパッドを使用して、ホームに移動する"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"3 本の指で上にスワイプします。ジェスチャーの詳細を確認するにはタップしてください。"</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"タッチパッドを使用して、最近使ったアプリを表示する"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"3 本の指で上にスワイプして長押しします。ジェスチャーの詳細を確認するにはタップしてください。"</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"キーボードを使用して、すべてのアプリを表示する"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"アクションキーを押せばいつでも機能します。ジェスチャーの詳細を確認するにはタップしてください。"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ja/tiles_states_strings.xml b/packages/SystemUI/res/values-ja/tiles_states_strings.xml
index 610385efabf7..6f85036016b7 100644
--- a/packages/SystemUI/res/values-ja/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ja/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"OFF"</item>
<item msgid="4875147066469902392">"ON"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"使用不可"</item>
+ <item msgid="2004750556637773692">"OFF"</item>
+ <item msgid="8968530753931637871">"ON"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"使用不可"</item>
<item msgid="5044688398303285224">"OFF"</item>
diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml
index b1b01b02c714..e6b2818320be 100644
--- a/packages/SystemUI/res/values-ka/strings.xml
+++ b/packages/SystemUI/res/values-ka/strings.xml
@@ -426,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"პარამეტრების გახსნა"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"სხვა მოწყობილობა"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"მიმოხილვის გადართვა"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"პრიორიტეტული რეჟიმები"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"მზადაა"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"პარამეტრები"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"ჩართული"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"გამორთული"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"თქვენ მიერ მითითებული მაღვიძარების, შეხსენებების, მოვლენებისა და ზარების გარდა, არავითარი ხმა და ვიბრაცია არ შეგაწუხებთ. თქვენ მაინც შეძლებთ სასურველი კონტენტის, მაგალითად, მუსიკის, ვიდეოებისა და თამაშების აუდიოს მოსმენა."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"მაღვიძარების გარდა, არავითარი ხმა და ვიბრაცია არ შეგაწუხებთ. თქვენ მაინც შეძლებთ სასურველი კონტენტის, მაგალითად, მუსიკის, ვიდეოებისა და თამაშების აუდიოს მოსმენა."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"მორგება"</string>
@@ -492,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"არჩეული ვიჯეტის განთავსება"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"ჩაკეტილი ეკრანის ვიჯეტები"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"ნებისმიერს შეუძლია თქვენს ჩაკეტილ ეკრანზე ვიჯეტების ნახვა, თუნდაც ტაბლეტი ჩაკეტილი იყოს."</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"ვიჯეტის არჩევის გაუქმება"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"დაბლოკილი ეკრანის ვიჯეტები"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"უნდა დაადასტუროთ თქვენი ვინაობა, რათა გახსნათ აპი ვიჯეტის გამოყენებით. გაითვალისწინეთ, რომ ნებისმიერს შეუძლია მათი ნახვა, მაშინაც კი, როცა ტაბლეტი დაბლოკილია. ზოგი ვიჯეტი შეიძლება არ იყოს გათვლილი თქვენი დაბლოკილი ეკრანისთვის და მათი აქ დამატება შეიძლება სახიფათო იყოს."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"გასაგებია"</string>
@@ -548,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"დაწყება ახლავე"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"შეტყობინებები არ არის."</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"ახალი შეტყობინებები არ არის"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"მორგებადი შეტყობინებები ჩართულია"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"მოკლე დროში ბევრი შეტყობინების მიღებისას თქვენი მოწყობილობა ახლა უკვე ამცირებს ხმას და ეკრანზე ამომხტარი ფანჯრების რაოდენობას."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"გამორთვა"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"განბლოკეთ ძველი შეტყობინებების სანახავად"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"მოწყობილობას თქვენი მშობელი მართავს"</string>
@@ -716,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ნაგულისხმევი"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ავტომატური"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"ხმისა და ვიბრაციის გარეშე"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ხმა ან ვიბრაცია არ არის, მაგრამ მაინც ჩანს საუბრის სექციაში"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"დარეკვა ან ვიბრაცია მოწყობილობის პარამეტრების მიხედვით"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"დარეკვა ან ვიბრაცია მოწყობილობის პარამეტრების მიხედვით. მიმოწერები <xliff:g id="APP_NAME">%1$s</xliff:g>-ის ბუშტიდან, ნაგულისხმევად."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"სისტემისთვის ისეთი უფლების მინიჭება, რომ მან განსაზღვროს, ამ შეტყობინებამ ხმოვანი სიგნალი უნდა აამოქმედოს თუ ვიბრაცია"</string>
@@ -1378,4 +1385,16 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"სახლის კონტროლი"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"სწრაფი წვდომა სახლის კონტროლზე ეკრანმზოგის სახით"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"მოქმედების გაუქმება"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"უკან დასაბრუნებლად სენსორულ პანელზე სამი თითით გადაფურცლეთ მარცხნივ ან მარჯვნივ"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"მთავარ გვერდზე გადასასვლელად სენსორულ პანელზე გადაფურცლეთ ზემოთ სამი თითით"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"ბოლო აპების სანახავად სენსორულ პანელზე სამი თითით გადაფურცლეთ ზემოთ და მოიცადეთ"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ყველა აპის სანახავად დააჭირეთ მოქმედების კლავიშს თქვენს კლავიატურაზე"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"უკან დასაბრუნებლად გამოიყენეთ სენსორული პანელი"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"გადაფურცლეთ მარცხნივ ან მარჯვნივ სამი თითით. შეეხეთ მეტი ჟესტის შესასწავლად."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"მთავარ გვერდზე გადასასვლელად გამოიყენეთ სენსორული პანელი"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"გადაფურცლეთ ზემოთ სამი თითით. შეეხეთ მეტი ჟესტის შესასწავლად."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"ბოლო აპების სანახავად გამოიყენეთ სენსორული პანელი"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"სამი თითით გადაფურცლეთ ზემოთ და მოიცადეთ. შეეხეთ მეტი ჟესტის შესასწავლად."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"ყველა აპის სანახავად გამოიყენეთ თქვენი კლავიატურა"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"ნებისმიერ დროს დააჭირეთ მოქმედების კლავიშს. შეეხეთ მეტი ჟესტის შესასწავლად."</string>
</resources>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index c07b6a0a246e..6415aa13a46f 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Көру үшін түртіңіз."</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Экран жазбасын сақтау кезінде қате шықты."</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Экрандағы бейнені жазу кезінде қате шықты."</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Жазу тоқтатылсын ба?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Қазір бүкіл экранды жазып жатырсыз."</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Қазір қолданбадағы (<xliff:g id="APP_NAME">%1$s</xliff:g>) контентті жазып жатырсыз."</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Жазуды тоқтату"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Экранды бөлісіп жатыр."</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Экранды бөлісуді тоқтатасыз ба?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Қазір бүкіл экранды қолданбамен (<xliff:g id="HOST_APP_NAME">%1$s</xliff:g>) бөлісіп жатырсыз."</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Қазір бүкіл экранды қолданбамен бөлісіп жатырсыз."</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Қазір қолданбадағы (<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>) контентті бөлісіп жатырсыз."</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Қазір қолданбаны бөлісіп жатырсыз."</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Бөлісуді тоқтату"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Экранды трансляциялап жатырсыз."</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Трансляциялау тоқтасын ба?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Қазір бүкіл экранды құрылғыға (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) трансляциялап жатырсыз."</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Қазір бүкіл экранды маңайдағы құрылғыға трансляциялап жатырсыз."</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Қазір қолданбаны (<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>) құрылғыға (<xliff:g id="DEVICE_NAME">%2$s</xliff:g>) трансляциялап жатырсыз."</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Қазір қолданбаны (<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>) маңайдағы құрылғыға трансляциялап жатырсыз."</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Қазір құрылғыға (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) трансляциялап жатырсыз."</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Қазір маңайдағы құрылғыға трансляциялап жатырсыз."</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Трансляцияны тоқтату"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Жабу"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Мәселені жазу құралы"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Скринсейвер"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Этернет"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Мазаламау"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Басымдық режимдері"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Жұптасқан құрылғылар жоқ"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Құрылғыны жалғау не ажырату үшін түртіңіз."</string>
@@ -334,7 +320,7 @@
<string name="quick_settings_camera_label" msgid="5612076679385269339">"Камераны пайдалану"</string>
<string name="quick_settings_mic_label" msgid="8392773746295266375">"Микрофонды пайдалану"</string>
<string name="quick_settings_camera_mic_available" msgid="1453719768420394314">"Қолжетімді"</string>
- <string name="quick_settings_camera_mic_blocked" msgid="4710884905006788281">"Бөгелген"</string>
+ <string name="quick_settings_camera_mic_blocked" msgid="4710884905006788281">"Блокталған"</string>
<string name="quick_settings_media_device_label" msgid="8034019242363789941">"Meдиа құрылғысы"</string>
<string name="quick_settings_user_title" msgid="8673045967216204537">"Пайдаланушы"</string>
<string name="quick_settings_wifi_label" msgid="2879507532983487244">"Wi-Fi"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Параметрлерді ашу"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Басқа құрылғы"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Шолуды қосу/өшіру"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Басымдық режимдері"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Дайын"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Параметрлер"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Оятқыш, еске салғыш, іс-шара мен өзіңіз көрсеткен контактілердің қоңырауларынан басқа дыбыстар мен дірілдер мазаламайтын болады. Музыка, бейне және ойын сияқты медиафайлдарды қоссаңыз, оларды естисіз."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Дабылдардан басқа ешқандай дыбыстар мен дірілдер мазаламайтын болады. Музыка, бейне және ойындар сияқты ойнатылатын контентті ести алатын боласыз."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Реттеу"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"виджет таңдау"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"виджетті өшіру"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"таңдалған виджетті орналастыру"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Құлып экранының виджеттері"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Планшет құлыпталып тұрса да, құлып экранындағы виджеттерді кез келген адам көре алады."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Құлып экранының виджеттері"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Қолданбаны виджет көмегімен ашу үшін жеке басыңызды растауыңыз керек. Сондай-ақ басқалар оларды планшетіңіз құлыптаулы кезде де көре алатынын ескеріңіз. Кейбір виджеттер құлып экранына арналмаған болады, сондықтан оларды мұнда қосу қауіпсіз болмауы мүмкін."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Қазір бастау"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Хабарландырулар жоқ"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Жаңа хабарландырулар жоқ"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Бейімделетін хабарландырулар қосулы"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Қысқа уақыт аралығында көп хабарландыру алсаңыз, құрылғыңыз дыбыс деңгейін және экранда шығатын қалқымалы терезелердің уақытын екі минутқа дейін азайтады."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Өшіру"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Ескі хабарландырулар үшін құлыпты ашыңыз"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Бұл құрылғыны ата-анаңыз басқарады."</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Әдепкі"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Автоматты"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Дыбыс не діріл болмайды."</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Дыбысы не дірілі өшіріледі, алайда әңгімелер бөлімінде көрсетіле береді"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Құрылғы параметрлеріне байланысты шырылдауы не дірілдеуі мүмкін"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Құрылғы параметрлеріне байланысты шырылдауы не дірілдеуі мүмкін. <xliff:g id="APP_NAME">%1$s</xliff:g> чаттары әдепкісінше қалқымалы етіп көрсетіледі."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Хабарландыру дыбысының немесе дірілдің қосылуын жүйе анықтайтын болады"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Экранды бөлу"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Кіріс"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Қолданба таңбашалары"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Қолданыстағы қолданба"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Арнайы мүмкіндіктер"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Перне тіркесімдері"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Іздеу жылдам пәрмендері"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Деңгей: %1$d/%2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Үй басқару элементтері"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Үй басқару элементтерін скринсейверден қолданыңыз."</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Қайтару"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-kk/tiles_states_strings.xml b/packages/SystemUI/res/values-kk/tiles_states_strings.xml
index 6410460e3ed7..94a9806449fc 100644
--- a/packages/SystemUI/res/values-kk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-kk/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Өшірулі"</item>
<item msgid="4875147066469902392">"Қосулы"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Қолжетімді емес"</item>
+ <item msgid="2004750556637773692">"Өшірулі"</item>
+ <item msgid="8968530753931637871">"Қосулы"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Қолжетімсіз"</item>
<item msgid="5044688398303285224">"Өшірулі"</item>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index bd31568b2689..a85e4b55a7b5 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"ធាតុរក្សាអេក្រង់"</string>
<string name="ethernet_label" msgid="2203544727007463351">"អ៊ីសឺរណិត"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"កុំ​រំខាន"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"មុខងារអាទិភាព"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"ប៊្លូធូស"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"មិន​មាន​ឧបករណ៍​ផ្គូផ្គង​ដែល​អាច​ប្រើ​បាន"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"ចុចដើម្បីភ្ជាប់ ឬផ្ដាច់ឧបករណ៍"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"បើកការកំណត់"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"ឧបករណ៍ផ្សេងទៀត"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"បិទ/បើក​ទិដ្ឋភាពរួម"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"មុខងារអាទិភាព"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"រួចរាល់"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"ការកំណត់"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"សំឡេង និងរំញ័រនឹងមិន​រំខានដល់អ្នកឡើយ លើកលែងតែម៉ោងរោទ៍ ការរំលឹក ព្រឹត្តិការណ៍ និងអ្នកហៅទូរសព្ទដែលអ្នកបញ្ជាក់ប៉ុណ្ណោះ។ អ្នកនឹងនៅតែឮសំឡេងសកម្មភាពគ្រប់យ៉ាងដែលអ្នកលេងដដែល រួមទាំងតន្រ្តី វីដេអូ និងហ្គេម។"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"សំឡេង និងរំញ័រនឹងមិន​រំខានដល់អ្នកឡើយ លើកលែងតែម៉ោងរោទ៍ប៉ុណ្ណោះ។ អ្នកនឹងនៅតែឮសំឡេងសកម្មភាពគ្រប់យ៉ាងដែលអ្នកលេងដដែល រួមទាំងតន្រ្តី វីដេអូ និងហ្គេម។"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"ប្ដូរតាមបំណង"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"ដាក់ធាតុ​ក្រាហ្វិកដែលបានជ្រើសរើស"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"ធាតុ​ក្រាហ្វិកអេក្រង់ចាក់សោ"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"អ្នកគ្រប់គ្នាអាចមើលធាតុក្រាហ្វិកលើអេក្រង់ចាក់សោរបស់អ្នក ទោះបីជាថេប្លេតរបស់អ្នកត្រូវបានចាក់សោក៏ដោយ។"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"ធាតុ​ក្រាហ្វិកលើអេក្រង់ចាក់សោ"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ដើម្បីបើកកម្មវិធីដោយប្រើធាតុ​ក្រាហ្វិក អ្នកនឹងត្រូវផ្ទៀងផ្ទាត់ថាជាអ្នក។ ទន្ទឹមនឹងនេះ សូមចងចាំថា នរណាក៏អាចមើលធាតុក្រាហ្វិកបាន សូម្បីពេលថេប្លេតរបស់អ្នកជាប់សោក៏ដោយ។ ធាតុ​ក្រាហ្វិកមួយចំនួនប្រហែលមិនត្រូវបានរចនាឡើងសម្រាប់អេក្រង់ចាក់សោរបស់អ្នកទេ និងមិនមានសុវត្ថិភាពឡើយ បើបញ្ចូលទៅទីនេះ។"</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"យល់ហើយ"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"ចាប់ផ្ដើម​ឥឡូវ"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"គ្មាន​ការ​ជូនដំណឹង"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"គ្មាន​ការ​ជូន​ដំណឹង​​ថ្មីៗទេ"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"ការជូនដំណឹងដែលបត់បែនត្រូវបានបើក"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"ឥឡូវនេះ ឧបករណ៍របស់អ្នកបន្ថយកម្រិតសំឡេង និងកាត់បន្ថយផ្ទាំងលោតឡើងនៅលើអេក្រង់រយៈពេលរហូតដល់ពីរនាទី នៅពេលអ្នកទទួលបានការជូនដំណឹងច្រើនក្នុងរយៈពេលខ្លី។"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"បិទ"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"ដោះសោដើម្បីមើលការជូនដំណឹងចាស់ៗ"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"ឧបករណ៍​នេះ​ស្ថិត​ក្រោម​ការ​គ្រប់គ្រង​របស់មាតាបិតាអ្នក"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"លំនាំដើម"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ស្វ័យប្រវត្តិ"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"គ្មាន​សំឡេង ឬការញ័រទេ"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"មិនមានសំឡេង ឬការ​ញ័រទេ ប៉ុន្តែនៅតែបង្ហាញនៅក្នុងផ្នែកសន្ទនាដដែល"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"អាចរោទ៍ ឬញ័រ ដោយផ្អែកលើ​ការកំណត់ឧបករណ៍"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"អាចរោទ៍ ឬញ័រ ដោយផ្អែកលើ​ការកំណត់ឧបករណ៍។ ការសន្ទនា​ពីផ្ទាំងអណ្ដែត <xliff:g id="APP_NAME">%1$s</xliff:g> តាម​លំនាំដើម​។"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ឱ្យប្រព័ន្ធកំណត់ថាតើ​ការជូនដំណឹងនេះ​គួរតែបន្លឺសំឡេង ឬញ័រ"</string>
@@ -1358,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"មុខងារ​បំបែកអេក្រង់"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"ធាតុចូល"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ផ្លូវកាត់​កម្មវិធី"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"កម្មវិធីបច្ចុប្បន្ន"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"ភាពងាយស្រួល"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"ផ្លូវកាត់​ក្ដារ​ចុច"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ផ្លូវ​កាត់ការស្វែងរក"</string>
@@ -1379,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"កម្រិតទី %1$d នៃ %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"ការគ្រប់គ្រង​ផ្ទះ"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"ចូលប្រើការគ្រប់គ្រងផ្ទះអ្នកបានលឿនជាធាតុរក្សាអេក្រង់"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"ត្រឡប់វិញ"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-km/tiles_states_strings.xml b/packages/SystemUI/res/values-km/tiles_states_strings.xml
index 25f74858f9fb..11e2c2a896ff 100644
--- a/packages/SystemUI/res/values-km/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-km/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"បិទ"</item>
<item msgid="4875147066469902392">"បើក"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"មិនមានទេ"</item>
+ <item msgid="2004750556637773692">"បិទ"</item>
+ <item msgid="8968530753931637871">"បើក"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"មិនមានទេ"</item>
<item msgid="5044688398303285224">"បិទ"</item>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index 4bf89e174dfe..670ba043fee1 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -426,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"ಅನ್ಯ ಸಾಧನ"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"ಟಾಗಲ್ ನ ಅವಲೋಕನ"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"ಆದ್ಯತೆಯ ಮೋಡ್‌ಗಳು"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"ಮುಗಿದಿದೆ"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"ಆನ್ ಆಗಿದೆ"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"ಆಫ್ ಆಗಿದೆ"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"ಅಲಾರಾಂಗಳು, ಜ್ಞಾಪನೆಗಳು, ಈವೆಂಟ್‌ಗಳು ಹಾಗೂ ನೀವು ಸೂಚಿಸಿರುವ ಕರೆದಾರರನ್ನು ಹೊರತುಪಡಿಸಿ ಬೇರಾವುದೇ ಸದ್ದುಗಳು ಅಥವಾ ವೈಬ್ರೇಶನ್‌ಗಳು ನಿಮಗೆ ತೊಂದರೆ ನೀಡುವುದಿಲ್ಲ. ಹಾಗಿದ್ದರೂ, ನೀವು ಪ್ಲೇ ಮಾಡುವ ಸಂಗೀತ, ವೀಡಿಯೊಗಳು ಮತ್ತು ಆಟಗಳ ಆಡಿಯೊವನ್ನು ನೀವು ಕೇಳಿಸಿಕೊಳ್ಳುತ್ತೀರಿ."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"ಅಲಾರಾಂಗಳನ್ನು ಹೊರತುಪಡಿಸಿ, ಬೇರಾವುದೇ ಸದ್ದುಗಳು ಅಥವಾ ವೈಬ್ರೇಶನ್‌ಗಳು ನಿಮಗೆ ತೊಂದರೆ ನೀಡುವುದಿಲ್ಲ. ಹಾಗಿದ್ದರೂ, ನೀವು ಪ್ಲೇ ಮಾಡುವ ಸಂಗೀತ, ವೀಡಿಯೊಗಳು ಮತ್ತು ಆಟಗಳ ಆಡಿಯೊವನ್ನು ಕೇಳಿಸಿಕೊಳ್ಳುತ್ತೀರಿ."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"ಕಸ್ಟಮೈಸ್ ಮಾಡು"</string>
@@ -492,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"ಆಯ್ಕೆಮಾಡಿದ ವಿಜೆಟ್ ಅನ್ನು ಇರಿಸಿ"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ ವಿಜೆಟ್‌ಗಳು"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಲಾಕ್ ಆಗಿದ್ದರೂ ಸಹ ಯಾರಾದರೂ ನಿಮ್ಮ ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ವಿಜೆಟ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಬಹುದು."</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"ವಿಜೆಟ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಬೇಡಿ"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ ವಿಜೆಟ್‌ಗಳು"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ವಿಜೆಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಆ್ಯಪ್ ತೆರೆಯಲು, ಇದು ನೀವೇ ಎಂದು ನೀವು ದೃಢೀಕರಿಸಬೇಕಾಗುತ್ತದೆ. ಅಲ್ಲದೆ, ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಲಾಕ್ ಆಗಿದ್ದರೂ ಸಹ ಯಾರಾದರೂ ಅವುಗಳನ್ನು ವೀಕ್ಷಿಸಬಹುದು ಎಂಬುದನ್ನು ನೆನಪಿನಲ್ಲಿಡಿ. ಕೆಲವು ವಿಜೆಟ್‌ಗಳು ನಿಮ್ಮ ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ಗಾಗಿ ಉದ್ದೇಶಿಸದೇ ಇರಬಹುದು ಮತ್ತು ಇಲ್ಲಿ ಸೇರಿಸುವುದು ಸುರಕ್ಷಿತವಲ್ಲದಿರಬಹುದು."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ಅರ್ಥವಾಯಿತು"</string>
@@ -548,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"ಈಗ ಪ್ರಾರಂಭಿಸಿ"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"ಯಾವುದೇ ಅಧಿಸೂಚನೆಗಳಿಲ್ಲ"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"ಯಾವುದೇ ಹೊಸ ಅಧಿಸೂಚನೆಗಳಿಲ್ಲ"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"ಅಡಾಪ್ಟಿವ್ ನೋಟಿಫಿಕೇಶನ್ ಆನ್ ಇದೆ"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"ಅಲ್ಪಾವಧಿಯಲ್ಲಿ ಹಲವು ನೋಟಿಫಿಕೇಶನ್ ಬಂದಾಗ 2 ನಿಮಿಷದವರೆಗೆ ಸಾಧನವು ಈಗ ವಾಲ್ಯೂಮ್ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಹಾಗೂ ಸ್ಕ್ರೀನ್ ಮೇಲಿನ ಪಾಪ್-ಅಪ್ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"ಆಫ್ ಮಾಡಿ"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"ಹಳೆಯ ಅಧಿಸೂಚನೆಗಳನ್ನು ನೋಡಲು ಅನ್‌ಲಾಕ್ ಮಾಡಿ"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"ಈ ಸಾಧನವನ್ನು ನಿಮ್ಮ ಪೋಷಕರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ"</string>
@@ -716,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ಡೀಫಾಲ್ಟ್"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ಸ್ವಯಂಚಾಲಿತ"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"ಯಾವುದೇ ಧ್ವನಿ ಅಥವಾ ವೈಬ್ರೇಷನ್‌ ಆಗುವುದಿಲ್ಲ"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ಯಾವುದೇ ಸೌಂಡ್ ಅಥವಾ ವೈಬ್ರೇಷನ್‌ ಇಲ್ಲ, ಆದರೆ ಇದು ಇನ್ನೂ ಸಂಭಾಷಣೆಗಳ ವಿಭಾಗದಲ್ಲಿ ತೋರಿಸುತ್ತದೆ"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಧರಿಸಿ ಸಾಧನ ರಿಂಗ್ ಅಥವಾ ವೈಬ್ರೇಟ್ ಆಗುತ್ತದೆ"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಧರಿಸಿ ಫೋನ್ ರಿಂಗ್ ಅಥವಾ ವೈಬ್ರೇಟ್ ಆಗುತ್ತದೆ. ಡಿಫಾಲ್ಟ್ ಆಗಿ, <xliff:g id="APP_NAME">%1$s</xliff:g> ಬಬಲ್ ಸಂಭಾಷಣೆಗಳು."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ಈ ಅಧಿಸೂಚನೆಯು ಶಬ್ದ ಮಾಡಬೇಕೇ ಅಥವಾ ವೈಬ್ರೇಟ್ ಮಾಡಬೇಕೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುವ ಅವಕಾಶವನ್ನು ಸಿಸ್ಟಂಗೆ ನೀಡಿ"</string>
@@ -1378,4 +1385,16 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"ಮನೆ ನಿಯಂತ್ರಣಗಳು"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"ಮನೆ ನಿಯಂತ್ರಣವನ್ನು ಸ್ಕ್ರೀನ್‌ಸೇವರ್‌ನಂತೆ ಬೇಗ ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಿ"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"ರದ್ದುಗೊಳಿಸಿ"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"ಹಿಂತಿರುಗಲು, ಟಚ್‌ಪ್ಯಾಡ್‌ನಲ್ಲಿ ಮೂರು ಬೆರಳುಗಳಿಂದ ಎಡಕ್ಕೆ ಅಥವಾ ಬಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"ಹೋಮ್‌ಗೆ ಹೋಗಲು, ಟಚ್‌ಪ್ಯಾಡ್‌ನಲ್ಲಿ ಮೂರು ಬೆರಳುಗಳಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"ಇತ್ತೀಚಿನ ಆ್ಯಪ್‌ಗಳನ್ನು ನೋಡಲು, ಟಚ್‌ಪ್ಯಾಡ್‌ನಲ್ಲಿ ಮೂರು ಬೆರಳುಗಳಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಹಾಗೂ ಹೋಲ್ಡ್ ಮಾಡಿ"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ನಿಮ್ಮ ಎಲ್ಲಾ ಆ್ಯಪ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ನಿಮ್ಮ ಕೀಬೋರ್ಡ್‌ನಲ್ಲಿರುವ ಆ್ಯಕ್ಷನ್‌ ಕೀಯನ್ನು ಒತ್ತಿರಿ"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"ಹಿಂತಿರುಗಲು ನಿಮ್ಮ ಟಚ್‌ಪ್ಯಾಡ್ ಅನ್ನು ಬಳಸಿ"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"ಮೂರು ಬೆರಳುಗಳಿಂದ ಎಡಕ್ಕೆ ಅಥವಾ ಬಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ಇನ್ನಷ್ಟು ಗೆಸ್ಚರ್‌ಗಳನ್ನು ತಿಳಿಯಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"ಹೋಮ್‌ಗೆ ಹೋಗಲು ನಿಮ್ಮ ಟಚ್‌ಪ್ಯಾಡ್ ಅನ್ನು ಬಳಸಿ"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"ಮೂರು ಬೆರಳುಗಳಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ಇನ್ನಷ್ಟು ಗೆಸ್ಚರ್‌ಗಳನ್ನು ತಿಳಿಯಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"ಇತ್ತೀಚಿನ ಆ್ಯಪ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಲು ನಿಮ್ಮ ಟಚ್‌ಪ್ಯಾಡ್ ಅನ್ನು ಬಳಸಿ"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"ಮೂರು ಬೆರಳುಗಳಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಹಾಗೂ ಹೋಲ್ಡ್ ಮಾಡಿ. ಇನ್ನಷ್ಟು ಗೆಸ್ಚರ್‌ಗಳನ್ನು ತಿಳಿಯಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"ಎಲ್ಲಾ ಆ್ಯಪ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಲು ನಿಮ್ಮ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಬಳಸಿ"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"ಯಾವಾಗ ಬೇಕಾದರೂ ಆ್ಯಕ್ಷನ್‌ ಕೀಯನ್ನು ಒತ್ತಿರಿ. ಇನ್ನಷ್ಟು ಗೆಸ್ಚರ್‌ಗಳನ್ನು ತಿಳಿಯಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
</resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 764748632b0e..32d4cc51d162 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"탭하여 보기"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"화면 녹화 저장 중에 오류가 발생했습니다."</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"화면 녹화 시작 중 오류 발생"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"녹화를 중지하시겠습니까?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"현재 전체 화면을 녹화 중입니다."</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"현재 <xliff:g id="APP_NAME">%1$s</xliff:g>의 콘텐츠를 녹화 중입니다"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"녹화 중지"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"화면 공유 중"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"화면 공유를 중지하시겠습니까?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"현재 전체 화면을 <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>과 공유 중입니다"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"현재 전체 화면을 앱과 공유 중입니다"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"현재 <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>의 콘텐츠를 공유 중입니다"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"현재 앱을 공유 중입니다"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"공유 중지"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"화면 전송 중"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"전송을 중지할까요?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"현재 전체 화면을 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>로 전송 중입니다."</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"현재 전체 화면을 근처 기기로 전송 중입니다."</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"현재 <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>의 콘텐츠를 <xliff:g id="DEVICE_NAME">%2$s</xliff:g>로 전송 중입니다."</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"현재 <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>의 콘텐츠를 근처 기기로 전송 중입니다."</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"현재 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>로 전송 중입니다."</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"현재 근처 기기로 전송 중입니다."</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"전송 중지"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"닫기"</string>
<string name="issuerecord_title" msgid="286627115110121849">"문제 녹화 도구"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"화면 보호기"</string>
<string name="ethernet_label" msgid="2203544727007463351">"이더넷"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"방해 금지 모드"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"우선순위 모드"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"블루투스"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"페어링된 기기가 없습니다"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"기기를 연결 또는 연결 해제하려면 탭하세요"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"설정 열기"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"기타 기기"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"최근 사용 버튼 전환"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"우선순위 모드"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"완료"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"설정"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"알람, 알림, 일정 및 지정한 발신자로부터 받은 전화를 제외한 소리와 진동을 끕니다. 음악, 동영상, 게임 등 재생하도록 선택한 소리는 정상적으로 들립니다."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"알람을 제외한 소리와 진동을 끕니다. 음악, 동영상, 게임 등 재생하도록 선택한 소리는 정상적으로 들립니다."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"맞춤설정"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"위젯 선택"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"위젯 삭제"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"선택한 위젯 배치"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"잠금 화면 위젯"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"태블릿이 잠겨 있어도 누구나 잠금 화면에서 위젯을 볼 수 있습니다."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"잠금 화면 위젯"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"위젯을 사용하여 앱을 열려면 본인 인증을 해야 합니다. 또한 태블릿이 잠겨 있더라도 누구나 볼 수 있다는 점을 유의해야 합니다. 일부 위젯은 잠금 화면에 적합하지 않고 여기에 추가하기에 안전하지 않을 수 있습니다."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"시작하기"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"알림 없음"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"새로운 알림 없음"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"적응형 알림 사용 중"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"이제 짧은 시간 동안 많은 알림을 받으면 최대 2분 동안 기기의 볼륨을 낮추고 화면의 팝업을 줄입니다."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"사용 중지"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"잠금 해제하여 이전 알림 보기"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"부모님이 관리하는 기기입니다."</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"기본값"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"자동"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"소리 또는 진동 없음"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"소리나 진동이 울리지 않지만 대화 섹션에는 표시됨"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"기기 설정에 따라 벨소리나 진동이 울릴 수 있음"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"기기 설정에 따라 벨소리나 진동이 울릴 수 있습니다. 기본적으로 <xliff:g id="APP_NAME">%1$s</xliff:g>의 대화는 대화창으로 표시됩니다."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"시스템에서 알림 시 소리 또는 진동을 사용할지 결정하도록 허용합니다."</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"화면 분할"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"입력"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"앱 바로가기"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"현재 앱"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"접근성"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"단축키"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"검색 바로가기"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%2$d단계 중 %1$d단계"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"홈 컨트롤"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"화면 보호기로 홈 컨트롤에 빠르게 액세스하기"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"실행취소"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ko/tiles_states_strings.xml b/packages/SystemUI/res/values-ko/tiles_states_strings.xml
index 9116085bb0b9..963ecc7c7668 100644
--- a/packages/SystemUI/res/values-ko/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ko/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"꺼짐"</item>
<item msgid="4875147066469902392">"켜짐"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"사용 불가"</item>
+ <item msgid="2004750556637773692">"사용 안 함"</item>
+ <item msgid="8968530753931637871">"사용"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"이용 불가"</item>
<item msgid="5044688398303285224">"꺼짐"</item>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index d1aa663d83cc..b96732eadb1b 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Көшөгө"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Тынчымды алба"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Маанилүүлүк режимдери"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Жупташкан түзмөктөр жок"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Түзмөктү туташтыруу же ажыратуу үчүн таптаңыз"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Параметрлерди ачуу"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Башка түзмөк"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Назар режимин өчүрүү/күйгүзүү"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Маанилүүлүк режимдери"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Бүттү"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Параметрлер"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Ойготкучтардан, эскертүүлөрдөн, жылнаамадагы иш-чараларды эстеткичтерден жана белгиленген байланыштардын чалууларынан тышкары башка үндөр жана дирилдөөлөр тынчыңызды албайт. Бирок ойнотулуп жаткан музыканы, видеолорду жана оюндарды мурдагыдай эле уга бересиз."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Ойготкучтардан башка үндөр жана дирилдөөлөр тынчыңызды албайт. Бирок ойнотулуп жаткан музыканы, видеолорду жана оюндарды мурдагыдай эле уга бересиз."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Ыңгайлаштыруу"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"тандалган виджетти жайгаштыруу"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Кулпуланган экрандагы виджеттер"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Планшетиңиз кулпуланган болсо да, кулпуланган экраныңыздан виджеттерди бардыгы көрө алат."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Кулпуланган экрандагы виджеттер"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Колдонмону виджет аркылуу ачуу үчүн бул сиз экениңизди ырасташыңыз керек. Аларды планшетиңиз кулпуланып турса да, баары көрө аларын эске алыңыз. Айрым виджеттер кулпуланган экранда колдонууга арналган эмес жана аларды бул жерге кошуу кооптуу болушу мүмкүн."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Түшүндүм"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Азыр баштоо"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Билдирме жок"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Жаңы билдирмелер жок"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Адаптивдүү билдирмелер күйүк"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Эгер кыска убакыттын ичинде билдирмелер көп келсе, үн көлөмү жана экрандагы калкыма терезелердин саны эки мүнөткө чейин азайтылат."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Өчүрүү"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Билдирмелерди көрүү үчүн кулпуну ачыңыз"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Бул түзмөктү ата-энең башкарат"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Демейки"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Автоматтык"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Үнү чыкпайт жана дирилдебейт"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Үнү өчүрүлөт же дирилдебейт, бирок маектер бөлүмүндө көрүнө берет"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Түзмөктүн параметрлерине жараша шыңгырап же дирилдеши мүмкүн"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Түзмөктүн параметрлерине жараша шыңгырап же дирилдеши мүмкүн. <xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосундагы сүйлөшүүлөр демейки шартта калкып чыкма билдирмелер болуп көрүнөт."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Билдирменин үнүн чыгартууну же басууну системага тапшырыңыз"</string>
@@ -1358,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Экранды бөлүү"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Киргизүү"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Колдонмодогу кыска жолдор"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Учурдагы колдонмо"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Атайын мүмкүнчүлүктөр"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Ыкчам баскычтар"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Ыкчам баскычтарды издөө"</string>
@@ -1379,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%2$d ичинен %1$d-деңгээл"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Үйдөгү түзмөктөрдү тескөө"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Үйдөгү түзмөктөрдү көшөгөдөн ыкчам тескеңиз"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Кайтаруу"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ky/tiles_states_strings.xml b/packages/SystemUI/res/values-ky/tiles_states_strings.xml
index d92f787b286b..3ad9b64ed720 100644
--- a/packages/SystemUI/res/values-ky/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ky/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Өчүк"</item>
<item msgid="4875147066469902392">"Күйүк"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Жеткиликсиз"</item>
+ <item msgid="2004750556637773692">"Өчүк"</item>
+ <item msgid="8968530753931637871">"Күйүк"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Жеткиликсиз"</item>
<item msgid="5044688398303285224">"Өчүк"</item>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index 5abef943ff51..4f3e82e61d42 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"ພາບພັກໜ້າຈໍ"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"ຫ້າມລົບກວນ"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"ໂໝດຄວາມສຳຄັນ"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"ບໍ່​ມີ​ອຸ​ປະ​ກອນ​ທີ່​ສາ​ມາດ​ຈັບ​ຄູ່​ໄດ້"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"ແຕະເພື່ອເຊື່ອມຕໍ່ ຫຼື ຕັດການເຊື່ອມຕໍ່ອຸປະກອນ"</string>
@@ -427,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"ເປີດການຕັ້ງຄ່າ"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"ອຸປະກອນອື່ນໆ"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"ສະຫຼັບພາບຮວມ"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"ໂໝດຄວາມສຳຄັນ"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"ແລ້ວໆ"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"ການຕັ້ງຄ່າ"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"ເປີດ"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"ປິດ"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"ທ່ານຈະບໍ່ໄດ້ຮັບການລົບກວນຈາກສຽງ ແລະ ການສັ່ນເຕືອນ, ຍົກເວັ້ນໃນເວລາໂມງປຸກດັງ, ມີການແຈ້ງເຕືອນ ຫຼື ມີສາຍໂທເຂົ້າຈາກຜູ້ໂທທີ່ທ່ານລະບຸໄວ້. ທ່ານອາດຍັງຄົງໄດ້ຍິນຫາກທ່ານເລືອກຫຼິ້ນເພງ, ວິດີໂອ ແລະ ເກມ."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"ທ່ານຈະບໍ່ໄດ້ຮັບການລົບກວນຈາກສຽງ ແລະ ການສັ່ນເຕືອນ, ຍົກເວັ້ນໃນເວລາໂມງປຸກດັງ. ທ່ານອາດຍັງຄົງໄດ້ຍິນຫາກທ່ານເລືອກຫຼິ້ນເພງ, ວິດີໂອ ແລະ ເກມ."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"ປັບແຕ່ງ"</string>
@@ -493,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"ວາງວິດເຈັດທີ່ເລືອກ"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"ວິດເຈັດໃນໜ້າຈໍລັອກ"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"ທຸກຄົນສາມາດເບິ່ງວິດເຈັດຢູ່ໜ້າຈໍລັອກຂອງທ່ານໄດ້, ເຖິງແມ່ນວ່າແທັບເລັດຂອງທ່ານຈະລັອກຢູ່ກໍຕາມ."</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"ຍົກເລີກການເລືອກວິດເຈັດ"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"ວິດເຈັດໃນໜ້າຈໍລັອກ"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ເພື່ອເປີດແອັບໂດຍໃຊ້ວິດເຈັດ, ທ່ານຈະຕ້ອງຢັ້ງຢືນວ່າແມ່ນທ່ານ. ນອກຈາກນັ້ນ, ກະລຸນາຮັບຊາບວ່າທຸກຄົນສາມາດເບິ່ງຂໍ້ມູນດັ່ງກ່າວໄດ້, ເຖິງແມ່ນວ່າແທັບເລັດຂອງທ່ານຈະລັອກຢູ່ກໍຕາມ. ວິດເຈັດບາງຢ່າງອາດບໍ່ໄດ້ມີໄວ້ສຳລັບໜ້າຈໍລັອກຂອງທ່ານ ແລະ ອາດບໍ່ປອດໄພທີ່ຈະເພີ່ມໃສ່ບ່ອນນີ້."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ເຂົ້າໃຈແລ້ວ"</string>
@@ -549,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"ເລີ່ມດຽວນີ້"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"ບໍ່ມີການແຈ້ງເຕືອນ"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"ບໍ່ມີການແຈ້ງເຕືອນໃໝ່"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"ການແຈ້ງເຕືອນແບບປັບອັດຕະໂນມັດເປີດຢູ່"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"ຈາກນີ້ໄປອຸປະກອນຂອງທ່ານຈະຫຼຸດລະດັບສຽງ ແລະ ຈຳນວນປັອບອັບຢູ່ໜ້າຈໍເປັນເວລາສູງສຸດ 2 ນາທີເມື່ອທ່ານໄດ້ຮັບການແຈ້ງເຕືອນຈຳນວນຫຼາຍໃນໄລຍະເວລາສັ້ນໆ."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"ປິດ"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"ປົດລັອກເພື່ອເບິ່ງການແຈ້ງເຕືອນເກົ່າ"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"ອຸປະກອນນີ້ແມ່ນຈັດການໂດຍພໍ່ແມ່ຂອງທ່ານ"</string>
@@ -717,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ຄ່າເລີ່ມຕົ້ນ"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ອັດຕະໂນມັດ"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"ບໍ່ມີສຽງ ຫຼື ການສັ່ນເຕືອນ"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ບໍ່ມີສຽງ ຫຼື ການສັ່ນເຕືອນແຕ່ຍັງຄົງປາກົດໃນພາກສ່ວນການສົນທະນາ"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"ອາດສົ່ງສຽງ ຫຼື ສັ່ນເຕືອນໂດຍອ້າງອີງຈາກການຕັ້ງຄ່າອຸປະກອນ"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"ອາດສົ່ງສຽງ ຫຼື ສັ່ນເຕືອນໂດຍອ້າງອີງຈາກການຕັ້ງຄ່າອຸປະກອນ. ການສົນທະນາຈາກ <xliff:g id="APP_NAME">%1$s</xliff:g> ຈະເປັນ bubble ຕາມຄ່າເລີ່ມຕົ້ນ."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ໃຫ້ລະບົບກຳນົດວ່າການແຈ້ງເຕືອນນິ້ຄວນມີສຽງ ຫຼື ສັ່ນເຕືອນຫຼືບໍ່"</string>
@@ -1358,8 +1364,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"ແບ່ງໜ້າຈໍ"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"ອິນພຸດ"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ທາງລັດແອັບ"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"ແອັບປັດຈຸບັນ"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"ການຊ່ວຍເຂົ້າເຖິງ"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"ຄີລັດ"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ທາງລັດການຊອກຫາ"</string>
@@ -1379,6 +1384,17 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"ລະດັບທີ %1$d ຈາກ %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"ການຄວບຄຸມເຮືອນ"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"ເຂົ້າເຖິງການຄວບຄຸມເຮືອນຂອງທ່ານໄດ້ຢ່າງວ່ອງໄວຢູ່ພາບພັກໜ້າຈໍ"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
- <skip />
+ <string name="volume_undo_action" msgid="5815519725211877114">"ຍົກເລີກ"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"ເພື່ອກັບຄືນ, ໃຫ້ໃຊ້ 3 ນິ້ວປັດຊ້າຍ ຫຼື ຂວາເທິງແຜ່ນສໍາຜັດ"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"ເພື່ອໄປຫາໜ້າຫຼັກ, ໃຫ້ໃຊ້ 3 ນິ້ວປັດຂຶ້ນເທິງແຜ່ນສໍາຜັດ"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"ເພື່ອເບິ່ງແອັບຫຼ້າສຸດ, ໃຫ້ໃຊ້ 3 ນິ້ວປັດຂຶ້ນ ແລ້ວຄ້າງໄວ້ເທິງແຜ່ນສໍາຜັດ"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"ເພື່ອເບິ່ງແອັບທັງໝົດຂອງທ່ານ, ໃຫ້ກົດປຸ່ມຄຳສັ່ງຢູ່ແປ້ນພິມຂອງທ່ານ"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"ໃຊ້ແຜ່ນສໍາຜັດຂອງທ່ານເພື່ອກັບຄືນ"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"ໃຊ້ 3 ນິ້ວປັດຊ້າຍ ຫຼື ຂວາ. ແຕະເພື່ອສຶກສາທ່າທາງເພີ່ມເຕີມ."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"ໃຊ້ແຜ່ນສໍາຜັດຂອງທ່ານເພື່ອໄປຫາໜ້າຫຼັກ"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"ໃຊ້ 3 ນິ້ວປັດຂຶ້ນ. ແຕະເພື່ອສຶກສາທ່າທາງເພີ່ມເຕີມ."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"ໃຊ້ແຜ່ນສໍາຜັດຂອງທ່ານເພື່ອເບິ່ງແອັບຫຼ້າສຸດ"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"ໃຊ້ 3 ນິ້ວປັດຂຶ້ນ ແລ້ວຄ້າງໄວ້. ແຕະເພື່ອສຶກສາທ່າທາງເພີ່ມເຕີມ."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"ໃຊ້ແປ້ນພິມຂອງທ່ານເພື່ອເບິ່ງແອັບທັງໝົດ"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"ກົດປຸ່ມຄຳສັ່ງໄດ້ທຸກເວລາ. ແຕະເພື່ອສຶກສາທ່າທາງເພີ່ມເຕີມ."</string>
</resources>
diff --git a/packages/SystemUI/res/values-lo/tiles_states_strings.xml b/packages/SystemUI/res/values-lo/tiles_states_strings.xml
index f33514af191f..f42e5ce91c88 100644
--- a/packages/SystemUI/res/values-lo/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-lo/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"ປິດ"</item>
<item msgid="4875147066469902392">"ເປີດ"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"ບໍ່ພ້ອມນຳໃຊ້"</item>
+ <item msgid="2004750556637773692">"ປິດ"</item>
+ <item msgid="8968530753931637871">"ເປີດ"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"ບໍ່ສາມາດໃຊ້ໄດ້"</item>
<item msgid="5044688398303285224">"ປິດ"</item>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index a395f2d2e4b9..2d48ccfb920b 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Palieskite, kad peržiūrėtumėte"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Išsaugant ekrano įrašą įvyko klaida"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Pradedant ekrano vaizdo įrašymą iškilo problema"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Sustabdyti įrašymą?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Šiuo metu įrašote visą ekraną"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Šiuo metu įrašote šią programą: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Sustabdyti įrašymą"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Bendrinamas ekranas"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Nebebendrinti ekrano?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Šiuo metu bendrinate visą ekraną su šia programa: <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Šiuo metu bendrinate visą ekraną su programa"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Šiuo metu bendrinate šią programą: <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Šiuo metu bendrinate programą"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Nebebendrinti"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Perduodamas ekranas"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Sustabdyti perdavimą?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Šiuo metu perduodate visą ekraną į šį įrenginį: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Šiuo metu perduodate visą ekraną į įrenginį netoliese"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Šiuo metu perduodate programą (<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>) į šį įrenginį: <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Šiuo metu į įrenginį netoliese perduodate šią programą: <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Šiuo metu perduodate į šį įrenginį: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Šiuo metu perduodate į įrenginį netoliese"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Sustabdyti perdavimą"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Uždaryti"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Problemų įrašytuvas"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Ekrano užsklanda"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Eternetas"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Netrukdymo režimas"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioriteto režimai"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Nėra pasiekiamų susietų įrenginių"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Palieskite, kad prijungtumėte ar atjungtumėte įrenginį"</string>
@@ -440,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Atidaryti nustatymus"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Kitas įrenginys"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Perjungti apžvalgą"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioriteto režimai"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Atlikta"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Nustatymai"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"Įjungta"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"Išjungta"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"Jūsų netrikdys garsai ir vibravimas, išskyrus nurodytų signalų, priminimų, įvykių ir skambintojų garsus. Vis tiek girdėsite viską, ką pasirinksite leisti, įskaitant muziką, vaizdo įrašus ir žaidimus."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Jūsų netrikdys garsai ir vibravimas, išskyrus signalus. Vis tiek girdėsite viską, ką pasirinksite leisti, įskaitant muziką, vaizdo įrašus ir žaidimus."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Tinkinti"</string>
@@ -504,10 +495,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"pasirinkite valdiklį"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"pašalinti valdiklį"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"padėti pasirinktą valdiklį"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
- <skip />
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Užrakinimo ekrano valdikliai"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Visi gali žr. valdiklius užrakinimo ekrane, net užrakinus planšetinį kompiuterį."</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"atšaukti valdiklio pasirinkimą"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Užrakinimo ekrano valdikliai"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Kad galėtumėte atidaryti programą naudodami valdiklį, turėsite patvirtinti savo tapatybę. Be to, atminkite, kad bet kas gali peržiūrėti valdiklius net tada, kai planšetinis kompiuteris užrakintas. Kai kurie valdikliai gali būti neskirti jūsų užrakinimo ekranui ir gali būti nesaugu juos čia pridėti."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Supratau"</string>
@@ -564,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Pradėti dabar"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Nėra įspėjimų"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Naujų pranešimų nėra"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptyvieji pranešimai įjungti"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Dabar, gaunant daug pranešimų per trumpą laiką, sumažinamas įrenginio garsumas ir iššokančiųjų langų skaičius ekrane iki dviejų minučių."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Išjungti"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Atrakinę matykite senesnius pranešimus"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Šį įrenginį tvarko vienas iš tavo tėvų"</string>
@@ -732,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Numatytasis"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatinis"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Neskamba ir nevibruoja"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Nėra garso ir vibravimo, bet vis tiek rodoma pokalbių skiltyje"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Gali skambėti arba vibruoti, atsižvelgiant į įrenginio nustatymus"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Gali skambėti arba vibruoti, atsižvelgiant į įrenginio nustatymus. Pokalbiai iš „<xliff:g id="APP_NAME">%1$s</xliff:g>“ debesėlio pagal numatytuosius nustatymus."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Nustatykite, kad sistema aptiktų, ar šis pranešimas turi skambėti, ar vibruoti"</string>
@@ -790,8 +781,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Ankstesnis puslapis"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Tolesnis puslapis"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Ištrinti"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Pagrindinis"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Baigti"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Įterpti"</string>
@@ -1374,8 +1364,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Išskaidyto ekrano režimas"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Įvestis"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Programos šaukiniai"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Esama programa"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Pritaikomumas"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Spartieji klavišai"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Paieškos šaukiniai"</string>
@@ -1395,6 +1384,17 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%1$d lygis iš %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Namų sistemos valdymas"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Pasiekite namų sistemos valdymą ekrano užsklandoje"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
- <skip />
+ <string name="volume_undo_action" msgid="5815519725211877114">"Anuliuoti"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"Jei norite grįžti, jutiklinėje dalyje trimis pirštais perbraukite kairėn arba dešinėn"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"Jei norite eiti į pagrindinį ekraną, jutiklinėje dalyje perbraukite aukštyn trimis pirštais"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"Peržiūrėkite naujausias programas, jutiklinėje dalyje perbraukę aukštyn trimis pirštais ir palaikę"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Jei norite peržiūrėti visas programas, paspauskite klaviatūros veiksmų klavišą"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"Naudokite klaviatūrą, kad grįžtumėte atgal"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"Perbraukite į kairę ar dešinę trimis pirštais. Palieskite, kad sužinotumėte daugiau gestų."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"Naudokite jutiklinę dalį, jei norite eiti į pagrindinį ekraną"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"Perbraukite aukštyn trimis pirštais. Palieskite, kad sužinotumėte daugiau gestų."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"Naudokite klaviatūrą, kad peržiūrėtumėte naujausias programas"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"Perbraukite aukštyn trimis pirštais ir palaikykite. Palieskite, kad sužinotumėte daugiau gestų."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"Naudokite klaviatūrą, kad peržiūrėtumėte visas programas"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"Bet kuriuo metu paspauskite veiksmų klavišą. Palieskite, kad sužinotumėte daugiau gestų."</string>
</resources>
diff --git a/packages/SystemUI/res/values-lt/tiles_states_strings.xml b/packages/SystemUI/res/values-lt/tiles_states_strings.xml
index 30584f7ef681..90d2e8bc7eb9 100644
--- a/packages/SystemUI/res/values-lt/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-lt/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Išjungta"</item>
<item msgid="4875147066469902392">"Įjungta"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Nepasiekiama"</item>
+ <item msgid="2004750556637773692">"Išjungta"</item>
+ <item msgid="8968530753931637871">"Įjungta"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Nepasiekiama"</item>
<item msgid="5044688398303285224">"Išjungta"</item>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 3f54b4e5d6d9..c7b1c966dad1 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Pieskarieties, lai skatītu"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Saglabājot ekrāna ierakstu, radās kļūda."</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Sākot ierakstīt ekrāna saturu, radās kļūda."</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Vai apturēt ierakstīšanu?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Pašlaik ierakstāt visu ekrānu"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Pašlaik ierakstāt lietotni <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Apturēt ierakstīšanu"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Notiek ekrāna kopīgošana"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Vai apturēt ekrāna kopīgošanu?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Pašlaik kopīgojat visu ekrānu ar lietotni <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Pašlaik kopīgojat visu ekrānu ar lietotni"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Pašlaik kopīgojat lietotni <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Pašlaik kopīgojat lietotni"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Apturēt kopīgošanu"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Notiek ekrāna apraide"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Vai pārtraukt apraidi?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Pašlaik apraidāt visu ekrānu ierīcē <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Pašlaik apraidāt visu ekrānu tuvumā esošā ierīcē"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Pašlaik apraidāt lietotni <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ierīcē <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Pašlaik apraidāt lietotni <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> tuvumā esošā ierīcē"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Pašlaik apraidāt saturu ierīcē <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Pašlaik apraidāt saturu tuvumā esošā ierīcē"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Apturēt apraidi"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Aizvērt"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Problēmu ierakstītājs"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Ekrānsaudzētājs"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Tīkls Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Režīms “Netraucēt”"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioritātes režīmi"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Nav pieejama neviena pārī savienota ierīce."</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Lai pievienotu vai atvienotu kādu ierīci, pieskarieties."</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Atvērt iestatījumus"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Cita ierīce"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Pārskata pārslēgšana"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioritātes režīmi"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Gatavs"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Iestatījumi"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Jūs netraucēs skaņas un vibrācija, izņemot signālus, atgādinājumus, pasākumus un zvanītājus, ko būsiet norādījis. Jūs joprojām dzirdēsiet atskaņošanai izvēlētos vienumus, tostarp mūziku, videoklipus un spēles."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Jūs netraucēs skaņas un vibrācija, izņemot signālus. Jūs joprojām dzirdēsiet atskaņošanai izvēlētos vienumus, tostarp mūziku, videoklipus un spēles."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Pielāgot"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"atlasīt logrīku"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"noņemt logrīku"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"novietot atlasīto logrīku"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Bloķēšanas ekrāna logrīki"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Jebkurš var skatīt logrīkus bloķēšanas ekrānā, pat ja planšetdators ir bloķēts."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Bloķēšanas ekrāna logrīki"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Lai atvērtu lietotni, izmantojot logrīku, jums būs jāapstiprina sava identitāte. Turklāt ņemiet vērā, ka ikviens var skatīt logrīkus, pat ja planšetdators ir bloķēts. Iespējams, daži logrīki nav paredzēti izmantošanai bloķēšanas ekrānā, un var nebūt droši tos šeit pievienot."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Sākt tūlīt"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Nav paziņojumu"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Nav jaunu paziņojumu"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptīvie paziņojumi ieslēgti"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Jūsu ierīce tagad līdz pat 2 minūtēm samazina skaļuma līmeni un ierobežo uznirstošo elementu skaitu, kad īsā laika posmā saņemat daudzu paziņojumu."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Izslēgt"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Atbloķējiet vecāku paziņojumu skatīšanai"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Šo ierīci pārvalda viens no jūsu vecākiem."</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Noklusējums"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automātiski"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Nav skaņas signāla vai vibrācijas"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Netiek aktivizēts skaņas signāls vai vibrācija, tomēr paziņojums tiek rādīts sarunu sadaļā."</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Atkarībā no iestatījumiem var zvanīt vai vibrēt"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Atkarībā no ierīces iestatījumiem var zvanīt vai vibrēt. Sarunas no lietotnes <xliff:g id="APP_NAME">%1$s</xliff:g> pēc noklusējuma tiek parādītas burbulī."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Iestatiet, lai sistēma noteiktu, vai šim paziņojumam būs skaņa vai vibrācija"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Lapa uz augšu"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Lapa uz leju"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Dzēšanas taustiņš"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Atsoļa taustiņš"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Sākumvietas taustiņš"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Beigvietas taustiņš"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Ievietošanas taustiņš"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Ekrāna sadalīšana"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Ievade"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Lietotņu saīsnes"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Pašreizējā lietotne"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Pieejamība"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Īsinājumtaustiņi"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Meklēšanas saīsnes"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Līmenis numur %1$d, kopā ir %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Mājas kontrolierīces"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Ātra piekļuve mājas kontrolierīcēm ekrānsaudzētājā"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Atsaukt"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-lv/tiles_states_strings.xml b/packages/SystemUI/res/values-lv/tiles_states_strings.xml
index 8d23ef11d18c..4103c0aef9e3 100644
--- a/packages/SystemUI/res/values-lv/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-lv/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Izslēgts"</item>
<item msgid="4875147066469902392">"Ieslēgts"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Nav pieejams"</item>
+ <item msgid="2004750556637773692">"Izslēgts"</item>
+ <item msgid="8968530753931637871">"Ieslēgts"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Nav pieejams"</item>
<item msgid="5044688398303285224">"Izslēgts"</item>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index 6eaf8b9883bc..052945e61b77 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Допрете за прегледување"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Грешка при зачувувањето на снимката од екранот"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Грешка при почетокот на снимањето на екранот"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Да се сопре снимањето?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Во моментов го снимате целиот екран"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Во моментов ја снимате <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Сопри го снимањето"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Се споделува екранот"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Да се сопре споделувањето на екранот?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Во моментов го споделувате целиот екран со <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Во моментов го споделувате целиот екран со апликација"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Во моментов ја споделувате <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Во моментов споделувате апликација"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Сопри го споделувањето"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Се емитува екранот"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Да се сопре емитувањето?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Во моментов го емитувате целиот екран на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Во моментов го емитувате целиот екран на уред во близина"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Во моментов ја емитувате <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> на <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Во моментов ја емитувате <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> на уред во близина"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Во моментов емитувате на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Во моментов емитувате на уред во близина"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Сопри го емитувањето"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Затвори"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Проблем со „Диктафон“"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Штедач на екран"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Етернет"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Не вознемирувај"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Приоритетни режими"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Нема достапни спарени уреди"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Допрете за да воспоставите или да прекинете врска со уред"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Отворете „Поставки“"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Друг уред"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Вклучи/исклучи преглед"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Приоритетни режими"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Готово"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Поставки"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Нема да ве вознемируваат звуци и вибрации, освен од аларми, потсетници, настани и повикувачи што ќе ги наведете. Сѐ уште ќе слушате сѐ што ќе изберете да пуштите, како музика, видеа и игри."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Нема да ве вознемируваат звуци и вибрации, освен од аларми. Сѐ уште ќе слушате сѐ што ќе изберете да пуштите, како музика, видеа и игри."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Приспособи"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"изберете виџет"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"отстранете го виџетот"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"поставете го избраниот виџет"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Виџети на заклучен екран"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Секој може да гледа виџети на заклучениот екран, дури и ако таблетот е заклучен."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Виџети на заклучен екран"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"За да отворите апликација со помош на виџет, ќе треба да потврдите дека сте вие. Покрај тоа, имајте предвид дека секој може да ги гледа виџетите, дури и кога вашиот таблет е заклучен. Некои виџети можеби не се наменети за вашиот заклучен екран, па можеби не е безбедно да се додадат овде."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Започни сега"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Нема известувања"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Нема нови известувања"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Адаптивни известув.: вклучено"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Уредот сега ја намалува јачината на звукот и ги намалува скокачките прозорци на екранот до 2 мин. кога добивате многу известувања за кратко време."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Исклучи"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Отклучете за да ги видите старите известувања"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Родителот управува со уредов"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Стандардно"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Автоматски"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Без звук или вибрации"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Нема звук или вибрации, но сепак се појавува во делот за разговор"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Може да ѕвони или да вибрира во зависност од поставките за уредот"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Може да ѕвони или да вибрира во зависност од поставките за уредот. Стандардно, разговорите од <xliff:g id="APP_NAME">%1$s</xliff:g> се во балончиња."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Дозволете системот да определи дали известувањево треба да испушти звук или да вибрира"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Страница нагоре"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Страница надолу"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Избриши"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home-копче"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Крај"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Вметни"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Поделен екран"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Внесување"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Кратенки за апликации"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Тековна апликација"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Пристапност"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Кратенки од тастатура"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Кратенки за пребарување"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Ниво %1$d од %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Контроли за домот"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Контролите за домот како штедач на екран"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Врати"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-mk/tiles_states_strings.xml b/packages/SystemUI/res/values-mk/tiles_states_strings.xml
index 08cdc090a4bf..5e9f5bd13a90 100644
--- a/packages/SystemUI/res/values-mk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-mk/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Исклучено"</item>
<item msgid="4875147066469902392">"Вклучено"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Недостапно"</item>
+ <item msgid="2004750556637773692">"Исклучено"</item>
+ <item msgid="8968530753931637871">"Вклучено"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Недостапно"</item>
<item msgid="5044688398303285224">"Исклучено"</item>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index 5877d2b3d919..b43be14f686b 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"സ്ക്രീൻ സേവർ"</string>
<string name="ethernet_label" msgid="2203544727007463351">"ഇതർനെറ്റ്"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"ശല്യപ്പെടുത്തരുത്"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"മുൻഗണനാ മോഡുകൾ"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"ജോടിയാക്കിയ ഉപകരണങ്ങളൊന്നും ലഭ്യമല്ല"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"ഒരു ഉപകരണം കണക്റ്റ് ചെയ്യാനോ വിച്ഛേദിക്കാനോ ടാപ്പ് ചെയ്യുക"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"ക്രമീകരണം തുറക്കുക"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"മറ്റ് ഉപകരണം"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"അവലോകനം മാറ്റുക"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"മുൻഗണനാ മോഡുകൾ"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"ശരി"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"ക്രമീകരണം"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"നിങ്ങൾ സജ്ജീകരിച്ച അലാറങ്ങൾ, റിമൈൻഡറുകൾ, ഇവന്റുകൾ, കോളർമാർ എന്നിവയിൽ നിന്നുള്ള ശബ്‌ദങ്ങളും വൈബ്രേഷനുകളുമൊഴികെ മറ്റൊന്നും നിങ്ങളെ ശല്യപ്പെടുത്തുകയില്ല. സംഗീതം, വീഡിയോകൾ, ഗെയിമുകൾ എന്നിവയുൾപ്പെടെ പ്ലേ ചെയ്യുന്നതെന്തും നിങ്ങൾക്ക് ‌തുടർന്നും കേൾക്കാൻ കഴിയും."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"അലാറങ്ങളിൽ നിന്നുള്ള ശബ്‌ദങ്ങളും വൈബ്രേഷനുകളുമൊഴികെ മറ്റൊന്നും നിങ്ങളെ ശല്യപ്പെടുത്തുകയില്ല. സംഗീതം, വീഡിയോകൾ, ഗെയിമുകൾ എന്നിവയുൾപ്പെടെ പ്ലേ ചെയ്യുന്നതെന്തും നിങ്ങൾക്ക് ‌തുടർന്നും കേൾക്കാൻ കഴിയും."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"ഇഷ്‌ടാനുസൃതമാക്കുക"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"തിരഞ്ഞെടുത്ത വിജറ്റ് നൽകുക"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"ലോക്ക് സ്‌ക്രീൻ വിജറ്റുകൾ"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"ടാബ്‌ലെറ്റ് ലോക്കാണെങ്കിൽ പോലും ലോക്ക് സ്ക്രീനിൽ ആർക്കും വിജറ്റുകൾ കാണാം."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"ലോക്ക് സ്‌ക്രീൻ വിജറ്റുകൾ"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"വിജറ്റ് ഉപയോഗിച്ച് ഒരു ആപ്പ് തുറക്കാൻ, ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കേണ്ടതുണ്ട്. നിങ്ങളുടെ ടാബ്‌ലെറ്റ് ലോക്കായിരിക്കുമ്പോഴും എല്ലാവർക്കും അത് കാണാനാകുമെന്നതും ഓർക്കുക. ചില വിജറ്റുകൾ നിങ്ങളുടെ ലോക്ക് സ്‌ക്രീനിന് ഉള്ളതായിരിക്കില്ല, അവ ഇവിടെ ചേർക്കുന്നത് സുരക്ഷിതവുമായിരിക്കില്ല."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"മനസ്സിലായി"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"ഇപ്പോൾ ആരംഭിക്കുക"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"അറിയിപ്പുകൾ ഒന്നുമില്ല"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"പുതിയ അറിയിപ്പുകളൊന്നുമില്ല"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"അഡാപ്‌റ്റീവ് അറിയിപ്പുകൾ ഓണാണ്"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"ചെറിയ കാലയളവിനുള്ളിൽ നിങ്ങൾക്ക് നിരവധി അറിയിപ്പുകൾ ലഭിക്കുമ്പോൾ ഉപകരണം ഇപ്പോൾ വോളിയം കുറയ്ക്കുകയും സ്ക്രീനിൽ പോപ്പ് അപ്പുകൾ രണ്ട് മിനിറ്റ് വരെ ചുരുക്കുകയും ചെയ്യുന്നു."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"ഓഫാക്കുക"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"പഴയ അറിയിപ്പുകൾ കാണാൻ അൺലോക്ക് ചെയ്യുക"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"ഈ ഉപകരണം മാനേജ് ചെയ്യുന്നത് നിങ്ങളുടെ രക്ഷിതാവാണ്"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ഡിഫോൾട്ട്"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"സ്വയമേവ"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"ശബ്ദമോ വൈബ്രേഷനോ ഇല്ല"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ശബ്ദമോ വൈബ്രേഷനോ ഇല്ലെങ്കിലും സംഭാഷണ വിഭാഗത്തിൽ ഇപ്പോഴും ദൃശ്യമാകുന്നു"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"ഉപകരണ ക്രമീകരണം അടിസ്ഥാനമാക്കി റിംഗ് ചെയ്യും അല്ലെങ്കിൽ വൈബ്രേറ്റ് ചെയ്യും"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"ഉപകരണ ക്രമീകരണം അടിസ്ഥാനമാക്കി റിംഗ് ചെയ്യും അല്ലെങ്കിൽ വൈബ്രേറ്റ് ചെയ്യും. <xliff:g id="APP_NAME">%1$s</xliff:g> എന്ന ആപ്പിൽ നിന്നുള്ള സംഭാഷണങ്ങൾ ഡിഫോൾട്ടായി ബബിൾ ചെയ്യുന്നു."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ഈ അറിയിപ്പ് വരുമ്പോൾ ശബ്‌ദിക്കുകയാണോ വൈബ്രേറ്റ് ചെയ്യുകയാണോ വേണ്ടതെന്ന് നിർണ്ണയിക്കാൻ സിസ്‌റ്റത്തെ അനുവദിക്കുക"</string>
@@ -1378,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%2$d-ൽ %1$d-ാമത്തെ ലെവൽ"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"ഹോം കൺട്രോളുകൾ"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"സ്‌ക്രീൻസേവറായി ഹോം കൺട്രോളുകൾ പെട്ടെന്ന് ആക്‌സസ് ചെയ്യൂ"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"പഴയപടിയാക്കുക"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ml/tiles_states_strings.xml b/packages/SystemUI/res/values-ml/tiles_states_strings.xml
index 5999e3cfcb8f..6b4e9378308c 100644
--- a/packages/SystemUI/res/values-ml/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ml/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"ഓഫാണ്"</item>
<item msgid="4875147066469902392">"ഓണാണ്"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"ലഭ്യമല്ല"</item>
+ <item msgid="2004750556637773692">"ഓഫാണ്"</item>
+ <item msgid="8968530753931637871">"ഓണാണ്"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"ലഭ്യമല്ല"</item>
<item msgid="5044688398303285224">"ഓഫാണ്"</item>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index 2e0115f5c4e6..673628818a34 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Харахын тулд товшино уу"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Дэлгэцийн бичлэгийг хадгалахад алдаа гарлаа"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Дэлгэцийн бичлэгийг эхлүүлэхэд алдаа гарлаа"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Бичлэгийг зогсоох уу?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Та одоогоор дэлгэцээ бүтнээр нь бичиж байна"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Та одоогоор <xliff:g id="APP_NAME">%1$s</xliff:g>-г бичиж байна"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Бичихийг зогсоох"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Дэлгэцийг хуваалцаж байна"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Дэлгэцийг хуваалцахыг зогсоох уу?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Та одоогоор дэлгэцээ бүтнээр нь <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>-тай хуваалцаж байна"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Та одоогоор дэлгэцээ бүтнээр нь нэг апптай хуваалцаж байна"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Та одоогоор <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>-г хуваалцаж байна"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Та одоогоор нэг аппыг хуваалцаж байна"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Хуваалцахыг зогсоох"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Дэлгэцийг дамжуулж байна"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Дамжуулахaa болих уу?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Та одоогоор дэлгэцээ бүтнээр нь <xliff:g id="DEVICE_NAME">%1$s</xliff:g> руу дамжуулж байна"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Та одоогоор дэлгэцээ бүтнээр нь ойролцоох төхөөрөмж рүү дамжуулж байна"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Та одоогоор <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>-г <xliff:g id="DEVICE_NAME">%2$s</xliff:g> руу дамжуулж байна"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Та одоогоор <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>-г ойролцоох төхөөрөмж рүү дамжуулж байна"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Та одоогоор <xliff:g id="DEVICE_NAME">%1$s</xliff:g> руу дамжуулж байна"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Та одоогоор ойролцоох төхөөрөмж рүү дамжуулж байна"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Дамжуулахыг зогсоох"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Хаах"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Асуудал бичигч"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Дэлгэц амраагч"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Этернет"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Бүү саад бол"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Чухал байдлаар нь ангилах горим"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Хослуулсан төхөөрөмж байхгүй"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Төхөөрөмжийг холбох эсвэл салгахын тулд товшино уу"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Тохиргоог нээх"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Бусад төхөөрөмж"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Тоймыг асаах/унтраах"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Чухал байдлаар нь ангилах горим"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Болсон"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Тохиргоо"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Танд сэрүүлэг, сануулга, арга хэмжээ, таны сонгосон дуудлага илгээгчээс бусад дуу, чичиргээ саад болохгүй. Та хөгжим, видео, тоглоом зэрэг тоглуулахыг хүссэн бүх зүйлээ сонсох боломжтой хэвээр байна."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Танд сэрүүлгээс бусад дуу, чичиргээ саад болохгүй. Та хөгжим, видео, тоглоом зэрэг тоглуулахыг хүссэн бүх зүйлээ сонсох боломжтой хэвээр байна."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Тохируулах"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"виджет сонгох"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"виджетийг хасах"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"сонгосон виджетийг байрлуулах"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Түгжээтэй дэлгэцийн виджет"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Таны таблет түгжээтэй байсан ч түгжээтэй дэлгэцийн виджетийг тань дурын хүн үзнэ"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Түгжээтэй дэлгэцийн виджет"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Виджет ашиглан аппыг нээхийн тулд та өөрийгөө мөн болохыг баталгаажуулах шаардлагатай болно. Мөн таны таблет түгжээтэй байсан ч тэдгээрийг дурын хүн үзэж болохыг санаарай. Зарим виджет таны түгжээтэй дэлгэцэд зориулагдаагүй байж магадгүй ба энд нэмэхэд аюултай байж болзошгүй."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Одоо эхлүүлэх"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Мэдэгдэл байхгүй"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Шинэ мэдэгдэл алга"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Дасан зохицох мэдэгдэл ассан"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Таныг богино хугацаанд олон мэдэгдэл авахад таны төхөөрөмж одоо дууны түвшнийг багасгаж, дэлгэц дээрх попапыг хоёр хүртэлх минутын турш багасгана."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Унтраах"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Хуучин мэдэгдлийг харах бол түгжээг тайл"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Энэ төхөөрөмжийг таны эцэг эх удирддаг"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Өгөгдмөл"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Автомат"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Дуу эсвэл чичиргээ байхгүй"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Дуу чимээ эсвэл чичиргээгүй хэдий ч харилцан ярианы хэсэгт харагдсаар байна"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Төхөөрөмжийн тохиргоонд тулгуурлан хонх дуугаргах эсвэл чичиргэж болзошгүй"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Төхөөрөмжийн тохиргоонд тулгуурлан хонх дуугаргах эсвэл чичиргэж болзошгүй. <xliff:g id="APP_NAME">%1$s</xliff:g>-н харилцан яриаг өгөгдмөлөөр бөмбөлөг болгоно."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Энэ мэдэгдэл дуу гаргах эсвэл чичрэх эсэхийг системээр тодорхойлуулаарай"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Хуудас дээш"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Хуудас доош"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Устгах"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Нүүр хуудас"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Төгсгөл"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Оруулах"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Дэлгэцийг хуваах"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Оролт"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Аппын товчлол"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Одоогийн апп"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Хандалт"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Товчлуурын шууд холбоос"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Товчлолууд хайх"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%2$d-с %1$d-р түвшин"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Гэрийн удирдлага"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Гэрийн удирдлагадаа дэлгэц амраагчаар шуурхай ханд"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Болих"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-mn/tiles_states_strings.xml b/packages/SystemUI/res/values-mn/tiles_states_strings.xml
index b39457484a47..5a32c09d152c 100644
--- a/packages/SystemUI/res/values-mn/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-mn/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Унтраалттай"</item>
<item msgid="4875147066469902392">"Асаалттай"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Боломжгүй"</item>
+ <item msgid="2004750556637773692">"Унтраалттай"</item>
+ <item msgid="8968530753931637871">"Асаалттай"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Боломжгүй"</item>
<item msgid="5044688398303285224">"Унтраалттай"</item>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index ed870c7b435d..245b42f93092 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -426,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"सेटिंग्ज उघडा"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"इतर डिव्हाइस"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"अवलोकन टॉगल करा."</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"प्राधान्य मोड"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"पूर्ण झाले"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"सेटिंग्ज"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"सुरू आहे"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"बंद आहे"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"अलार्म, रिमाइंडर, इव्‍हेंट आणि तुम्ही निश्चित केलेल्या कॉलर व्यतिरिक्त तुम्हाला कोणत्याही आवाज आणि कंपनांचा व्यत्त्यय आणला जाणार नाही. तरीही तुम्ही प्ले करायचे ठरवलेले कोणतेही संगीत, व्हिडिओ आणि गेमचे आवाज ऐकू शकतात."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"अलार्म व्यतिरिक्त तुम्हाला कोणत्याही आवाज आणि कंपनांचा व्यत्त्यय आणला जाणार नाही. तरीही तुम्ही प्ले करायचे ठरवलेले कोणतेही संगीत, व्हिडिओ आणि गेमचे आवाज ऐकू शकतात."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"सानुकूलित करा"</string>
@@ -492,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"निवडलेले विजेट ठेवा"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"लॉक स्‍क्रीन विजेट"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"तुमचा टॅबलेट लॉक केला, तरी कोणीही तुमच्या लॉक स्क्रीनवरील विजेट पाहू शकतो."</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"विजेटची निवड रद्द करा"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"लॉक स्‍क्रीन विजेट"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"विजेट वापरून अ‍ॅप उघडण्यासाठी, तुम्हाला हे तुम्हीच असल्याची पडताळणी करावी लागेल. तसेच, लक्षात ठेवा, तुमचा टॅबलेट लॉक असतानादेखील कोणीही ती पाहू शकते. काही विजेट कदाचित तुमच्या लॉक स्‍क्रीनसाठी नाहीत आणि ती इथे जोडणे असुरक्षित असू शकते."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"समजले"</string>
@@ -548,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"आता सुरू करा"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"सूचना नाहीत"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"नवीन सूचना नाहीत"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"अडॅप्टिव्ह नोटिफिकेशन सुरू आहे"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"कमी वेळेत खूप नोटिफिकेशन मिळल्यास डिव्हाइस आता कमाल २ मिनिटे व्हॉल्यूम, स्क्रीनवरील पॉप-अप कमी करते."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"बंद करा"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"जुन्या सूचना पाहण्यासाठी अनलॉक करा"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"हे डिव्हाइस तुमच्या पालकाने व्यवस्थापित केले आहे"</string>
@@ -716,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"डीफॉल्ट"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ऑटोमॅटिक"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"आवाज किंवा व्हायब्रेशन नाही"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"आवाज किंवा व्हायब्रेशन नाही, पण तरीही संभाषण विभागामध्ये दिसते"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"डिव्‍हाइस सेटिंग्जनुसार रिंग किंवा व्हायब्रेट होऊ शकतो"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"डिव्‍हाइस सेटिंग्जनुसार रिंग किंवा व्हायब्रेट होऊ शकतो. <xliff:g id="APP_NAME">%1$s</xliff:g> मधील संभाषणे बाय डीफॉल्ट बबल होतात."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ही सूचना मिळाल्‍यावर आवाज व्‍हावा की व्हायब्रेशन व्‍हावे ते सिस्‍टममध्ये नमूद करा"</string>
@@ -1378,4 +1385,16 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"होम कंट्रोल"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"स्क्रीनसेव्हर म्हणून होम कंट्रोल झटपट ॲक्सेस करा"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"पहिल्यासारखे करा"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"मागे जाण्यासाठी, टचपॅडवर तीन बोटांनी डावीकडे किंवा उजवीकडे स्वाइप करा"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"होमवर जाण्यासाठी, टचपॅडवर तीन बोटांनी वरती स्वाइप करा"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"अलीकडील ॲप्स पाहण्यासाठी, टचपॅडवर तीन बोटांनी वरती स्वाइप करा आणि धरून ठेवा"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"तुमची सर्व ॲप्स पाहण्यासाठी, तुमच्या कीबोर्डवरील अ‍ॅक्शन की प्रेस करा"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"मागे जाण्यासाठी तुमचा टचपॅड वापरा"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"तीन बोटांनी डावीकडे किंवा उजवीकडे स्वाइप करा. आणखी जेश्चर जाणून घेण्यासाठी टॅप करा."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"होमवर जाण्यासाठी तुमचा टचपॅड वापरा"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"तीन बोटांनी वरती स्‍वाइप करा. आणखी जेश्चर जाणून घेण्यासाठी टॅप करा."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"अलीकडील अ‍ॅप्स पाहण्यासाठी तुमचा टचपॅड वापरा"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"तीन बोटांनी वरती आणि खाली स्वाइप करा. आणखी जेश्चर जाणून घेण्यासाठी टॅप करा."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"सर्व ॲप्स पाहण्यासाठी तुमचा कीबोर्ड वापरा"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"अ‍ॅक्शन की कधीही प्रेस करा. आणखी जेश्चर जाणून घेण्यासाठी टॅप करा."</string>
</resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index 43e97168d687..bca52729118f 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -426,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Buka Tetapan"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Peranti lain"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Togol Ikhtisar"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Mod keutamaan"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Selesai"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Tetapan"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"Hidup"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"Mati"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"Anda tidak akan diganggu oleh bunyi dan getaran, kecuali daripada penggera, peringatan, acara dan pemanggil yang anda tetapkan. Anda masih mendengar item lain yang anda pilih untuk dimainkan termasuk muzik, video dan permainan."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Anda tidak akan diganggu oleh bunyi dan getaran, kecuali daripada penggera. Anda masih mendengar item lain yang anda pilih untuk dimainkan termasuk muzik, video dan permainan."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Peribadikan"</string>
@@ -492,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"letakkan widget dipilih"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Widget skrin kunci"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Sesiapa sahaja boleh melihat widget pada skrin kunci, walaupun tablet dikunci."</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"nyahpilih widget"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widget skrin kunci"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Untuk membuka apl menggunakan widget, anda perlu mengesahkan identiti anda. Selain itu, perlu diingat bahawa sesiapa sahaja boleh melihat widget tersebut, walaupun semasa tablet anda dikunci. Sesetengah widget mungkin tidak sesuai untuk skrin kunci anda dan mungkin tidak selamat untuk ditambahkan di sini."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>
@@ -548,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Mulakan sekarang"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Tiada pemberitahuan"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Tiada pemberitahuan baharu"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Pemberitahuan boleh suai dihidupkan"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Kelantangan &amp; tetingkap timbul pada skrin peranti anda dikurangkan selama dua minit apabila banyak pemberitahuan diterima dalam masa yang singkat."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Matikan"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Buka kunci untuk melihat pemberitahuan lama"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Peranti ini diurus oleh ibu bapa anda"</string>
@@ -716,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Lalai"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatik"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Tiada bunyi atau getaran"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Tiada bunyi atau getaran tetapi masih dipaparkan dalam bahagian perbualan"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Mungkin berbunyi atau bergetar berdasarkan tetapan peranti"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Mungkin berbunyi atau bergetar berdasarkan tetapan peranti. Perbualan daripada gelembung <xliff:g id="APP_NAME">%1$s</xliff:g> secara lalai."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Minta sistem menentukan jika pemberitahuan ini patut menghasilkan bunyi atau getaran"</string>
@@ -1378,4 +1385,16 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"Kawalan Rumah"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Jadikan kawalan rumah anda sebagai penyelamat skrin"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"Buat asal"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"Untuk kembali, leret ke kiri atau ke kanan dengan tiga jari pada pad sentuh"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"Untuk mengakses laman utama, leret ke atas dengan tiga jari pada pad sentuh"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"Untuk melihat apl terbaharu, leret ke atas dan tahan dengan tiga jari pada pad sentuh"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Untuk melihat semua apl anda, tekan kekunci tindakan pada papan kekunci anda"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"Gunakan pad sentuh anda untuk kembali"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"Leret ke kiri atau ke kanan dengan tiga jari. Ketik dan ketahui lebih lanjut tentang gerak isyarat."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"Gunakan pad sentuh untuk mengakses laman utama"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"Leret ke atas menggunakan tiga jari. Ketik untuk mengetahui lebih lanjut tentang gerak isyarat."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"Gunakan pad sentuh anda untuk melihat apl terbaharu"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"Leret ke atas, tahan dengan tiga jari. Ketik untuk mengetahui lebih lanjut tentang gerak isyarat."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"Gunakan papan kekunci anda untuk melihat semua apl"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"Tekan kekunci tindakan pada bila-bila masa. Ketik dan ketahui lebih lanjut tentang gerak isyarat."</string>
</resources>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index c1f186abb3a7..c21b11262a27 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"ကြည့်ရှုရန် တို့ပါ"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"ဖန်သားပြင်ရိုက်ကူးမှုကို သိမ်းရာတွင် အမှားရှိသည်"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"ဖန်သားပြင် ရိုက်ကူးမှု စတင်ရာတွင် အမှားအယွင်းရှိနေသည်"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"ရိုက်ကူးခြင်း ရပ်မလား။"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"လောလောဆယ် ဖန်သားပြင်တစ်ခုလုံးကို ရိုက်ကူးနေသည်"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"လောလောဆယ် <xliff:g id="APP_NAME">%1$s</xliff:g> ကို ရိုက်ကူးနေသည်"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"ရိုက်ကူးမှု ရပ်ရန်"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"ဖန်သားပြင်ကို မျှဝေနေသည်"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"ဖန်သားပြင်မျှဝေခြင်း ရပ်မလား။"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"<xliff:g id="HOST_APP_NAME">%1$s</xliff:g> ဖြင့် သင့်ဖန်သားပြင်တစ်ခုလုံးကို လောလောဆယ် မျှဝေနေသည်"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"အက်ပ်ဖြင့် သင့်ဖန်သားပြင်တစ်ခုလုံးကို လောလောဆယ် မျှဝေနေသည်"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ကို လောလောဆယ် မျှဝေနေသည်"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"အက်ပ်ကို လောလောဆယ် မျှဝေနေသည်"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"မျှဝေခြင်း ရပ်ရန်"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"ဖန်သားပြင်ကို ကာစ်လုပ်နေသည်"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"ကာစ်လုပ်ခြင်းကို ရပ်လိုသလား။"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"သင့်ဖန်သားပြင်တစ်ခုလုံးကို <xliff:g id="DEVICE_NAME">%1$s</xliff:g> သို့ လောလောဆယ် ကာစ်လုပ်နေသည်"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"သင့်ဖန်သားပြင်တစ်ခုလုံးကို အနီးတစ်ဝိုက်ရှိ စက်သို့ လောလောဆယ် ကာစ်လုပ်နေသည်"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ကို <xliff:g id="DEVICE_NAME">%2$s</xliff:g> သို့ လောလောဆယ် ကာစ်လုပ်နေသည်"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ကို အနီးတစ်ဝိုက်ရှိ စက်သို့ လောလောဆယ် ကာစ်လုပ်နေသည်"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> သို့ လောလောဆယ် ကာစ်လုပ်နေသည်"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"အနီးတစ်ဝိုက်ရှိ စက်သို့ လောလောဆယ် ကာစ်လုပ်နေသည်"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"ကာစ် ရပ်ရန်"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"ပိတ်ရန်"</string>
<string name="issuerecord_title" msgid="286627115110121849">"ပြဿနာရိုက်ကူးစနစ်"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"စခရင်နားချိန်ပုံ"</string>
<string name="ethernet_label" msgid="2203544727007463351">"အီသာနက်"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"မနှောင့်ယှက်ရ"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"ဦးစားပေးမုဒ်"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"ဘလူးတုသ်"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"ချိတ်တွဲထားသည့် ကိရိယာများ မရှိ"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"စက်ကို ချိတ်ဆက်ရန် (သို့) ချိတ်ဆက်မှုဖြုတ်ရန် တို့ပါ"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"ဆက်တင်များဖွင့်ရန်"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"အခြားစက်ပစ္စည်း"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"ဖွင့်၊ ပိတ် အနှစ်ချုပ်"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"ဦးစားပေးမုဒ်"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"ပြီးပြီ"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"ဆက်တင်များ"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"နှိုးစက်သံ၊ သတိပေးချက်အသံများ၊ ပွဲစဉ်သတိပေးသံများနှင့် သင်ခွင့်ပြုထားသူများထံမှ ဖုန်းခေါ်မှုများမှလွဲ၍ အခြားအသံများနှင့် တုန်ခါမှုများက သင့်ကို အနှောင့်အယှက်ပြုမည် မဟုတ်ပါ။ သို့သော်လည်း သီချင်း၊ ဗီဒီယိုနှင့် ဂိမ်းများအပါအဝင် သင်ကရွေးချယ်ဖွင့်ထားသည့် အရာတိုင်း၏ အသံကိုမူ ကြားနေရဆဲဖြစ်ပါလိမ့်မည်။"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"နှိုးစက်သံမှလွဲ၍ အခြားအသံများနှင့် တုန်ခါမှုများက သင့်ကို အနှောင့်အယှက်ပြုမည် မဟုတ်ပါ။ သို့သော်လည်း သီချင်း၊ ဗီဒီယိုနှင့် ဂိမ်းများအပါအဝင် သင်ကရွေးချယ်ဖွင့်ထားသည့် အရာတိုင်း၏ အသံကိုမူ ကြားနေရဆဲဖြစ်ပါလိမ့်မည်။"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"စိတ်ကြိုက် ပြုလုပ်ရန်"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"ဝိဂျက် ရွေးရန်"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"ဝိဂျက် ဖယ်ရှားရန်"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"ရွေးချယ်ထားသော ဝိဂျက်ကို တင်ရန်"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"လော့ခ်မျက်နှာပြင် ဝိဂျက်များ"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"တက်ဘလက်လော့ခ်ချထားသော်လည်း မည်သူမဆို လော့ခ်မျက်နှာပြင်ဝိဂျက်ကို ကြည့်နိုင်သည်။"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"လော့ခ်မျက်နှာပြင် ဝိဂျက်များ"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ဝိဂျက်သုံး၍ အက်ပ်ဖွင့်ရန်အတွက် သင်ဖြစ်ကြောင်း အတည်ပြုရန်လိုသည်။ ထို့ပြင် သင့်တက်ဘလက် လော့ခ်ချထားချိန်၌ပင် မည်သူမဆို ၎င်းတို့ကို ကြည့်နိုင်ကြောင်း သတိပြုပါ။ ဝိဂျက်အချို့ကို လော့ခ်မျက်နှာပြင်အတွက် ရည်ရွယ်ထားခြင်း မရှိသဖြင့် ဤနေရာတွင် ထည့်ပါက မလုံခြုံနိုင်ပါ။"</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"ယခု စတင်ပါ"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"အကြောင်းကြားချက် မရှိပါ"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"အကြောင်းကြားချက်သစ် မရှိပါ"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"အလိုက်သင့်အကြောင်းကြားချက် ဖွင့်ထားသည်"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"သင့်စက်သည် အချိန်တိုအတွင်း အကြောင်းကြားချက်များစွာ ရပါက အသံတိုးပြီး စခရင်ရှိ ပေါ့ပ်အပ်များကို နှစ်မိနစ်အထိ လျှော့ပေးသည်။"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"ပိတ်ရန်"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"အကြောင်းကြားချက်ဟောင်းကြည့်ရန် လော့ခ်ဖွင့်ပါ"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"ဤစက်ပစ္စည်းကို သင့်မိဘက စီမံခန့်ခွဲသည်"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"မူလ"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"အလိုအလျောက်"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"အသံ သို့မဟုတ် တုန်ခါမှုမရှိပါ"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"အသံမကြားရ (သို့) တုန်ခါမှုမရှိသော်လည်း စကားဝိုင်းကဏ္ဍတွင် မြင်ရပါသေးသည်"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"စက်ပစ္စည်း ဆက်တင်များပေါ် အခြေခံပြီး အသံမြည်နိုင်သည် (သို့) တုန်ခါနိုင်သည်"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"စက်ပစ္စည်းဆက်တင်များပေါ် အခြေခံပြီး အသံမြည်နိုင်သည် (သို့) တုန်ခါနိုင်သည်။ မူရင်းသတ်မှတ်ချက်အဖြစ် <xliff:g id="APP_NAME">%1$s</xliff:g> မှ စကားဝိုင်းများကို ပူဖောင်းကွက်ဖြင့် ပြသည်။"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ဤအကြောင်းကြားချက်က အသံ သို့မဟုတ် တုန်ခါမှု ပေးရန် သင့်/မသင့်ကို စနစ်က ဆုံးဖြတ်ပါစေ"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"အပေါ်စာမျက်နှာသို့သွားပါ"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"အောက်စာမျက်နှာသို့သွားပါ"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"ဖျက်ရန်"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"ပင်မ"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"ပြီးပါပြီ"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"ထည့်ပါ"</string>
@@ -1394,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"အဆင့် %2$d အနက် %1$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"အိမ်ထိန်းချုပ်မှုများ"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"အိမ်ထိန်းချုပ်မှုများကို စခရင်နားချိန်ပုံအဖြစ် အမြန်ဝင်ကြည့်ရန်"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"နောက်ပြန်ရန်"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-my/tiles_states_strings.xml b/packages/SystemUI/res/values-my/tiles_states_strings.xml
index 3628c06df4f3..4e3334faf24e 100644
--- a/packages/SystemUI/res/values-my/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-my/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"ပိတ်"</item>
<item msgid="4875147066469902392">"ဖွင့်"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"မရနိုင်ပါ"</item>
+ <item msgid="2004750556637773692">"ပိတ်"</item>
+ <item msgid="8968530753931637871">"ဖွင့်"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"မရနိုင်ပါ"</item>
<item msgid="5044688398303285224">"ပိတ်"</item>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 199b3594c65a..149e1307cff2 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Trykk for å se"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Feil ved lagring av skjermopptaket"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Feil ved start av skjermopptaket"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Vil du stoppe opptaket?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Du tar opp hele skjermen"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Du tar opp <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Stopp opptaket"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Deler skjermen"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Vil du slutte å dele skjermen?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Du deler hele skjermen med <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Du deler hele skjermen med en app"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Du deler <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Du deler en app"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Slutt å dele"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Caster skjermen"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Vil du stoppe castingen?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Du caster hele skjermen til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Du caster hele skjermen til en enhet i nærheten"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Du caster <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> til <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Du caster <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> til en enhet i nærheten"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Du caster til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Du caster skjermen til en enhet i nærheten"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Stopp castingen"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Lukk"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Funksjon for opptak av problemer"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Skjermsparer"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ikke forstyrr"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioritetsmoduser"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Ingen sammenkoblede enheter er tilgjengelige"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Trykk for å koble en enhet til eller fra"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Åpne Innstillinger"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Annen enhet"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Slå oversikten av eller på"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioritetsmoduser"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Ferdig"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Innstillinger"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Du blir ikke forstyrret av lyder og vibrasjoner, med unntak av alarmer, påminnelser, aktiviteter og oppringere du angir. Du kan fremdeles høre alt du velger å spille av, for eksempel musikk, videoer og spill."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Du blir ikke forstyrret av lyder og vibrasjoner, med unntak av alarmer. Du kan fremdeles høre alt du velger å spille av, for eksempel musikk, videoer og spill."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Tilpass"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"velg modul"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"fjern modul"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"plasser den valgte modulen"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Moduler på låseskjermen"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Hvem som helst kan se moduler på låseskjermen – selv om nettbrettet er låst."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Låseskjermmoduler"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"For å åpne en app ved hjelp av en modul må du bekrefte at det er deg. Husk også at hvem som helst kan se dem, selv om nettbrettet er låst. Noen moduler er kanskje ikke laget for å være på låseskjermen og kan være utrygge å legge til der."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Start nå"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Ingen varsler"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Ingen nye varsler"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Tilpassbare varsler er på"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Den nye enheten din senker volumet og reduserer antall forgrunnsvinduer på skjermen i opptil to minutter når du mottar mange varsler på kort tid."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Slå av"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Lås opp for å se eldre varsler"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Denne enheten administreres av forelderen din"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Standard"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatisk"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Ingen lyd eller vibrering"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Ingen lyd eller vibrering, men vises fortsatt i samtaledelen"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Kan ringe eller vibrere basert på enhetsinnstillingene"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Kan ringe eller vibrere basert på enhetsinnstillingene. Samtaler fra <xliff:g id="APP_NAME">%1$s</xliff:g> vises som standard som bobler."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"La systemet velge om dette varselet skal lage lyd eller vibrere"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Startskjerm"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Delt skjerm"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Inndata"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"App-snarveier"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aktiv app"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Tilgjengelighet"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Hurtigtaster"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Snarveier til søk"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Nivå %1$d av %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Hjemkontroller"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Gå raskt til hjemkontrollene som skjermsparer"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Angre"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-nb/tiles_states_strings.xml b/packages/SystemUI/res/values-nb/tiles_states_strings.xml
index 2a57ecf9314d..e3d8eff19d7e 100644
--- a/packages/SystemUI/res/values-nb/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-nb/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Av"</item>
<item msgid="4875147066469902392">"På"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Utilgjengelig"</item>
+ <item msgid="2004750556637773692">"Av"</item>
+ <item msgid="8968530753931637871">"På"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Utilgjengelig"</item>
<item msgid="5044688398303285224">"Av"</item>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index 672609ade4e9..01f7b404865b 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -171,7 +171,7 @@
<string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string>
<string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR कोड स्क्यानर"</string>
<string name="accessibility_unlock_button" msgid="3613812140816244310">"अनलक गरिएको छ"</string>
- <string name="accessibility_lock_icon" msgid="661492842417875775">"यन्त्र लक गरिएको छ"</string>
+ <string name="accessibility_lock_icon" msgid="661492842417875775">"डिभाइस लक गरिएको छ"</string>
<string name="accessibility_scanning_face" msgid="3093828357921541387">"अनुहार स्क्यान गर्दै"</string>
<string name="accessibility_send_smart_reply" msgid="8885032190442015141">"पठाउनुहोस्"</string>
<string name="cancel" msgid="1089011503403416730">"रद्द गर्नुहोस्"</string>
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"स्क्रिन सेभर"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"बाधा नपुऱ्याउनुहोस्"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"महत्त्वपूर्ण मोडहरू"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"ब्लुटुथ"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"जोडी उपकरणहरू उपलब्ध छैन"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"कुनै डिभाइस कनेक्ट गर्न वा डिस्कनेक्ट गर्न ट्याप गर्नुहोस्"</string>
@@ -427,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"सेटिङ खोल्नुहोस्"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"अर्को डिभाइड"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"परिदृश्य टगल गर्नुहोस्"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"महत्त्वपूर्ण मोडहरू"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"सम्पन्न भयो"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"सेटिङ"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"अन छ"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"अफ छ"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"तपाईंलाई अलार्म, रिमाइन्डर, कार्यक्रम र तपाईंले निर्दिष्ट गर्नुभएका कलरहरू बाहेकका ध्वनि र कम्पनहरूले बाधा पुऱ्याउने छैनन्। तपाईंले अझै सङ्गीत, भिडियो र खेलहरू लगायत आफूले प्ले गर्न छनौट गरेका जुनसुकै कुरा सुन्न सक्नुहुनेछ।"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"तपाईंलाई अलार्महरू बाहेकका ध्वनि र कम्पनहरूले बाधा पुऱ्याउने छैनन्। तपाईंले अझै सङ्गीत, भिडियो र खेलहरू लगायत आफूले प्ले गर्न छनौट गरेका जुनसुकै कुरा सुन्न सक्नुहुनेछ।"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">" कस्टम बनाउनुहोस्"</string>
@@ -493,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"चयन गरिएका विजेटका लागि ठाउँ चयन गर्नुहोस्"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"लक स्क्रिन विजेटहरू"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"तपाईंको ट्याब्लेट लक भएका बेला पनि सबैले लक स्क्रिनमा भएका विजेट हेर्न सक्छन्।"</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"विजेटको चयन रद्द गर्नुहोस्"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"लक स्क्रिन विजेटहरू"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"विजेट प्रयोग गरी एप खोल्न तपाईंले आफ्नो पहिचान पुष्टि गर्नु पर्ने हुन्छ। साथै, तपाईंको ट्याब्लेट लक भएका बेला पनि सबै जनाले तिनलाई देख्न सक्छन् भन्ने कुरा ख्याल गर्नुहोस्। केही विजेटहरू लक स्क्रिनमा प्रयोग गर्ने उद्देश्यले नबनाइएका हुन सक्छन् र तिनलाई यहाँ हाल्नु सुरक्षित नहुन सक्छ।"</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"बुझेँ"</string>
@@ -549,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"अहिले न"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"कुनै सूचनाहरू छैनन्"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"कुनै पनि नयाँ सूचना छैन"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"एड्याप्टिभ नोटिफिकेसन अन छ"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"तपाईंले छोटो समयमा धेरै नोटिफिकेसन प्राप्त गर्दा तपाईंको डिभाइसले अब दुई मिनेटसम्म भोल्युम र स्क्रिनमा देखिने पप-अपको सङ्ख्या घटाउँछ।"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"अफ गर्नुहोस्"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"पुराना सूचनाहरू हेर्न अनलक गर्नुहोस्"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"यो डिभाइस तपाईंका अभिभावक व्यवस्थापन गर्नुहुन्छ"</string>
@@ -717,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"डिफल्ट"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"स्वचालित"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"बज्दैन पनि, भाइब्रेट पनि हुँदैन"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"नोटिफिकेसन आउँदा भाइब्रेसन वा साउन्ड आउँदैन तर अझै पनि \"वार्तालाप\" खण्डमा देखिन्छ"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"डिभाइसको सेटिङका आधारमा घन्टी बज्न वा भाइब्रेट हुन सक्छ"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"डिभाइसको सेटिङका आधारमा घन्टी बज्न वा कम्पन हुन सक्छ। <xliff:g id="APP_NAME">%1$s</xliff:g> मार्फत गरिएका वार्तालापहरू स्वतः बबलमा देखिन्छन्।"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"सिस्टमलाई यो सूचना आउँदा ध्वनि बज्नु पर्छ वा कम्पन हुनु पर्छ भन्ने कुराको निधो गर्न दिनुहोस्"</string>
@@ -1082,7 +1088,7 @@
<string name="controls_dialog_ok" msgid="2770230012857881822">"थप्नुहोस्"</string>
<string name="controls_dialog_remove" msgid="3775288002711561936">"हटाउनुहोस्"</string>
<string name="controls_dialog_message" msgid="342066938390663844">"<xliff:g id="APP">%s</xliff:g> ले सिफारिस गरेको"</string>
- <string name="controls_tile_locked" msgid="731547768182831938">"यन्त्र लक गरिएको छ"</string>
+ <string name="controls_tile_locked" msgid="731547768182831938">"डिभाइस लक गरिएको छ"</string>
<string name="controls_settings_show_controls_dialog_title" msgid="3357852503553809554">"लक स्क्रिनमै डिभाइसहरू देखाउने र लक स्क्रिनबाटै ती डिभाइसहरू नियन्त्रण गर्ने हो?"</string>
<string name="controls_settings_show_controls_dialog_message" msgid="7666211700524587969">"तपाईं आफ्ना बाह्य डिभाइसहरूका कन्ट्रोलहरू लक स्क्रिनमा हाल्न सक्नुहुन्छ।\n\nतपाईंको डिभाइसको एपले तपाईंलाई आफ्नो फोन वा ट्याब्लेट अनलक नगरिकनै केही डिभाइसहरू नियन्त्रण गर्ने अनुमति दिन सक्छ।\n\nतपाईं जुनसुकै बेला सेटिङमा गई यी कुराहरू बदल्न सक्नुहुन्छ।"</string>
<string name="controls_settings_trivial_controls_dialog_title" msgid="7593188157655036677">"लक स्क्रिनबाटै डिभाइसहरू नियन्त्रण गर्ने हो?"</string>
@@ -1378,6 +1384,17 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%2$d मध्ये %1$d औँ स्तर"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"होम कन्ट्रोलहरू"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"होम कन्ट्रोललाई तुरुन्तै स्क्रिनसेभरका रूपमा एक्सेस गर्नुहोस्"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
- <skip />
+ <string name="volume_undo_action" msgid="5815519725211877114">"अन्डू गर्नुहोस्"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"पछाडि जान तिन वटा औँलाले टचप्याडमा बायाँ वा दायाँतिर स्वाइप गर्नुहोस्"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"होममा जान तिन वटा औँलाले टचप्याडमा माथितिर स्वाइप गर्नुहोस्"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"आफूले हालसालै चलाएका एपहरू हेर्न तिन वटा औँलाले टचप्याडमा माथितिर स्वाइप गर्नुहोस् र होल्ड गर्नुहोस्"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"आफ्ना सबै एपहरू हेर्न आफ्नो किबोर्डमा भएको एक्सन की थिच्नुहोस्"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"पछाडि जान आफ्नो टचप्याड प्रयोग गर्नुहोस्"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"तिन वटा औँला प्रयोग गरी बायाँ वा दायाँतिर स्वाइप गर्नुहोस्। थप जेस्चर प्रयोग गर्ने तरिका सिक्न ट्याप गर्नुहोस्।"</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"होममा जान आफ्नो टचप्याड प्रयोग गर्नुहोस्"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"तिन वटा औँला प्रयोग गरी माथितिर स्वाइप गर्नुहोस्। थप जेस्चर प्रयोग गर्ने तरिका सिक्न ट्याप गर्नुहोस्।"</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"आफूले हालसालै चलाएका एपहरू हेर्न आफ्नो टचप्याड प्रयोग गर्नुहोस्"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"तिन वटा औँला प्रयोग गरी माथितिर स्वाइप गर्नुहोस् र होल्ड गर्नुहोस्। थप जेस्चर प्रयोग गर्ने तरिका सिक्न ट्याप गर्नुहोस्।"</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"सबै एपहरू हेर्न आफ्नो किबोर्ड प्रयोग गर्नुहोस्"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"जुनसुकै बेला एक्सन की थिच्नुहोस्। थप जेस्चर प्रयोग गर्ने तरिका सिक्न ट्याप गर्नुहोस्।"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ne/tiles_states_strings.xml b/packages/SystemUI/res/values-ne/tiles_states_strings.xml
index 7edd8bfb23a3..e0c517a43394 100644
--- a/packages/SystemUI/res/values-ne/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ne/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"अफ छ"</item>
<item msgid="4875147066469902392">"अन छ"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"उपलब्ध छैन"</item>
+ <item msgid="2004750556637773692">"अफ छ"</item>
+ <item msgid="8968530753931637871">"अन छ"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"उपलब्ध छैन"</item>
<item msgid="5044688398303285224">"अफ छ"</item>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 7f86f23999c4..65fda39c7c46 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Screensaver"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Niet storen"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioriteitsmodi"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Geen gekoppelde apparaten beschikbaar"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Tik om een apparaat te verbinden of de verbinding te verbreken"</string>
@@ -427,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Instellingen openen"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Ander apparaat"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Overzicht aan- of uitzetten"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioriteitsmodi"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Klaar"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Instellingen"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"Aan"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"Uit"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"Je wordt niet gestoord door geluiden en trillingen, behalve bij wekkers, herinneringen, afspraken en specifieke bellers die je selecteert. Je kunt nog steeds alles horen wat je wilt afspelen, waaronder muziek, video\'s en games."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Je wordt niet gestoord door geluiden en trillingen, behalve bij wekkers. Je kunt nog steeds alles horen wat je wilt afspelen, waaronder muziek, video\'s en games."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Aanpassen"</string>
@@ -493,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"geselecteerde widget plaatsen"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets op het vergrendelscherm"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Iedereen kan widgets op je vergrendelscherm bekijken, ook als je tablet is vergrendeld."</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"widget deselecteren"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets op het vergrendelscherm"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Als je een app wilt openen met een widget, moet je laten verifiëren dat jij het bent. Houd er ook rekening mee dat iedereen ze kan bekijken, ook als je tablet vergrendeld is. Bepaalde widgets zijn misschien niet bedoeld voor je vergrendelscherm en kunnen hier niet veilig worden toegevoegd."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>
@@ -549,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Nu starten"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Geen meldingen"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Geen nieuwe meldingen"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Aanpasbare meldingen staan aan"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Je apparaat verlaagt nu het volume en vermindert pop-ups op het scherm gedurende maximaal 2 minuten als je in korte tijd veel meldingen krijgt."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Uitzetten"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Ontgrendel om oudere meldingen te zien"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Dit apparaat wordt beheerd door je ouder"</string>
@@ -717,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Standaard"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatisch"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Geen geluid of trilling"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Geen geluid of trilling, maar verschijnt wel in het gespreksgedeelte"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Kan overgaan of trillen op basis van de apparaatinstellingen"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Kan overgaan of trillen op basis van de apparaatinstellingen. Gesprekken uit <xliff:g id="APP_NAME">%1$s</xliff:g> worden standaard als bubbels weergegeven."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Het systeem laten bepalen of deze melding geluid moet maken of moet trillen"</string>
@@ -1378,6 +1384,17 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Niveau %1$d van %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Bediening voor in huis"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Gebruik bediening voor in huis als screensaver"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
- <skip />
+ <string name="volume_undo_action" msgid="5815519725211877114">"Ongedaan maken"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"Als je wilt teruggaan, swipe je met 3 vingers naar links of rechts op de touchpad"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"Als je naar het startscherm wilt gaan, swipe je met 3 vingers omhoog op de touchpad"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"Als je recente apps wilt bekijken, swipe je met 3 vingers omhoog op de touchpad en houd je vast"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Als je alle apps wilt bekijken, druk je op de actietoets op je toetsenbord"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"Je touchpad gebruiken om terug te gaan"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"Swipe met 3 vingers naar links of rechts. Tik voor meer gebaren."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"Je touchpad gebruiken om naar het startscherm te gaan"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"Swipe met 3 vingers omhoog. Tik voor meer gebaren."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"Je touchpad gebruiken om recente apps te bekijken"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"Swipe met 3 vingers omhoog en houd vast. Tik voor meer gebaren."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"Je toetsenbord gebruiken om alle apps te bekijken"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"Druk op de actietoets wanneer je wilt. Tik voor meer gebaren."</string>
</resources>
diff --git a/packages/SystemUI/res/values-nl/tiles_states_strings.xml b/packages/SystemUI/res/values-nl/tiles_states_strings.xml
index 45664b827d79..b23dc91fae83 100644
--- a/packages/SystemUI/res/values-nl/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-nl/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Uit"</item>
<item msgid="4875147066469902392">"Aan"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Niet beschikbaar"</item>
+ <item msgid="2004750556637773692">"Uit"</item>
+ <item msgid="8968530753931637871">"Aan"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Niet beschikbaar"</item>
<item msgid="5044688398303285224">"Uit"</item>
diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml
index 88aea1599cf7..5bc77eb04b5c 100644
--- a/packages/SystemUI/res/values-or/strings.xml
+++ b/packages/SystemUI/res/values-or/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"ଦେଖିବାକୁ ଟାପ୍ କରନ୍ତୁ"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"ସ୍କ୍ରିନ ରେକର୍ଡିଂ ସେଭ କରିବାରେ ତ୍ରୁଟି"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"ସ୍କ୍ରିନ୍ ରେକର୍ଡିଂ ଆରମ୍ଭ କରିବାରେ ତ୍ରୁଟି"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"ରେକର୍ଡିଂ ବନ୍ଦ କରିବେ?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"ଆପଣ ବର୍ତ୍ତମାନ ଆପଣଙ୍କର ସମ୍ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନକୁ ରେକର୍ଡ କରୁଛନ୍ତି"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="APP_NAME">%1$s</xliff:g>ର ବିଷୟବସ୍ତୁକୁ ରେକର୍ଡ କରୁଛନ୍ତି"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"ରେକର୍ଡିଂ ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"ସ୍କ୍ରିନ ସେୟାର କରାଯାଉଛି"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"ସ୍କ୍ରିନ ସେୟାର କରିବା ବନ୍ଦ କରିବେ?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"ଆପଣ ବର୍ତ୍ତମାନ ଆପଣଙ୍କର ସମ୍ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନକୁ <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> ସହ ସେୟାର କରୁଛନ୍ତି"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"ଆପଣ ବର୍ତ୍ତମାନ ଆପଣଙ୍କର ସମ୍ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନକୁ ଏକ ଆପ ସହ ସେୟାର କରୁଛନ୍ତି"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>କୁ ସେୟାର କରୁଛନ୍ତି"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"ଆପଣ ବର୍ତ୍ତମାନ ଏକ ଆପକୁ ସେୟାର କରୁଛନ୍ତି"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"ସେୟାର କରିବା ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"ସ୍କ୍ରିନ କାଷ୍ଟ କରାଯାଉଛି"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"କାଷ୍ଟ କରିବା ବନ୍ଦ କରିବେ?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"ଆପଣ ବର୍ତ୍ତମାନ ଆପଣଙ୍କର ସମ୍ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନକୁ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ରେ କାଷ୍ଟ କରୁଛନ୍ତି"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"ଆପଣ ବର୍ତ୍ତମାନ ଆପଣଙ୍କର ସମ୍ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନକୁ ଆଖପାଖର ଏକ ଡିଭାଇସରେ କାଷ୍ଟ କରୁଛନ୍ତି"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>କୁ <xliff:g id="DEVICE_NAME">%2$s</xliff:g>ରେ କାଷ୍ଟ କରୁଛନ୍ତି"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>କୁ ଆଖପାଖର ଏକ ଡିଭାଇସରେ କାଷ୍ଟ କରୁଛନ୍ତି"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ରେ କାଷ୍ଟ କରୁଛନ୍ତି"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"ଆପଣ ବର୍ତ୍ତମାନ ଆଖପାଖର ଏକ ଡିଭାଇସରେ କାଷ୍ଟ କରୁଛନ୍ତି"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"କାଷ୍ଟ କରିବା ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="issuerecord_title" msgid="286627115110121849">"ସମସ୍ୟା ରେକର୍ଡର"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"ସ୍କ୍ରିନ୍‌ ସେଭର୍‌"</string>
<string name="ethernet_label" msgid="2203544727007463351">"ଇଥରନେଟ୍‌"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"ପ୍ରାଥମିକତା ମୋଡ"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"ବ୍ଲୁଟୁଥ"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"ପେୟାର୍‍ ହୋଇଥିବା କୌଣସି ଡିଭାଇସ୍ ଉପଲବ୍ଧ ନାହିଁ"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"ଏକ ଡିଭାଇସ କନେକ୍ଟ କିମ୍ବା ଡିସକନେକ୍ଟ କରିବାକୁ ଟାପ କରନ୍ତୁ"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"ସେଟିଂସ ଖୋଲନ୍ତୁ"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"ଅନ୍ୟ ଡିଭାଇସ୍"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"ସଂକ୍ଷିପ୍ତ ବିବରଣୀକୁ ଟୋଗଲ୍ କରନ୍ତୁ"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"ପ୍ରାଥମିକତା ମୋଡ"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"ହୋଇଗଲା"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"ସେଟିଂସ"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"ଆଲାର୍ମ, ରିମାଇଣ୍ଡର୍‌, ଇଭେଣ୍ଟ ଏବଂ ଆପଣ ନିର୍ଦ୍ଦିଷ୍ଟ କରିଥିବା କଲର୍‌ଙ୍କ ବ୍ୟତୀତ ଆପଣଙ୍କ ଧ୍ୟାନ ଅନ୍ୟ କୌଣସି ଧ୍ୱନୀ ଏବଂ ଭାଇବ୍ରେଶନ୍‌ରେ ଆକର୍ଷଣ କରାଯିବନାହିଁ। ମ୍ୟୁଜିକ୍‍, ଭିଡିଓ ଏବଂ ଗେମ୍‌ ସମେତ ନିଜେ ଚଲାଇବାକୁ ବାଛିଥିବା ଅନ୍ୟ ସବୁକିଛି ଆପଣ ଶୁଣିପାରିବେ।"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"ଆଲାର୍ମ ବ୍ୟତୀତ ଆପଣଙ୍କ ଧ୍ୟାନ ଅନ୍ୟ କୌଣସି ଧ୍ୱନୀ ଏବଂ ଭାଇବ୍ରେଶନ୍‌ରେ ଆକର୍ଷଣ କରାଯିବନାହିଁ। ମ୍ୟୁଜିକ୍‍, ଭିଡିଓ ଏବଂ ଗେମ୍‌ ସମେତ ନିଜେ ଚଲାଇବାକୁ ବାଛିଥିବା ଅନ୍ୟ ସବୁକିଛି ଆପଣ ଶୁଣିପାରିବେ।"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"କଷ୍ଟମାଇଜ୍‌ କରନ୍ତୁ"</string>
@@ -504,11 +497,11 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"ୱିଜେଟ ଚୟନ କରନ୍ତୁ"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"ୱିଜେଟକୁ କାଢ଼ି ଦିଅନ୍ତୁ"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"ଚୟନିତ ୱିଜେଟ ରଖନ୍ତୁ"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"ଲକ ସ୍କ୍ରିନ ୱିଜେଟଗୁଡ଼ିକ"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"ଆପଣଙ୍କ ଟାବଲେଟ ଲକ ଥିଲେ ମଧ୍ୟ ଯେ କୌଣସି ବ୍ୟକ୍ତି ଲକ ସ୍କ୍ରିନରେ ୱିଜେଟକୁ ଭ୍ୟୁ କରିପାରିବେ।"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
- <string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"ଲକ ସ୍କ୍ରିନ ୱିଜେଟଗୁଡ଼ିକ"</string>
+ <string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"ଲକ ସ୍କ୍ରିନ ୱିଜେଟ"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ଏକ ୱିଜେଟ ବ୍ୟବହାର କରି ଗୋଟିଏ ଆପ ଖୋଲିବା ପାଇଁ ଏହା ଆପଣ ଅଟନ୍ତି ବୋଲି ଆପଣଙ୍କୁ ଯାଞ୍ଚ କରିବାକୁ ହେବ। ଆହୁରି ମଧ୍ୟ, ଆପଣଙ୍କ ଟାବଲେଟ ଲକ ଥିଲେ ମଧ୍ୟ ଯେ କୌଣସି ବ୍ୟକ୍ତି ଏହାକୁ ଭ୍ୟୁ କରିପାରିବେ ବୋଲି ମନେ ରଖନ୍ତୁ। କିଛି ୱିଜେଟ ଆପଣଙ୍କ ଲକ ସ୍କ୍ରିନ ପାଇଁ ଉଦ୍ଦିଷ୍ଟ ହୋଇନଥାଇପାରେ ଏବଂ ଏଠାରେ ଯୋଗ କରିବା ଅସୁରକ୍ଷିତ ହୋଇପାରେ।"</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ବୁଝିଗଲି"</string>
<string name="accessibility_multi_user_switch_switcher" msgid="5330448341251092660">"ୟୁଜର୍‍ ବଦଳାନ୍ତୁ"</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"ବର୍ତ୍ତମାନ ଆରମ୍ଭ କରନ୍ତୁ"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"କୌଣସି ବିଜ୍ଞପ୍ତି ନାହିଁ"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"କୌଣସି ନୂଆ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ନାହିଁ"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"ଆଡେପ୍ଟିଭ ବିଜ୍ଞପ୍ତି ଚାଲୁ ଅଛି"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"କମ ସମୟ ମଧ୍ୟରେ ଅନେକ ବିଜ୍ଞପ୍ତି ପାଇଲେ ଆପଣଙ୍କ ଡିଭାଇସ ଏବେ ଦୁଇ ମିନିଟ ପର୍ଯ୍ୟନ୍ତ ଭଲ୍ୟୁମକୁ କମ କରି ସ୍କ୍ରିନରେ ଥିବା ପପ-ଅପକୁ କମ କରେ।"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"ପୁରୁଣା ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଦେଖିବାକୁ ଅନଲକ କରନ୍ତୁ"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"ଏହି ଡିଭାଇସ୍ ଆପଣଙ୍କ ବାପାମାଙ୍କ ଦ୍ୱାରା ପରିଚାଳିତ"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ଡିଫଲ୍ଟ"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ସ୍ୱଚାଳିତ"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"କୌଣସି ସାଉଣ୍ଡ କିମ୍ବା ଭାଇବ୍ରେସନ୍ ନାହିଁ"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"କୌଣସି ସାଉଣ୍ଡ ବା ଭାଇବ୍ରେସନ ନାହିଁ କିନ୍ତୁ ଏବେ ବି ବାର୍ତ୍ତାଳାପ ବିଭାଗରେ ଦେଖାଯାଏ"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"ଡିଭାଇସ ସେଟିଂସ ଆଧାରରେ ରିଂ କିମ୍ବା ଭାଇବ୍ରେଟ ହୋଇପାରେ"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"ଡିଭାଇସ ସେଟିଂସ ଆଧାରରେ ରିଂ କିମ୍ବା ଭାଇବ୍ରେଟ ହୋଇପାରେ। ଡିଫଲ୍ଟ ଭାବରେ <xliff:g id="APP_NAME">%1$s</xliff:g>ରୁ ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ ବବଲ ଭାବେ ଦେଖାଯାଏ।"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ଏହି ବିଜ୍ଞପ୍ତି ପ୍ରାପ୍ତ ହେବା ସମୟରେ ସାଉଣ୍ଡ ହେବା ଉଚିତ ନା ଭାଇବ୍ରେସନ୍ ତାହା ସିଷ୍ଟମକୁ ସ୍ଥିର କରିବାକୁ ଦିଅନ୍ତୁ"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"ଉପର ପୃଷ୍ଠା"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"ତଳ ପୃଷ୍ଠା"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"ଡିଲିଟ କରନ୍ତୁ"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"ଏସକେପ"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"ହୋମ"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"ସମାପ୍ତ"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"ଇନ୍‌ସର୍ଟ"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"ଇନପୁଟ"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ଆପ ସର୍ଟକଟ"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"ବର୍ତ୍ତମାନର ଆପ"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"ଆକ୍ସେସିବିଲିଟୀ"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"କୀବୋର୍ଡ ସର୍ଟକଟ"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ସର୍ଚ୍ଚ ସର୍ଟକଟ"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%2$dରୁ %1$d ନମ୍ବର ଲେଭେଲ"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"ହୋମ କଣ୍ଟ୍ରୋଲ୍ସ"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"ସ୍କ୍ରିନସେଭର ଭାବେ ହୋମ କଣ୍ଟ୍ରୋଲ୍ସକୁ ଶୀଘ୍ର ଆକ୍ସେସ କରନ୍ତୁ"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"ଅନଡୁ କରନ୍ତୁ"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-or/tiles_states_strings.xml b/packages/SystemUI/res/values-or/tiles_states_strings.xml
index 1bc369b2a777..3ab7e5d00d4a 100644
--- a/packages/SystemUI/res/values-or/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-or/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"ବନ୍ଦ ଅଛି"</item>
<item msgid="4875147066469902392">"ଚାଲୁ ଅଛି"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"ଅନୁପଲବ୍ଧ"</item>
+ <item msgid="2004750556637773692">"ବନ୍ଦ ଅଛି"</item>
+ <item msgid="8968530753931637871">"ଚାଲୁ ଅଛି"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"ଉପଲବ୍ଧ ନାହିଁ"</item>
<item msgid="5044688398303285224">"ବନ୍ଦ ଅଛି"</item>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index 3f06376afdd2..9692789b2f7c 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"ਸਕ੍ਰੀਨ ਰਿਕਾਰਡਿੰਗ ਨੂੰ ਰੱਖਿਅਤ ਕਰਨ ਵੇਲੇ ਗੜਬੜ ਹੋ ਗਈ"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"ਸਕ੍ਰੀਨ ਰਿਕਾਰਡਿੰਗ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਵੇਲੇ ਗੜਬੜ ਹੋਈ"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"ਕੀ ਰਿਕਾਰਡਿੰਗ ਬੰਦ ਕਰਨੀ ਹੈ?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ ਆਪਣੀ ਪੂਰੀ ਸਕ੍ਰੀਨ ਨੂੰ ਰਿਕਾਰਡ ਕਰ ਰਹੇ ਹੋ"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ <xliff:g id="APP_NAME">%1$s</xliff:g> ਨੂੰ ਰਿਕਾਰਡ ਕਰ ਰਹੇ ਹੋ"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"ਰਿਕਾਰਡਿੰਗ ਬੰਦ ਕਰੋ"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"ਸਕ੍ਰੀਨ ਸਾਂਝੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"ਕੀ ਸਕ੍ਰੀਨ ਨੂੰ ਸਾਂਝਾ ਕਰਨਾ ਬੰਦ ਕਰਨਾ ਹੈ?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> ਨਾਲ ਆਪਣੀ ਪੂਰੀ ਸਕ੍ਰੀਨ ਨੂੰ ਸਾਂਝਾ ਕਰ ਰਹੇ ਹੋ"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ ਕਿਸੇ ਐਪ ਨਾਲ ਆਪਣੀ ਪੂਰੀ ਸਕ੍ਰੀਨ ਨੂੰ ਸਾਂਝਾ ਕਰ ਰਹੇ ਹੋ"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ਨੂੰ ਸਾਂਝਾ ਕਰ ਰਹੇ ਹੋ"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ ਕਿਸੇ ਐਪ ਨੂੰ ਸਾਂਝਾ ਕਰ ਰਹੇ ਹੋ"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"ਸਾਂਝਾਕਰਨ ਬੰਦ ਕਰੋ"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"ਸਕ੍ਰੀਨ \'ਤੇ ਕਾਸਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"ਕੀ ਕਾਸਟ ਕਰਨਾ ਬੰਦ ਕਰਨਾ ਹੈ?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ ਆਪਣੀ ਪੂਰੀ ਸਕ੍ਰੀਨ ਨੂੰ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> \'ਤੇ ਕਾਸਟ ਕਰ ਰਹੇ ਹੋ"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ ਆਪਣੀ ਪੂਰੀ ਸਕ੍ਰੀਨ ਨੂੰ ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸ \'ਤੇ ਕਾਸਟ ਕਰ ਰਹੇ ਹੋ"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ਨੂੰ <xliff:g id="DEVICE_NAME">%2$s</xliff:g> \'ਤੇ ਕਾਸਟ ਕਰ ਰਹੇ ਹੋ"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ਨੂੰ ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸ \'ਤੇ ਕਾਸਟ ਕਰ ਰਹੇ ਹੋ"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> \'ਤੇ ਕਾਸਟ ਕਰ ਰਹੇ ਹੋ"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"ਤੁਸੀਂ ਫ਼ਿਲਹਾਲ ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸ \'ਤੇ ਕਾਸਟ ਕਰ ਰਹੇ ਹੋ"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"ਕਾਸਟ ਕਰਨਾ ਬੰਦ ਕਰੋ"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"ਬੰਦ ਕਰੋ"</string>
<string name="issuerecord_title" msgid="286627115110121849">"ਸਮੱਸਿਆ ਰਿਕਾਰਡਰ"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"ਸਕ੍ਰੀਨ ਸੇਵਰ"</string>
<string name="ethernet_label" msgid="2203544727007463351">"ਈਥਰਨੈਟ"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"ਤਰਜੀਹ ਮੋਡ"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"ਬਲੂਟੁੱਥ"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"ਕੋਈ ਜੋੜਾਬੱਧ ਕੀਤੀਆਂ ਡੀਵਾਈਸਾਂ ਉਪਲਬਧ ਨਹੀਂ"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"ਡੀਵਾਈਸ ਨੂੰ ਕਨੈਕਟ ਜਾਂ ਡਿਸਕਨੈਕਟ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੋ"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"ਹੋਰ ਡੀਵਾਈਸ"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"ਰੂਪ-ਰੇਖਾ ਨੂੰ ਟੌਗਲ ਕਰੋ"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"ਤਰਜੀਹ ਮੋਡ"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"ਹੋ ਗਿਆ"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"ਸੈਟਿੰਗਾਂ"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"ਧੁਨੀਆਂ ਅਤੇ ਥਰਥਰਾਹਟਾਂ ਤੁਹਾਨੂੰ ਪਰੇਸ਼ਾਨ ਨਹੀਂ ਕਰਨਗੀਆਂ, ਸਿਵਾਏ ਅਲਾਰਮਾਂ, ਯਾਦ-ਦਹਾਨੀਆਂ, ਵਰਤਾਰਿਆਂ, ਅਤੇ ਤੁਹਾਡੇ ਵੱਲੋਂ ਨਿਰਧਾਰਤ ਕੀਤੇ ਕਾਲਰਾਂ ਦੀ ਸੂਰਤ ਵਿੱਚ। ਤੁਸੀਂ ਅਜੇ ਵੀ ਸੰਗੀਤ, ਵੀਡੀਓ ਅਤੇ ਗੇਮਾਂ ਸਮੇਤ ਆਪਣੀ ਚੋਣ ਅਨੁਸਾਰ ਕੁਝ ਵੀ ਸੁਣ ਸਕਦੇ ਹੋ।"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"ਧੁਨੀਆਂ ਅਤੇ ਥਰਥਰਾਹਟਾਂ ਤੁਹਾਨੂੰ ਪਰੇਸ਼ਾਨ ਨਹੀਂ ਕਰਨਗੀਆਂ, ਸਿਵਾਏ ਅਲਾਰਮਾਂ ਦੀ ਸੂਰਤ ਵਿੱਚ। ਤੁਸੀਂ ਅਜੇ ਵੀ ਸੰਗੀਤ, ਵੀਡੀਓ ਅਤੇ ਗੇਮਾਂ ਸਮੇਤ ਆਪਣੀ ਚੋਣ ਅਨੁਸਾਰ ਕੁਝ ਵੀ ਸੁਣ ਸਕਦੇ ਹੋ।"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"ਵਿਉਂਤਬੱਧ ਕਰੋ"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"ਵਿਜੇਟ ਚੁਣੋ"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"ਵਿਜੇਟ ਹਟਾਓ"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"ਚੁਣੇ ਗਏ ਵਿਜੇਟ ਲਈ ਥਾਂ ਚੁਣੋ"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"ਲਾਕ ਸਕ੍ਰੀਨ ਵਿਜੇਟ"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"ਕੋਈ ਵੀ ਤੁਹਾਡੀ ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਵਿਜੇਟ ਦੇਖ ਸਕਦਾ ਹੈ, ਭਾਵੇਂ ਤੁਹਾਡਾ ਟੈਬਲੈੱਟ ਲਾਕ ਹੋਵੇ।"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"ਲਾਕ ਸਕ੍ਰੀਨ ਵਿਜੇਟ"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ਵਿਜੇਟ ਦੀ ਵਰਤੋਂ ਕਰ ਕੇ ਐਪ ਖੋਲ੍ਹਣ ਲਈ, ਤੁਹਾਨੂੰ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ ਕਿ ਇਹ ਤੁਸੀਂ ਹੀ ਹੋ। ਨਾਲ ਹੀ, ਇਹ ਵੀ ਧਿਆਨ ਵਿੱਚ ਰੱਖੋ ਕਿ ਕੋਈ ਵੀ ਉਨ੍ਹਾਂ ਨੂੰ ਦੇਖ ਸਕਦਾ ਹੈ, ਭਾਵੇਂ ਤੁਹਾਡੀ ਟੈਬਲੈੱਟ ਲਾਕ ਹੋਵੇ। ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਕੁਝ ਵਿਜੇਟ ਤੁਹਾਡੀ ਲਾਕ ਸਕ੍ਰੀਨ ਲਈ ਨਾ ਬਣੇ ਹੋਣ ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਇੱਥੇ ਸ਼ਾਮਲ ਕਰਨਾ ਅਸੁਰੱਖਿਅਤ ਹੋਵੇ।"</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"ਹੁਣੇ ਸ਼ੁਰੂ ਕਰੋ"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"ਕੋਈ ਸੂਚਨਾ ਨਹੀਂ"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"ਕੋਈ ਨਵੀਂ ਸੂਚਨਾ ਨਹੀਂ ਹੈ"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"ਅਡੈਪਟਿਵ ਸੂਚਨਾਵਾਂ ਚਾਲੂ ਹਨ"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"ਘੱਟ ਸਮੇਂ \'ਚ ਕਈ ਸੂਚਨਾਵਾਂ ਮਿਲਣ \'ਤੇ, ਡੀਵਾਈਸ ਹੁਣ ਦੋ ਮਿੰਟਾਂ ਲਈ ਸਕ੍ਰੀਨ \'ਤੇ ਅਵਾਜ਼ ਅਤੇ ਪੌਪ-ਅੱਪ ਘਟਾ ਦਿੰਦਾ ਹੈ।"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"ਬੰਦ ਕਰੋ"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"ਪੁਰਾਣੀਆਂ ਸੂਚਨਾਵਾਂ ਦੇਖਣ ਲਈ ਅਣਲਾਕ ਕਰੋ"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"ਇਸ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਬੰਧਨ ਤੁਹਾਡੇ ਮਾਂ-ਪਿਓ ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ਸਵੈਚਲਿਤ"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"ਕੋਈ ਧੁਨੀ ਜਾਂ ਥਰਥਰਾਹਟ ਨਹੀਂ"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ਕੋਈ ਅਵਾਜ਼ ਜਾਂ ਥਰਥਰਾਹਟ ਨਹੀਂ, ਪਰ ਫਿਰ ਵੀ ਗੱਲਬਾਤ ਸੈਕਸ਼ਨ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"ਡੀਵਾਈਸ ਸੈਟਿੰਗਾਂ ਦੇ ਆਧਾਰ \'ਤੇ ਘੰਟੀ ਵੱਜ ਸਕਦੀ ਹੈ ਜਾਂ ਥਰਥਰਾਹਟ ਹੋ ਸਕਦੀ ਹੈ"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"ਡੀਵਾਈਸ ਸੈਟਿੰਗਾਂ ਦੇ ਆਧਾਰ \'ਤੇ ਘੰਟੀ ਵੱਜ ਸਕਦੀ ਹੈ ਜਾਂ ਥਰਥਰਾਹਟ ਹੋ ਸਕਦੀ ਹੈ। ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਤੌਰ \'ਤੇ <xliff:g id="APP_NAME">%1$s</xliff:g> ਬਬਲ ਤੋਂ ਗੱਲਾਂਬਾਤਾਂ।"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ਸਿਸਟਮ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਦਿਓ ਕਿ ਇਸ ਸੂਚਨਾ ਲਈ ਕੋਈ ਧੁਨੀ ਵਜਾਉਣੀ ਚਾਹੀਦੀ ਹੈ ਜਾਂ ਥਰਥਰਾਹਟ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"ਮਿਟਾਓ"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"ਇਨਪੁੱਟ"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ਐਪ ਸ਼ਾਰਟਕੱਟ"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"ਮੌਜੂਦਾ ਐਪ"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"ਪਹੁੰਚਯੋਗਤਾ"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"ਕੀ-ਬੋਰਡ ਸ਼ਾਰਟਕੱਟ"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ਖੋਜ ਸੰਬੰਧੀ ਸ਼ਾਰਟਕੱਟ"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%2$d ਵਿੱਚੋਂ %1$d ਪੱਧਰ"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"ਹੋਮ ਕੰਟਰੋਲ"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"ਸਕ੍ਰੀਨ-ਸੇਵਰ ਵਜੋਂ ਆਪਣੇ ਹੋਮ ਕੰਟਰੋਲਾਂ ਤੱਕ ਤੁਰੰਤ ਪਹੁੰਚ ਕਰੋ"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"ਅਣਕੀਤਾ ਕਰੋ"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-pa/tiles_states_strings.xml b/packages/SystemUI/res/values-pa/tiles_states_strings.xml
index cc4c5c4eb228..c91062dad185 100644
--- a/packages/SystemUI/res/values-pa/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pa/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"ਬੰਦ ਹੈ"</item>
<item msgid="4875147066469902392">"ਚਾਲੂ ਹੈ"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"ਉਪਲਬਧ ਨਹੀਂ"</item>
+ <item msgid="2004750556637773692">"ਬੰਦ"</item>
+ <item msgid="8968530753931637871">"ਚਾਲੂ"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"ਅਣਉਪਲਬਧ ਹੈ"</item>
<item msgid="5044688398303285224">"ਬੰਦ ਹੈ"</item>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index dedfc93c1606..3a01cc9bb11c 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -426,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Otwórz Ustawienia"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Inne urządzenie"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Przełącz Przegląd"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Tryby priorytetowe"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Gotowe"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Ustawienia"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Nie będą Cię niepokoić żadne dźwięki ani wibracje z wyjątkiem alarmów, przypomnień, wydarzeń i połączeń od wybranych osób. Będziesz słyszeć wszystkie odtwarzane treści, takie jak muzyka, filmy czy gry."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Nie będą Cię niepokoić żadne dźwięki ani wibracje z wyjątkiem alarmów. Będziesz słyszeć wszystkie odtwarzane treści, takie jak muzyka, filmy czy gry."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Dostosuj"</string>
@@ -492,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"umieść wybrany widżet"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Widżety na ekranie blokady"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Każdy zobaczy widżety na ekranie blokady, nawet gdy tablet jest zablokowany."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widżety na ekranie blokady"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Aby otworzyć aplikację za pomocą widżetu, musisz potwierdzić swoją tożsamość. Pamiętaj też, że każdy będzie mógł wyświetlić widżety nawet wtedy, gdy tablet będzie zablokowany. Niektóre widżety mogą nie być przeznaczone do umieszczenia na ekranie blokady i ich dodanie w tym miejscu może być niebezpieczne."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>
@@ -548,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Rozpocznij teraz"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Brak powiadomień"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Brak nowych powiadomień"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Powiadomienia adaptacyjne włączone"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Urządzenie zmniejszy teraz głośność i ograniczy wyskakujące okienka przez maks. 2 minuty, gdy w krótkim czasie otrzymujesz wiele powiadomień."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Wyłącz"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Odblokuj i zobacz starsze powiadomienia"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Tym urządzeniem zarządza Twój rodzic"</string>
@@ -716,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Domyślne"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatycznie"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Bez dźwięku i wibracji"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Brak sygnału dźwiękowego lub wibracji, ale nadal pojawia się w sekcji rozmów"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Mogą włączać dzwonek lub wibracje w zależności od ustawień urządzenia"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Mogą włączać dzwonek lub wibracje w zależności od ustawień urządzenia. Rozmowy z aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g> są domyślnie wyświetlane jako dymki."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Pozwól systemowi decydować, czy o powiadomieniu powinien informować dźwięk czy wibracja"</string>
@@ -1357,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Podzielony ekran"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Wprowadzanie"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Skróty do aplikacji"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Bieżąca aplikacja"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Ułatwienia dostępu"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Skróty klawiszowe"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Skróty do wyszukiwania"</string>
@@ -1379,4 +1388,28 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"Sterowanie domem"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Szybki dostęp do sterowania domem na wygaszaczu ekranu"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"Cofnij"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 1ab30c3bfaee..6a2bc58e2741 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Protetor de tela"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Não perturbe"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Modos prioritários"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Não há dispositivos pareados disponíveis"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Toque para conectar ou desconectar um dispositivo"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Abrir as Configurações"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Outro dispositivo"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Alternar Visão geral"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modos prioritários"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Concluído"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Configurações"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Você não será perturbado por sons e vibrações, exceto alarmes, lembretes, eventos e chamadas de pessoas especificadas. No entanto, você ouvirá tudo o que decidir reproduzir, como músicas, vídeos e jogos."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Você não será perturbado por sons e vibrações, exceto alarmes. No entanto, você ouvirá tudo o que decidir reproduzir, como músicas, vídeos e jogos."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personalizar"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"posicionar widget selecionado"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets da tela de bloqueio"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Todos podem ver os widgets na tela de bloqueio, mesmo com o tablet bloqueado."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets da tela de bloqueio"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir um app usando um widget, você precisará confirmar sua identidade. Além disso, não se esqueça que qualquer pessoa pode ver os widgets, mesmo quando o tablet está bloqueado. Alguns widgets podem não ter sido criados para ficar na tela de bloqueio e fazer isso talvez não seja seguro."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Entendi"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Iniciar agora"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Sem notificações"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Nenhuma notificação nova"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notificações adaptáveis ativadas"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"O dispositivo agora diminui o volume e reduz os pop-ups na tela por até 2 minutos quando você recebe muitas notificações em pouco tempo."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Desativar"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Desbloqueie p/ acessar notificações antigas"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Este dispositivo é gerenciado pelo seu familiar responsável"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Padrão"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automática"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Som e vibração desativados"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Nenhum som ou vibração, mas ainda aparece na seção de conversa"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Pode vibrar ou tocar com base nas configurações do dispositivo"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Pode vibrar ou tocar com base nas configurações do dispositivo. As conversas do app <xliff:g id="APP_NAME">%1$s</xliff:g> aparecem em balões por padrão."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Faça com que o sistema determine se a notificação resultará em som ou vibração"</string>
@@ -1378,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Nível %1$d de %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Automação residencial"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Controles de automação residencial no protetor de tela"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Desfazer"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
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 b8811426835e..097543b8ec06 100644
--- a/packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Desativado"</item>
<item msgid="4875147066469902392">"Ativado"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Indisponível"</item>
+ <item msgid="2004750556637773692">"Desativado"</item>
+ <item msgid="8968530753931637871">"Ativado"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Indisponível"</item>
<item msgid="5044688398303285224">"Desativada"</item>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 963b47c9bc05..d514a8fbc368 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -426,6 +426,11 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Abrir definições"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Outro dispositivo"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Ativar/desativar Vista geral"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modos de prioridade"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Concluir"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Definições"</string>
+ <string name="zen_mode_on" msgid="9085304934016242591">"Ativado"</string>
+ <string name="zen_mode_off" msgid="1736604456618147306">"Desativado"</string>
<string name="zen_priority_introduction" msgid="3159291973383796646">"Não é incomodado por sons e vibrações, exceto de alarmes, lembretes, eventos e autores de chamadas que especificar. Continua a ouvir tudo o que optar por reproduzir, incluindo música, vídeos e jogos."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Não é incomodado por sons e vibrações, exceto de alarmes. Continua a ouvir tudo o que optar por reproduzir, incluindo música, vídeos e jogos."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personalizar"</string>
@@ -492,6 +497,7 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"posicionar widget selecionado"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets do ecrã de bloqueio"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Todos podem pode ver widgets no ecrã de bloqueio, mesmo com o tablet bloqueado."</string>
+ <string name="accessibility_action_label_unselect_widget" msgid="1041811747619468698">"desmarcar widget"</string>
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets do ecrã de bloqueio"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir uma app através de um widget, vai ter de validar a sua identidade. Além disso, tenha em atenção que qualquer pessoa pode ver os widgets, mesmo quando o tablet estiver bloqueado. Alguns widgets podem não se destinar ao ecrã de bloqueio e pode ser inseguro adicioná-los aqui."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>
@@ -548,8 +554,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Começar agora"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Sem notificações"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Não existem novas notificações"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notificações adaptáveis ativas"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"O disp. diminui o vol. e reduz os pop-ups por até 2 min quando recebe muitas notificações seguidas."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Desativar"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Desbloqueie e veja notificações antigas"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Este dispositivo é gerido pelos teus pais"</string>
@@ -716,8 +724,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Predefinição"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automática"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Sem som ou vibração"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Sem som nem vibração, mas ainda aparece na secção de conversas"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Pode tocar ou vibrar com base nas definições do dispositivo"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Pode tocar ou vibrar com base nas definições do dispositivo. As conversas da app <xliff:g id="APP_NAME">%1$s</xliff:g> aparecem como um balão por predefinição."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Faça com que o sistema determine se esta notificação deve emitir um som ou uma vibração"</string>
@@ -1378,4 +1385,16 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"Controlos domésticos"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Use controlos domésticos como proteção de ecrã"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"Anular"</string>
+ <string name="back_edu_toast_content" msgid="4530314597378982956">"Para retroceder, deslize rapidamente para a esquerda ou direita com 3 dedos no touchpad"</string>
+ <string name="home_edu_toast_content" msgid="3381071147871955415">"Para aceder ao ecrã principal, deslize rapidamente para cima com 3 dedos no touchpad"</string>
+ <string name="overview_edu_toast_content" msgid="5797030644017804518">"Para ver as apps recentes, deslize rapidamente para cima e mantenha premido com 3 dedos no touchpad"</string>
+ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para ver todas as suas apps, prima a tecla de ação no teclado"</string>
+ <string name="back_edu_notification_title" msgid="5624780717751357278">"Use o touchpad para retroceder"</string>
+ <string name="back_edu_notification_content" msgid="2497557451540954068">"Deslize rapidamente para a esquerda ou direita com 3 dedos. Toque para aprender mais gestos."</string>
+ <string name="home_edu_notification_title" msgid="6097902076909654045">"Use o touchpad para aceder ao ecrã principal"</string>
+ <string name="home_edu_notification_content" msgid="6631697734535766588">"Deslize rapidamente para cima com 3 dedos. Toque para aprender mais gestos."</string>
+ <string name="overview_edu_notification_title" msgid="1265824157319562406">"Use o touchpad para ver as apps recentes"</string>
+ <string name="overview_edu_notification_content" msgid="3578204677648432500">"Deslize rapidamente para cima e mantenha premido com 3 dedos. Toque para aprender mais gestos."</string>
+ <string name="all_apps_edu_notification_title" msgid="372262997265569063">"Use o teclado para ver todas as apps"</string>
+ <string name="all_apps_edu_notification_content" msgid="3255070575694025585">"Prima a tecla de ação em qualquer altura. Toque para aprender mais gestos."</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 1ab30c3bfaee..6a2bc58e2741 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Protetor de tela"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Não perturbe"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Modos prioritários"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Não há dispositivos pareados disponíveis"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Toque para conectar ou desconectar um dispositivo"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Abrir as Configurações"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Outro dispositivo"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Alternar Visão geral"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modos prioritários"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Concluído"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Configurações"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Você não será perturbado por sons e vibrações, exceto alarmes, lembretes, eventos e chamadas de pessoas especificadas. No entanto, você ouvirá tudo o que decidir reproduzir, como músicas, vídeos e jogos."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Você não será perturbado por sons e vibrações, exceto alarmes. No entanto, você ouvirá tudo o que decidir reproduzir, como músicas, vídeos e jogos."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personalizar"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"posicionar widget selecionado"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgets da tela de bloqueio"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Todos podem ver os widgets na tela de bloqueio, mesmo com o tablet bloqueado."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgets da tela de bloqueio"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para abrir um app usando um widget, você precisará confirmar sua identidade. Além disso, não se esqueça que qualquer pessoa pode ver os widgets, mesmo quando o tablet está bloqueado. Alguns widgets podem não ter sido criados para ficar na tela de bloqueio e fazer isso talvez não seja seguro."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Entendi"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Iniciar agora"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Sem notificações"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Nenhuma notificação nova"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notificações adaptáveis ativadas"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"O dispositivo agora diminui o volume e reduz os pop-ups na tela por até 2 minutos quando você recebe muitas notificações em pouco tempo."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Desativar"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Desbloqueie p/ acessar notificações antigas"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Este dispositivo é gerenciado pelo seu familiar responsável"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Padrão"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automática"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Som e vibração desativados"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Nenhum som ou vibração, mas ainda aparece na seção de conversa"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Pode vibrar ou tocar com base nas configurações do dispositivo"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Pode vibrar ou tocar com base nas configurações do dispositivo. As conversas do app <xliff:g id="APP_NAME">%1$s</xliff:g> aparecem em balões por padrão."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Faça com que o sistema determine se a notificação resultará em som ou vibração"</string>
@@ -1378,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Nível %1$d de %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Automação residencial"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Controles de automação residencial no protetor de tela"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Desfazer"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-pt/tiles_states_strings.xml b/packages/SystemUI/res/values-pt/tiles_states_strings.xml
index b8811426835e..097543b8ec06 100644
--- a/packages/SystemUI/res/values-pt/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-pt/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Desativado"</item>
<item msgid="4875147066469902392">"Ativado"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Indisponível"</item>
+ <item msgid="2004750556637773692">"Desativado"</item>
+ <item msgid="8968530753931637871">"Ativado"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Indisponível"</item>
<item msgid="5044688398303285224">"Desativada"</item>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index 285a3ca92048..b129e5137715 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Atinge pentru a afișa"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Eroare la salvarea înregistrării ecranului"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Eroare la începerea înregistrării ecranului"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Oprești înregistrarea?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Înregistrezi întregul ecran"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Înregistrezi <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Oprește înregistrarea"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Se permite accesul la ecran"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Oprești accesul la ecran?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Permiți accesul <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> la întregul ecran"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Permiți accesul unei aplicații la întregul ecran"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Permiți accesul la <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Permiți accesul la o aplicație"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Nu mai permite accesul"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Se proiectează ecranul"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Oprești proiectarea?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Proiectezi întregul ecran pe <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Proiectezi întregul ecran pe un dispozitiv din apropiere"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Proiectezi <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> pe <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Proiectezi <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> pe un dispozitiv din apropiere"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Proiectezi pe <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Proiectezi pe un dispozitiv din apropiere"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Oprește proiectarea"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Închide"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Instrument de înregistrare a problemelor"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Screensaver"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Nu deranja"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Moduri cu prioritate"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Niciun dispozitiv conectat disponibil"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Atinge pentru a conecta sau deconecta un dispozitiv"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Deschide Setări"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Alt dispozitiv"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Comută secțiunea Recente"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Moduri cu prioritate"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Gata"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Setări"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Se vor anunța prin sunete și vibrații numai alarmele, mementourile, evenimentele și apelanții specificați de tine. Totuși, vei auzi tot ce alegi să redai, inclusiv muzică, videoclipuri și jocuri."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Se vor anunța prin sunete și vibrații numai alarmele. Totuși, vei auzi tot ce alegi să redai, inclusiv muzică, videoclipuri și jocuri."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personalizează"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"selectează un widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"elimină widgetul"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"plasează widgetul selectat"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgeturi pe ecranul de blocare"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Oricine vede widgeturile pe ecranul de blocare, chiar dacă tableta e blocată"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgeturi pe ecranul de blocare"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Pentru a deschide o aplicație folosind un widget, va trebui să-ți confirmi identitatea. În plus, reține că oricine poate să vadă widgeturile, chiar dacă tableta este blocată. Este posibil ca unele widgeturi să nu fi fost create pentru ecranul de blocare și poate fi nesigur să le adaugi aici."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Începe acum"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Nicio notificare"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Nicio notificare nouă"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Notificări adaptabile activate"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Dispozitivul reduce acum volumul și numărul de ferestre pop-up de pe ecran timp de până la două minute când primești multe notificări într-un timp scurt"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Dezactivează"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Deblochează ca să vezi notificări vechi"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Dispozitivul este gestionat de unul dintre părinți"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Prestabilite"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automat"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Fără sunet sau vibrații"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Fără sunete sau vibrații, dar apare în secțiunea de conversație"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Poate să sune sau să vibreze, în funcție de setările dispozitivului"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Poate să sune sau să vibreze, în funcție de setările dispozitivului. Conversațiile din balonul <xliff:g id="APP_NAME">%1$s</xliff:g> în mod prestabilit."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Solicită-i sistemului să stabilească dacă această notificare e sonoră sau cu vibrații."</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"O pagină mai sus"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"O pagină mai jos"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Șterge"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"La început"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"La final"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Inserează"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Ecran împărțit"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Intrare"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Comenzi rapide pentru aplicații"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aplicația actuală"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Accesibilitate"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Comenzi rapide de la tastatură"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Comenzi directe de căutare"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Nivelul %1$d din %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Comenzi pentru locuință"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Accesează comenzile pentru locuință ca screensaver"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Anulează"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ro/tiles_states_strings.xml b/packages/SystemUI/res/values-ro/tiles_states_strings.xml
index 25a2959b561b..22b50709dee7 100644
--- a/packages/SystemUI/res/values-ro/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ro/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Dezactivată"</item>
<item msgid="4875147066469902392">"Activată"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Indisponibil"</item>
+ <item msgid="2004750556637773692">"Dezactivat"</item>
+ <item msgid="8968530753931637871">"Activat"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Indisponibilă"</item>
<item msgid="5044688398303285224">"Dezactivată"</item>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 507b8d185072..ebbac593504e 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Заставка"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Не беспокоить"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Режимы приоритета"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Нет доступных сопряженных устройств"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Нажмите, чтобы подключить или отключить устройство."</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Открыть настройки"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Другое устройство"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Переключить режим обзора"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Режимы приоритета"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Готово"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Настройки"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Вас не будут отвлекать звуки и вибрация, за исключением сигналов будильника, напоминаний, уведомлений о мероприятиях и звонков от помеченных контактов. Вы по-прежнему будете слышать включенную вами музыку, видео, игры и т. д."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Вас не будут отвлекать звуки и вибрация, за исключением сигналов будильника. Вы по-прежнему будете слышать включенную вами музыку, видео, игры и т. д."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Настроить"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"разместить выбранный виджет"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Виджеты на заблокированном экране"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Они видны всем, даже если планшет заблокирован."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Виджеты на заблокированном экране"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Чтобы открыть приложение, используя виджет, вам нужно будет подтвердить свою личность. Обратите внимание, что виджеты видны всем, даже если планшет заблокирован. Некоторые виджеты не предназначены для использования на заблокированном экране. Добавлять их туда может быть небезопасно."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"ОК"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Начать"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Нет уведомлений."</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Новых уведомлений нет"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Адаптивные уведомления включены"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Если за короткий промежуток времени придет много уведомлений, громкость звуков и количество всплывающих окон будут уменьшены на срок до двух минут."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Отключить"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Разблокируйте, чтобы увидеть уведомления"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Устройством управляет один из родителей."</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"По умолчанию"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Автоматически"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Без звука и вибрации"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Без звука и вибрации, но появляется в списке разговоров"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Звонок или вибрация в зависимости от настроек устройства"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Звонок или вибрация в зависимости от настроек устройства. Разговоры из приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" по умолчанию появляются в виде всплывающего чата."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Система будет сама определять, включать ли звуковой сигнал или вибрацию для уведомления"</string>
@@ -1358,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Разделение экрана"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Ввод"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Ярлыки приложений"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Это приложение"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Специальные возможности"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Быстрые клавиши"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Найти быстрые клавиши"</string>
@@ -1379,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Уровень %1$d из %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Управление домом"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Быстрый доступ к управлению домом через заставку"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Отменить"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ru/tiles_states_strings.xml b/packages/SystemUI/res/values-ru/tiles_states_strings.xml
index 2a0314e0e8f0..4d4f39ee98ea 100644
--- a/packages/SystemUI/res/values-ru/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ru/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Откл."</item>
<item msgid="4875147066469902392">"Вкл."</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Недоступно"</item>
+ <item msgid="2004750556637773692">"Отключено"</item>
+ <item msgid="8968530753931637871">"Включено"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Функция недоступна"</item>
<item msgid="5044688398303285224">"Откл."</item>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index ebcfa9d57ab7..eb447b9e9708 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"බැලීමට තට්ටු කරන්න"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"තිර පටිගත කිරීම සුරැකීමේ දෝෂයකි"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"තිර පටිගත කිරීම ආරම්භ කිරීමේ දෝෂයකි"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"පටිගත කිරීම නවතන්න ද?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"ඔබ දැනට ඔබේ සම්පූර්ණ තිරය පටිගත කරමින් සිටී"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"ඔබ දැනට <xliff:g id="APP_NAME">%1$s</xliff:g> පටිගත කරමින් සිටී"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"පටිගත කිරීම නවත්වන්න"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"තිරය ​​බෙදා ගැනීම"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"තිරය ​​බෙදා ගැනීම නවත්වන්න ද?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"ඔබ දැනට ඔබේ සම්පූර්ණ තිරය <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> සමග බෙදා ගනිමින් සිටී"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"ඔබ දැනට ඔබේ සම්පූර්ණ තිරය යෙදුමක් සමග බෙදා ගනිමින් සිටී"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"ඔබ දැනට <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> බෙදා ගනිමින් සිටී"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"ඔබ දැනට යෙදුමක් බෙදා ගනිමින් සිටී"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"බෙදා ගැනීම නවත්වන්න"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"විකාශ තිරය"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"විකාශය නවතන්න ද?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"ඔබ දැනට ඔබේ සම්පූර්ණ තිරය <xliff:g id="DEVICE_NAME">%1$s</xliff:g> වෙත විකාශය කරමින් සිටී"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"ඔබ දැනට ඔබේ සම්පූර්ණ තිරයම අවට උපාංගයකට විකාශය කරමින් සිටී"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"ඔබ දැනට <xliff:g id="DEVICE_NAME">%2$s</xliff:g> වෙත <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> විකාශය කරමින් සිටී"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"ඔබ දැනට අවට උපාංගයකට <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> විකාශය කරමින් සිටී"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"ඔබ දැනට <xliff:g id="DEVICE_NAME">%1$s</xliff:g> වෙත විකාශය කරයි"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"ඔබ දැනට අවට උපාංගයකට විකාශය කරමින් සිටී"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"විකාශය නවතන්න"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"වසන්න"</string>
<string name="issuerecord_title" msgid="286627115110121849">"ගැටලු රෙකෝඩරය"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"තිර සුරැකුම"</string>
<string name="ethernet_label" msgid="2203544727007463351">"ඊතර නෙට්"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"බාධා නොකරන්න"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"ප්‍රමුඛතා ප්‍රකාර"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"බ්ලූටූත්"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"යුගල කළ උපාංග නොතිබේ"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"උපාංගයක් සම්බන්ධ කිරීමට හෝ විසන්ධි කිරීමට තට්ටු කරන්න"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"සැකසීම් විවෘත කරන්න"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"වෙනත් උපාංගය"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"දළ විශ්ලේෂණය ටොගල කරන්න"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"ප්‍රමුඛතා ප්‍රකාර"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"නිමයි"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"සැකසීම්"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"එලාම සිහිකැඳවීම්, සිදුවීම්, සහ ඔබ සඳහන් කළ අමතන්නන් හැර, ශබ්ද සහ කම්පනවලින් ඔබට බාධා නොවනු ඇත. සංගීතය, වීඩියෝ, සහ ක්‍රීඩා ඇතුළු ඔබ වාදනය කිරීමට තෝරන ලද සියලු දේ ඔබට තවම ඇසෙනු ඇත."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"එලාම හැර, ශබ්ද සහ කම්පනවලින් ඔබට බාධා නොවනු ඇත. සංගීතය, වීඩියෝ, සහ ක්‍රීඩා ඇතුළු ඔබ වාදනය කිරීමට තෝරන ලද සියලු දේ ඔබට තවම ඇසෙනු ඇත."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"අභිරුචිකරණය"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"විජට්ටුව තෝරන්න"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"විජට්ටුව ඉවත් කරන්න"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"තෝරන ලද විජට්ටුව තබන්න"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"අගුළු තිර විජට්"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"ඔබේ ටැබ්ලටය අගුළු දමා තිබුණත්, ඕනෑම කෙනෙකුට ඔබේ අගුළු තිරයෙහි විජට් බැලිය හැක."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"අගුළු තිර විජට්"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"විජට් එකක් භාවිතයෙන් යෙදුමක් විවෘත කිරීමට, ඔබට ඒ ඔබ බව සත්‍යාපනය කිරීමට අවශ්‍ය වනු ඇත. එසේම, ඔබේ ටැබ්ලටය අගුළු දමා ඇති විට පවා ඕනෑම කෙනෙකුට ඒවා බැලිය හැකි බව මතක තබා ගන්න. සමහර විජට් ඔබේ අගුළු තිරය සඳහා අදහස් කර නොතිබිය හැකි අතර මෙහි එක් කිරීමට අනාරක්ෂිත විය හැක."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"දැන් අරඹන්න"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"දැනුම්දීම් නැත"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"නව දැනුම්දීම් නැත"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"අනුවර්තන දැනුම්දීම් ක්‍රියාත්මකයි"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"ඔබේ උපාංගය දැන් ශබ්දය අඩු කරන අතර ඔබට කෙටි කාල පරාසයක් තුළ බොහෝ දැනුම්දීම් ලැබෙන විට තිරය මත උත්පතන විනාඩි දෙකක් දක්වා අඩු කරයි."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"ක්‍රියාවිරහිත කරන්න"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"පැරණි දැනුම්දීම් බැලීමට අගුළු හරින්න"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"මෙම උපාංගය ඔබගේ මාපියන්ගෙන් අයකු විසින් කළමනාකරණය කෙරේ"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"පෙරනිමි"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ස්වයංක්‍රිය"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"හඬක් හෝ කම්පනයක් නැත"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ශබ්දයක් හෝ කම්පනයක් නොමැති නමුත් තවමත් සංවාද කොටසේ දිස් වේ"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"උපාංග සැකසීම් මත පදනම්ව නාද වීමට හෝ කම්පනය විය හැක"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"උපාංග සැකසීම් මත පදනම්ව නාද වීමට හෝ කම්පනය විය හැක. <xliff:g id="APP_NAME">%1$s</xliff:g> වෙතින් සංවාද පෙරනිමියෙන් බුබුළු දමයි."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"මෙම දැනුම් දීම ශබ්දයක් හෝ කම්පනයක් ඇති කළ යුතු ද යන්න පද්ධතිය මගින් තීරණය කර තිබේද"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up යතුර"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down යතුර"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete යතුර"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home යතුර"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End යතුර"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert යතුර"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"බෙදුම් තිරය"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"ආදානය"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"යෙදුම් කෙටිමං"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"වත්මන් යෙදුම"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"ප්‍රවේශ්‍යතාව"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"යතුරු පුවරු කෙටි මං"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"කෙටි මං සොයන්න"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%2$dන් %1$d වැනි මට්ටම"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"නිවෙස් පාලන"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"තිර සුරැකුමක් ලෙස ඔබේ නිවසේ පාලන වෙත ඉක්මනින් ප්‍රවේශ වන්න"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"පසුගමනය කරන්න"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-si/tiles_states_strings.xml b/packages/SystemUI/res/values-si/tiles_states_strings.xml
index 8d1f2619a1d4..4bebcc05d481 100644
--- a/packages/SystemUI/res/values-si/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-si/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"අක්‍රියයි"</item>
<item msgid="4875147066469902392">"සක්‍රියයි"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"නොමැත"</item>
+ <item msgid="2004750556637773692">"ක්‍රියාවිරහිතයි"</item>
+ <item msgid="8968530753931637871">"ක්‍රියාත්මකයි"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"නොමැත"</item>
<item msgid="5044688398303285224">"අක්‍රියයි"</item>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 2f9931661f16..8c2e2a9dc0d0 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Zobrazte klepnutím"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Pri ukladaní nahrávky obrazovky sa vyskytla chyba"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Pri spustení nahrávania obrazovky sa vyskytla chyba"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Chcete zastaviť nahrávanie?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Momentálne nahrávate celú obrazovku"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Momentálne nahrávate <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Zastaviť nahrávanie"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Zdieľa sa obrazovka"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Chcete prestať zdieľať obrazovku?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Momentálne zdieľate celú obrazovku s aplikáciou <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Momentálne zdieľate celú obrazovku s aplikáciou"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Momentálne zdieľate <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Momentálne zdieľate aplikáciu"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Prestať zdieľať"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Prenáša sa obrazovka"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Chcete zastaviť prenos?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Momentálne prenášate celú obrazovku do zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Momentálne prenášate celú obrazovku do zariadenia v okolí"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Momentálne prenášate <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> do zariadenia <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Momentálne prenášate <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> do zariadenia v okolí"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Momentálne prenášate do zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Momentálne prenášate do zariadenia v okolí"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Zastaviť prenos"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Zavrieť"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Nástroj na zaznamenávanie problémov"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Šetrič obrazovky"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Režim bez vyrušení"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Režimy priority"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Nie sú k dispozícii žiadne spárované zariadenia"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Klepnutím pripojíte alebo odpojíte zariadenie"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Otvoriť Nastavenia"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Iné zariadenie"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Prepnúť prehľad"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Režimy priority"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Hotovo"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Nastavenia"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Nebudú vás vyrušovať zvuky ani vibrácie, iba budíky, pripomenutia, udalosti a volajúci, ktorých určíte. Budete naďalej počuť všetko, čo sa rozhodnete prehrať, ako napríklad hudbu, videá a hry."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Nebudú vás vyrušovať zvuky ani vibrácie, iba budíky. Budete naďalej počuť všetko, čo sa rozhodnete prehrať, ako napríklad hudbu, videá a hry."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Prispôsobiť"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"vybrať miniaplikáciu"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"odstrániť miniaplikáciu"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"prepnúť vybranú miniaplikáciu"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Miniaplikácie na uzamknutej obrazovke"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Miniaplikácie na uzamknutej obrazovke uvidia všetci, aj keď je tablet uzamknutý."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Miniaplikácie na uzamknutej obrazovke"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Ak chcete otvoriť aplikáciu pomocou miniaplikácie, budete musieť overiť svoju totožnosť. Pamätajte, že si miniaplikáciu môže pozrieť ktokoľvek, aj keď máte tablet uzamknutý. Niektoré miniaplikácie možno nie sú určené pre uzamknutú obrazovku a ich pridanie tu môže byť nebezpečné."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Spustiť"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Žiadne upozornenia"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Žiadne nové upozornenia"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptívne upozornenia sú zap."</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Zariadenie teraz zníži hlasitosť a zredukuje vyskakovacie okná na obrazovke na dve až štyri minúty, keď dostanete veľa upozornení v krátkom čase."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Vypnúť"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Odomknutím zobrazíte staršie upozornenia"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Toto zariadenie spravuje tvoj rodič"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Predvolené"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automaticky"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Žiadny zvuk ani vibrácie"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Žiadny zvuk ani vibrácie, ale stále sa zobrazuje v sekcii konverzácie"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Môže zvoniť či vibrovať podľa nastavení v zariadení"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Môže zvoniť alebo vibrovať podľa nastavení v zariadení. Predvolene sa zobrazia konverzácie z bubliny aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Nechajte systém určiť, či má toto upozornenie vydávať zvuk alebo vibrovať"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Posunúť o stranu vyššie"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Posunúť o stranu nižšie"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Odstrániť"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Domov"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Ukončiť"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Vložiť"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Rozdelená obrazovka"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Vstup"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Odkazy do aplikácií"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aktuálna aplikácia"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Dostupnosť"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Klávesové skratky"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Vyhľadávacie odkazy"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%1$d. úroveň z %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Ovládanie domácnosti"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Rýchly prístup k ovládaniu domácnosti z šetriča obrazovky"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Vrátiť späť"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sk/tiles_states_strings.xml b/packages/SystemUI/res/values-sk/tiles_states_strings.xml
index 340af48ba576..b0fed02848f8 100644
--- a/packages/SystemUI/res/values-sk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sk/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Vypnuté"</item>
<item msgid="4875147066469902392">"Zapnuté"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Nedostupné"</item>
+ <item msgid="2004750556637773692">"Vypnuté"</item>
+ <item msgid="8968530753931637871">"Zapnuté"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Nie je k dispozícii"</item>
<item msgid="5044688398303285224">"Vypnuté"</item>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index ac78905d500e..68117afb1328 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -426,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Odpri nastavitve"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Druga naprava"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Vklop/izklop pregleda"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prednostni načini"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Končano"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Nastavitve"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Ne bodo vas motili zvoki ali vibriranje, razen v primeru alarmov, opomnikov, dogodkov in klicateljev, ki jih določite. Še vedno pa boste slišali vse, kar se boste odločili predvajati, vključno z glasbo, videoposnetki in igrami."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Ne bodo vas motili zvoki ali vibriranje, razen v primeru alarmov. Še vedno pa boste slišali vse, kar se boste odločili predvajati, vključno z glasbo, videoposnetki in igrami."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Prilagodi"</string>
@@ -492,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"postavitev izbranega pripomočka"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Pripomočki na zaklenjenem zaslonu"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Pripomočki na zaklenjenem zaslonu so vidni vsem, tudi če je tablica zaklenjena."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Pripomočki na zaklenjenem zaslonu"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Če želite aplikacijo odpreti s pripomočkom, morate potrditi, da ste to vi. Upoštevajte tudi, da si jih lahko ogledajo vsi, tudi ko je tablični računalnik zaklenjen. Nekateri pripomočki morda niso predvideni za uporabo na zaklenjenem zaslonu, zato jih tukaj morda ni varno dodati."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Razumem"</string>
@@ -548,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Začni zdaj"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Ni obvestil"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Ni novih obvestil"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Prilagodljiva obvestila so vklopljena"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Naprava za do dve minuti zmanjša glasnost in število pojavnih elementov na zaslonu, ko v kratkem času prejmete veliko obvestil."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Izklopi"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Odklenite za ogled starejših obvestil"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"To napravo upravlja tvoj starš"</string>
@@ -716,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Privzeto"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Samodejno"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Brez zvočnega opozarjanja ali vibriranja."</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Brez zvoka ali vibriranja, vendar kljub temu prikazano v razdelku s pogovorom"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Zvonjenje ali vibriranje je omogočeno na podlagi nastavitev naprave."</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Zvonjenje ali vibriranje je omogočeno na podlagi nastavitev naprave. Pogovori v aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g> so privzeto prikazani v oblačkih."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Naj sistem določi, ali ob prejemu tega obvestila naprava predvaja zvok ali zavibrira"</string>
@@ -1378,4 +1388,28 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"Kontrolniki za dom"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Hiter dostop do kontrolnikov za dom na ohranjevalniku zaslona"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"Razveljavi"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index 926a73f4baab..debd441e5533 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Trokit për të parë"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Gabim gjatë ruajtjes së regjistrimit të ekranit"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Gabim gjatë nisjes së regjistrimit të ekranit"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Të ndalohet regjistrimi?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Po regjistron aktualisht të gjithë ekranin"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Po regjistron aktualisht \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Ndalo regjistrimin"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Ekrani po ndahet"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Të ndalohet ndarja e ekranit?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Po ndan aktualisht të gjithë ekranin me \"<xliff:g id="HOST_APP_NAME">%1$s</xliff:g>\""</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Po ndan aktualisht të gjithë ekranin me një aplikacion"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Po ndan aktualisht \"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>\""</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Po ndan aktualisht një aplikacion"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Ndalo ndarjen"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Po transmeton ekranin"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Të ndalohet transmetimi?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Po transmeton aktualisht të gjithë ekranin te \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Po transmeton aktualisht të gjithë ekranin te një pajisje në afërsi"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Po transmeton aktualisht \"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>\" te \"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>\""</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Po transmeton aktualisht \"<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>\" te një pajisje në afërsi"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Po transmeton aktualisht te \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Po transmeton aktualisht te një pajisje në afërsi"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Ndalo transmetimin"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Mbyll"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Regjistruesi i problemeve"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Mbrojtësi i ekranit"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Eternet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Mos shqetëso"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Modalitetet e përparësisë"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth-i"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Nuk ofrohet për përdorim asnjë pajisje e çiftuar"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Trokit për të lidhur ose shkëputur një pajisje"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Hap \"Cilësimet\""</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Pajisje tjetër"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Kalo te përmbledhja"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Modalitetet e përparësisë"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"U krye"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Cilësimet"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Nuk do të shqetësohesh nga tingujt dhe dridhjet, përveç alarmeve, alarmeve rikujtuese, ngjarjeve dhe telefonuesve që specifikon. Do të vazhdosh të dëgjosh çdo gjë që zgjedh të luash duke përfshirë muzikën, videot dhe lojërat."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Nuk do të shqetësohesh nga tingujt dhe dridhjet, përveç alarmeve. Do të vazhdosh të dëgjosh çdo gjë që zgjedh të luash duke përfshirë muzikën, videot dhe lojërat."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Personalizo"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"zgjidh miniaplikacionin"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"hiq miniaplikacionin"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"vendos miniaplikacionin e zgjedhur"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Kyç miniaplikacionet e ekranit"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Çdo person mund të shikojë miniaplikacionet në ekranin tënd të kyçjes, edhe nëse tableti është i kyçur."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Kyç miniaplikacionet e ekranit"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Për të hapur një aplikacion duke përdorur një miniaplikacion, do të duhet të verifikosh që je ti. Ki parasysh gjithashtu që çdo person mund t\'i shikojë, edhe kur tableti yt është i kyçur. Disa miniaplikacione mund të mos jenë planifikuar për ekranin tënd të kyçjes dhe mund të mos jetë e sigurt t\'i shtosh këtu."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Fillo tani"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Asnjë njoftim"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Nuk ka njoftime të reja"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Njoftimet me përshtatje janë aktive"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Pajisja jote tani ul volumin dhe zvogëlon numrin e dritareve kërcyese në ekran për deri në dy minuta kur ti merr shumë njoftime në një periudhë të shkurtër kohe."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Çaktivizo"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Shkyç për të parë njoftimet e vjetra"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Kjo pajisje menaxhohet nga prindi yt"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"E parazgjedhur"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatike"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Asnjë tingull ose dridhje"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Nuk ka tinguj apo dridhje, por shfaqet përsëri në seksionin e bisedave"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Mund të bjerë zilja ose të dridhet në bazë të cilësimeve të pajisjes"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Mund të bjerë zilja ose të dridhet në bazë të cilësimeve të pajisjes. Bisedat nga flluska e <xliff:g id="APP_NAME">%1$s</xliff:g> si parazgjedhje."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Kërkoji sistemit të përcaktojë nëse ky njoftim duhet të lëshojë tingull apo dridhje"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Faqja lart"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Faqja poshtë"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Fshi"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Kreu"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Fundi"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Fut"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Ekrani i ndarë"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Hyrja"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Shkurtoret e aplikacionit"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aplikacioni aktual"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Qasshmëria"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Shkurtoret e tastierës"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Kërko për shkurtoret"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Niveli: %1$d nga %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Kontrollet e shtëpisë"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Qasu te kontrollet e shtëpisë si mbrojtës ekrani"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Zhbëj"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sq/tiles_states_strings.xml b/packages/SystemUI/res/values-sq/tiles_states_strings.xml
index 4f42c308baa8..126d0dc28005 100644
--- a/packages/SystemUI/res/values-sq/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sq/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Joaktiv"</item>
<item msgid="4875147066469902392">"Aktiv"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Nuk ofrohet"</item>
+ <item msgid="2004750556637773692">"Joaktiv"</item>
+ <item msgid="8968530753931637871">"Aktiv"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Nuk ofrohet"</item>
<item msgid="5044688398303285224">"Joaktiv"</item>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index e5b9445926e9..8dccb4409c99 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Чувар екрана"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Етернет"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Не узнемиравај"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Приоритетни режими"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Није доступан ниједан упарени уређај"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Додирните да бисте повезали уређај или прекинули везу"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Отвори Подешавања"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Други уређај"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Укључи/искључи преглед"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Приоритетни режими"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Готово"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Подешавања"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Неће вас узнемиравати звукови и вибрације осим за аларме, подсетнике, догађаје и позиваоце које наведете. И даље ћете чути све што одаберете да пустите, укључујући музику, видео снимке и игре."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Неће вас узнемиравати звукови и вибрације осим за аларме. И даље ћете чути све што одаберете да пустите, укључујући музику, видео снимке и игре."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Прилагоди"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"поставите изабрани виџет"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Виџети за закључани екран"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Сви могу да виде веџете на закључаном екрану, чак и када је таблет закључан."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Виџети за закључани екран"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Да бисте отворили апликацију која користи виџет, треба да потврдите да сте то ви. Имајте у виду да свако може да га види, чак и када је таблет закључан. Неки виџети можда нису намењени за закључани екран и можда није безбедно да их тамо додате."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Важи"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Започни"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Нема обавештења"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Нема нових обавештења"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Прилаг. обавештења су укључена"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Уређај сада смањује звук и број искачућих прозора на екрану до 2 минута кад примите много обавештења у кратком року."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Искључи"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Откључајте за старија обавештења"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Овим уређајем управља родитељ"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Подразумевано"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Аутоматска"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Без звука и вибрирања"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Без звука и вибрирања, али се још увек приказује у одељку за конверзације"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Може да звони или вибрира у зависности од подешавања уређаја"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Може да звони или вибрира у зависности од подешавања уређаја. Конверзације из апликације <xliff:g id="APP_NAME">%1$s</xliff:g> подразумевано се приказују у облачићима."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Нека систем утврди да ли ово обавештење треба да емитује звук или да вибрира"</string>
@@ -1378,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%1$d. ниво од %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Контроле за дом"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Брз приступ контролама за дом као чувару екрана"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Опозови"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sr/tiles_states_strings.xml b/packages/SystemUI/res/values-sr/tiles_states_strings.xml
index 904fb23b1e77..ab05c21476fb 100644
--- a/packages/SystemUI/res/values-sr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sr/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Искључено"</item>
<item msgid="4875147066469902392">"Укључено"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Недоступно"</item>
+ <item msgid="2004750556637773692">"Искључено"</item>
+ <item msgid="8968530753931637871">"Укључено"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Недоступно"</item>
<item msgid="5044688398303285224">"Искључено"</item>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 68063d662786..3b6536586f46 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Tryck för att visa"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Det gick inte att spara skärminspelningen"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Det gick inte att starta skärminspelningen"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Vill du stoppa inspelningen?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Du spelar för närvarande in hela din skärm"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Du spelar för närvarande in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Sluta spela in"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Skärmen delas"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Vill du sluta dela skärmen?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Du delar för närvarande hela din skärm med <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Du delar för närvarande hela din skärm med en app"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Du delar för närvarande <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Du delar för närvarande en app"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Sluta dela"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Skärmen castas"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Vill du sluta att casta?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Du castar för närvarande hela din skärm till <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Du castar för närvarande hela din skärm till en enhet i närheten"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Du castar <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> till <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Du castar <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> till en enhet i närheten"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Du castar för närvarande till <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Du castar för närvarande till en enhet i närheten"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Sluta casta"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Stäng"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Probleminspelare"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Skärmsläckare"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Stör ej"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Prioriterade lägen"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Det finns inga kopplade enheter tillgängliga"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Tryck för att ansluta eller koppla från en enhet"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Öppna Inställningar"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Annan enhet"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Aktivera och inaktivera översikten"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Prioriterade lägen"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Klar"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Inställningar"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Du blir inte störd av ljud och vibrationer, förutom från alarm, påminnelser, händelser och specifika samtal. Ljudet är fortfarande på för sådant du väljer att spela upp, till exempel musik, videor och spel."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Du blir inte störd av ljud och vibrationer, förutom från alarm. Ljudet är fortfarande på för sådant du väljer att spela upp, till exempel musik, videor och spel."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Anpassa"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"välj widget"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"ta bort widget"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"placera vald widget"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Widgetar för låsskärm"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Vem som helst kan se widgetar på din låsskärm, även om surfplattan är låst."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Widgetar för låsskärm"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Du måste verifiera din identitet innan du öppnar en app med en widget. Tänk också på att alla kan se dem, även när surfplattan är låst. Vissa widgetar kanske inte är avsedda för låsskärmen och det kan vara osäkert att lägga till dem här."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Starta nu"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Inga aviseringar"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Det finns inga nya aviseringar"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Anpassade aviseringar är på"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Om du får många aviseringar tätt inpå varandra sänker nu enheten volymen och minskar antalet popuper i upp till två minuter."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Inaktivera"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Lås upp för att se äldre aviseringar"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Den här enheten hanteras av din förälder"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Standard"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Automatiskt"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Inga ljud eller vibrationer"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Inga ljud eller vibrationer men visas fortfarande i avsnittet för konversationer"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Kan ringa eller vibrera beroende på inställningarna på enheten"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Kan ringa eller vibrera beroende på inställningarna på enheten. Konversationer från <xliff:g id="APP_NAME">%1$s</xliff:g> visas i bubblor som standard."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Låt systemet avgöra om den här aviseringen ska låta eller vibrera"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Sida upp"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Sida ned"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Radera"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Start"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Slut"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Infoga"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Delad skärm"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Ingång"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Genvägar till appar"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Aktuell app"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Tillgänglighet"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Kortkommandon"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Sökgenvägar"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Nivå %1$d av %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Hemstyrning"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Kom snabbt åt hemstyrningen via skärmsläckaren"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Ångra"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sv/tiles_states_strings.xml b/packages/SystemUI/res/values-sv/tiles_states_strings.xml
index bd62fc146d33..ba740d5db672 100644
--- a/packages/SystemUI/res/values-sv/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sv/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Av"</item>
<item msgid="4875147066469902392">"På"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Inte tillgängliga"</item>
+ <item msgid="2004750556637773692">"Av"</item>
+ <item msgid="8968530753931637871">"På"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Inte tillgängligt"</item>
<item msgid="5044688398303285224">"Av"</item>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 986e00e5e539..faaa1c484ebc 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Gusa ili uangalie"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Hitilafu imetokea wakati wa kuhifadhi rekodi ya skrini"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Hitilafu imetokea wakati wa kuanza kurekodi skrini"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Ungependa kuacha kurekodi?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Kwa sasa unarekodi skrini yako nzima"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Kwa sasa unarekodi <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Acha kurekodi"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Inaruhusu ufikiaji kwenye skrini"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Ungependa kuacha kuonyesha skrini?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Kwa sasa unatuma skrini yako nzima kwenye <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Kwa sasa unatuma skrini yako nzima kwenye programu"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Kwa sasa unatuma <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Kwa sasa unatuma programu"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Acha kuonyesha skrini"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Inatuma skrini"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Ungependa kuacha kutuma?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Kwa sasa unatuma skrini yako nzima kwenye <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Kwa sasa unatuma skrini yako nzima kwenye kifaa kilicho karibu"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Kwa sasa unatuma <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> kwenye <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Kwa sasa unatuma <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> kwenye kifaa kilicho karibu"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Kwa sasa unatuma maudhui kwenye <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Kwa sasa unatuma maudhui kwenye kifaa kilicho karibu"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Acha kutuma maudhui"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Funga"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Kifaa cha Kurekodi Hitilafu"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Taswira ya skrini"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Usinisumbue"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Hali za kipaumbele"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Hakuna vifaa vilivyooanishwa vinavyopatikana"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Gusa ili uunganishe au utenganishe kifaa"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Fungua Mipangilio"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Kifaa kingine"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Washa Muhtasari"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Hali za kipaumbele"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Nimemaliza"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Mipangilio"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Hutasumbuliwa na sauti na mitetemo, isipokuwa kengele, vikumbusho, matukio na simu zinazopigwa na watu uliobainisha. Bado utasikia chochote utakachochagua kucheza, ikiwa ni pamoja na muziki, video na michezo."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Hutasumbuliwa na sauti na mitetemo, isipokuwa kengele. Bado utasikia chochote utakachochagua kucheza, ikiwa ni pamoja na muziki, video na michezo."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Badilisha upendavyo"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"chagua wijeti"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"ondoa wijeti"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"weka wijeti uliyochagua"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Wijeti zinazoonekana kwenye skrini iliyofungwa"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Yeyote anaweza kuona wijeti kwenye skrini yako iliyofungwa, hata ikiwa umefunga kishikwambi chako."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Wijeti zinazoonekana kwenye skrini iliyofungwa"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Utahitaji kuthibitisha kuwa ni wewe ili ufungue programu ukitumia wijeti. Pia, kumbuka kuwa mtu yeyote anaweza kuziona, hata kishikwambi chako kikiwa kimefungwa. Huenda baadhi ya wijeti hazikukusudiwa kutumika kwenye skrini yako iliyofungwa na huenda si salama kuziweka hapa."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Anza sasa"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Hakuna arifa"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Hakuna arifa mpya"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Umewasha arifa zinazojirekebisha"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Sasa kifaa chako kinapunguza sauti na idadi ya madirisha ibukizi kwenye skrini kwa hadi dakika mbili ukipokea arifa nyingi kwa muda mfupi."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Zima"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Fungua ili uone arifa za zamani"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Kifaa hiki kinadhibitiwa na mzazi wako"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Chaguomsingi"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Otomatiki"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Hakuna sauti wala mtetemo"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Hakutakuwa na sauti wala mtetemo lakini bado itaonekana katika sehemu ya mazungumzo"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Huenda ikalia au kutetema kulingana na mipangilio ya kifaa"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Huenda ikalia au kutetema kulingana na mipangilio ya kifaa. Mazungumzo kutoka kiputo cha <xliff:g id="APP_NAME">%1$s</xliff:g> kwa chaguomsingi."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Ruhusu mfumo ubainishe iwapo arifa hii inapaswa kutoa sauti au mtetemo"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Futa"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Mwanzo"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Mwisho"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Ingiza"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Gawa skrini"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Kifaa cha kuingiza data"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Njia za mikato za programu"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Programu Inayotumika Sasa"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Ufikivu"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Mikato ya kibodi"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Njia mkato za kutafutia"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Kiwango cha %1$d kati ya %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Dhibiti Vifaa Nyumbani"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Fikia haraka vidhibiti vya vifaa nyumbani vikiwa taswira ya skrini"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Tendua"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-sw/tiles_states_strings.xml b/packages/SystemUI/res/values-sw/tiles_states_strings.xml
index b291f0dfee2c..369d56ac8fd9 100644
--- a/packages/SystemUI/res/values-sw/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-sw/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Kimezimwa"</item>
<item msgid="4875147066469902392">"Kimewashwa"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Haipatikani"</item>
+ <item msgid="2004750556637773692">"Imezimwa"</item>
+ <item msgid="8968530753931637871">"Imewashwa"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Hakipatikani"</item>
<item msgid="5044688398303285224">"Kimezimwa"</item>
diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml
index 315e19872986..414d0a713115 100644
--- a/packages/SystemUI/res/values-ta/strings.xml
+++ b/packages/SystemUI/res/values-ta/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"பார்க்கத் தட்டவும்"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"ஸ்கிரீன் ரெக்கார்டிங்கைச் சேமிப்பதில் பிழை ஏற்பட்டது"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"ஸ்கிரீன் ரெக்கார்டிங்கைத் தொடங்குவதில் பிழை"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"ரெக்கார்டிங்கை நிறுத்தவா?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"இப்போது உங்கள் முழுத்திரையையும் ரெக்கார்டு செய்கிறீர்கள்"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"இப்போது நீங்கள் <xliff:g id="APP_NAME">%1$s</xliff:g> ஐ ரெக்கார்டு செய்கிறீர்கள்"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"ரெக்கார்டிங்கை நிறுத்து"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"திரையைப் பகிர்கிறது"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"திரையைப் பகிர்வதை நிறுத்தவா?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"இப்போது உங்கள் முழுத்திரையையும் <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> உடன் பகிர்கிறீர்கள்"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"இப்போது உங்கள் முழுத்திரையையும் ஆப்ஸுடன் பகிர்கிறீர்கள்"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"இப்போது நீங்கள் <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ஐப் பகிர்கிறீர்கள்"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"இப்போது நீங்கள் ஓர் ஆப்ஸைப் பகிர்கிறீர்கள்"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"பகிர்வதை நிறுத்து"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"திரையை அலைபரப்புகிறது"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"அலைபரப்பை நிறுத்தவா?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"இப்போது உங்கள் முழுத்திரையையும் <xliff:g id="DEVICE_NAME">%1$s</xliff:g>க்கு அலைபரப்புகிறீர்கள்"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"இப்போது உங்கள் முழுத்திரையையும் அருகிலுள்ள சாதனத்திற்கு அலைபரப்புகிறீர்கள்"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"இப்போது நீங்கள் <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ஐ <xliff:g id="DEVICE_NAME">%2$s</xliff:g>க்கு அலைபரப்புகிறீர்கள்"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"இப்போது நீங்கள் <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> ஐ அருகிலுள்ள சாதனத்திற்கு அலைபரப்புகிறீர்கள்"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"இப்போது நீங்கள் <xliff:g id="DEVICE_NAME">%1$s</xliff:g>க்கு அலைபரப்புகிறீர்கள்"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"இப்போது நீங்கள் அருகிலுள்ள சாதனத்திற்கு அலைபரப்புகிறீர்கள்"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"அலைபரப்புவதை நிறுத்து"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"மூடு"</string>
<string name="issuerecord_title" msgid="286627115110121849">"சிக்கல் ரெக்கார்டர்"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"ஸ்கிரீன் சேவர்"</string>
<string name="ethernet_label" msgid="2203544727007463351">"ஈதர்நெட்"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"தொந்தரவு செய்ய வேண்டாம்"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"முன்னுரிமைப் பயன்முறைகள்"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"புளூடூத்"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"இணைக்கப்பட்ட சாதனங்கள் இல்லை"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"சாதனத்தை இணைக்க/துண்டிக்க தட்டவும்"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"அமைப்புகளைத் திற"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"பிற சாதனம்"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"மேலோட்டப் பார்வையை நிலைமாற்று"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"முன்னுரிமைப் பயன்முறைகள்"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"முடிந்தது"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"அமைப்புகள்"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"அலாரங்கள், நினைவூட்டல்கள், நிகழ்வுகள் மற்றும் குறிப்பிட்ட அழைப்பாளர்களைத் தவிர்த்து, பிற ஒலிகள் மற்றும் அதிர்வுகளின் தொந்தரவு இருக்காது. எனினும், நீங்கள் எதையேனும் (இசை, வீடியோக்கள், கேம்ஸ் போன்றவை) ஒலிக்கும்படி தேர்ந்தெடுத்திருந்தால், அவை வழக்கம் போல் ஒலிக்கும்."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"அலாரங்களைத் தவிர்த்து, பிற ஒலிகள் மற்றும் அதிர்வுகளின் தொந்தரவு இருக்காது. எனினும், நீங்கள் எதையேனும் (இசை, வீடியோக்கள், கேம்ஸ் போன்றவை) ஒலிக்கும்படி தேர்ந்தெடுத்திருந்தால், அவை வழக்கம் போல் ஒலிக்கும்."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"பிரத்தியேகமாக்கு"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"விட்ஜெட்டைத் தேர்ந்தெடுக்கும்"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"விட்ஜெட்டை அகற்றும்"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"தேர்ந்தெடுத்த விட்ஜெட்டைக் காட்சிப்படுத்தும்"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"பூட்டுத் திரை விட்ஜெட்கள்"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"டேப்லெட் பூட்டப்பட்டிருந்தாலும் பூட்டுத் திரையில் விட்ஜெட்டை எவரும் பார்க்கலாம்."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"பூட்டுத் திரை விட்ஜெட்கள்"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"விட்ஜெட்டைப் பயன்படுத்தி ஆப்ஸைத் திறக்க, அது நீங்கள்தான் என்பதை உறுதிசெய்ய வேண்டும். அத்துடன், உங்கள் டேப்லெட் பூட்டப்பட்டிருந்தாலும்கூட அவற்றை யார் வேண்டுமானாலும் பார்க்கலாம் என்பதை நினைவில்கொள்ளுங்கள். சில விட்ஜெட்கள் உங்கள் பூட்டுத் திரைக்காக உருவாக்கப்பட்டவை அல்ல என்பதையும் அவற்றை இங்கே சேர்ப்பது பாதுகாப்பற்றதாக இருக்கக்கூடும் என்பதையும் நினைவில்கொள்ளுங்கள்."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"இப்போது தொடங்கு"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"அறிவிப்புகள் இல்லை"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"புதிய அறிவிப்புகள் இல்லை"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"சூழல்சார் அறிவிப்புகள் இயக்கப்பட்டது"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"குறைந்த நேரத்தில் அதிக அறிவிப்பைப் பெறும்போது இரண்டு நிமிடங்கள் வரை உங்கள் சாதனம் ஒலியையும், திரையில் காட்டப்படும் பாப்-அப்களின் எண்ணிக்கையையும் குறைக்கிறது."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"முடக்கு"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"பழைய அறிவிப்பைப் பார்க்க அன்லாக் செய்க"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"இந்தச் சாதனம் உங்கள் பெற்றோரால் நிர்வகிக்கப்படுகிறது"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"இயல்புநிலை"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"தானியங்கு"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"ஒலி / அதிர்வு இல்லை"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ஒலியோ அதிர்வோ இருக்காது, ஆனால் உரையாடல் பிரிவில் தொடர்ந்து காட்டப்படும்"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"சாதன அமைப்புகளைப் பொறுத்து ஒலிக்கக்கூடும் அல்லது அதிர்வடையக்கூடும்"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"சாதன அமைப்புகளைப் பொறுத்து ஒலிக்கக்கூடும் அல்லது அதிர்வடையக்கூடும். இயல்பாக, <xliff:g id="APP_NAME">%1$s</xliff:g> ஆப்ஸில் பெறப்படும் உரையாடல் அறிவிப்புகள் குமிழ்களாகத் தோன்றும்."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"இந்த அறிவிப்பு ஒலி எழுப்ப வேண்டுமா அதிர வேண்டுமா என்பதை சிஸ்டம் தீர்மானிக்கும்"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"பேஜ் அப்"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"பேஜ் டவுன்"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"டெலிட்"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"ஹோம்"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"என்ட்"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"இன்சர்ட்"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"திரைப் பிரிப்பு"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"உள்ளீடு"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"ஆப்ஸ் ஷார்ட்கட்கள்"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"தற்போதைய ஆப்ஸ்"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"மாற்றுத்திறன் வசதி"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"கீபோர்டு ஷார்ட்கட்கள்"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"தேடல் ஷார்ட்கட்கள்"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"நிலை, %2$d இல் %1$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"ஹோம் கன்ட்ரோல்கள்"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"ஹோம் கன்ட்ரோல்களை ஸ்கிரீன் சேவராக அணுகலாம்"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"செயல்தவிர்"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-ta/tiles_states_strings.xml b/packages/SystemUI/res/values-ta/tiles_states_strings.xml
index a180f4907a18..9f23d0af0c06 100644
--- a/packages/SystemUI/res/values-ta/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-ta/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"முடக்கப்பட்டுள்ளது"</item>
<item msgid="4875147066469902392">"இயக்கப்பட்டுள்ளது"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"இல்லை"</item>
+ <item msgid="2004750556637773692">"முடக்கப்பட்டுள்ளது"</item>
+ <item msgid="8968530753931637871">"இயக்கப்பட்டுள்ளது"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"கிடைக்கவில்லை"</item>
<item msgid="5044688398303285224">"முடக்கப்பட்டுள்ளது"</item>
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index 87e205bfec16..1b1d6080d710 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"స్క్రీన్ సేవర్"</string>
<string name="ethernet_label" msgid="2203544727007463351">"ఈథర్‌నెట్"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"అంతరాయం కలిగించవద్దు"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"ముఖ్యమైన ఫైల్స్ మోడ్స్"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"బ్లూటూత్"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"జత చేసిన పరికరాలు ఏవీ అందుబాటులో లేవు"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"పరికరాన్ని కనెక్ట్ చేయడానికి లేదా డిస్‌కనెక్ట్ చేయడానికి ట్యాప్ చేయండి"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"సెట్టింగ్‌లను తెరవండి"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"ఇతర పరికరం"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"స్థూలదృష్టిని టోగుల్ చేయి"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"ముఖ్యమైన ఫైళ్ల మోడ్స్"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"పూర్తయింది"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"సెట్టింగ్‌లు"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"మీరు పేర్కొనే అలారాలు, రిమైండర్‌లు, ఈవెంట్‌లు మరియు కాలర్‌ల నుండి మినహా మరే ఇతర ధ్వనులు మరియు వైబ్రేషన్‌లతో మీకు అంతరాయం కలగదు. మీరు ఇప్పటికీ సంగీతం, వీడియోలు మరియు గేమ్‌లతో సహా మీరు ప్లే చేయడానికి ఎంచుకున్నవి ఏవైనా వింటారు."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"అలారాలు నుండి మినహా మరే ఇతర ధ్వనులు మరియు వైబ్రేషన్‌లతో మీకు అంతరాయం కలగదు. మీరు ఇప్పటికీ సంగీతం, వీడియోలు మరియు గేమ్‌లతో సహా మీరు ప్లే చేయడానికి ఎంచుకున్నవి ఏవైనా వింటారు."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"అనుకూలంగా మార్చండి"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"ఎంచుకున్న విడ్జెట్ కోసం ప్లేస్‌ను ఎంచుకోండి"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"లాక్ స్క్రీన్ విడ్జెట్‌లు"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"మీ టాబ్లెట్ లాక్ చేసి ఉన్నా, మీ లాక్ స్క్రీన్‌లో విడ్జెట్‌లను ఎవరైనా చూడవచ్చు."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"లాక్ స్క్రీన్ విడ్జెట్‌లు"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"విడ్జెట్‌ను ఉపయోగించి యాప్‌ను తెరవడానికి, ఇది మీరేనని వెరిఫై చేయాల్సి ఉంటుంది. అలాగే, మీ టాబ్లెట్ లాక్ చేసి ఉన్నప్పటికీ, ఎవరైనా వాటిని చూడగలరని గుర్తుంచుకోండి. కొన్ని విడ్జెట్‌లు మీ లాక్ స్క్రీన్‌కు తగినవి కాకపోవచ్చు, వాటిని ఇక్కడ జోడించడం సురక్షితం కాకపోవచ్చు."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"అర్థమైంది"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"ఇప్పుడే ప్రారంభించండి"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"నోటిఫికేషన్‌లు లేవు"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"కొత్త నోటిఫికేషన్‌లు ఏవీ లేవు"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"అనుకూల నోటిఫికేషన్‌లు ఆన్‌లో ఉన్నాయి"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"మీరు తక్కువ సమయంలో అనేక నోటిఫికేషన్‌లను స్వీకరించినప్పుడు మీ పరికరం ఇప్పుడు వాల్యూమ్‌ను తగ్గిస్తుంది, స్క్రీన్‌పై పాప్-అప్‌లను రెండు నిమిషాల వరకు తగ్గిస్తుంది."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"ఆఫ్ చేయండి"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"పాత నోటిఫికేషన్‌ల కోసం అన్‌లాక్ చేయండి"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"ఈ పరికరాన్ని మీ తల్లి/తండ్రి మేనేజ్ చేస్తున్నారు"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ఆటోమేటిక్ సెట్టింగ్"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"ఆటోమేటిక్"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"సౌండ్ లేదా వైబ్రేషన్‌లు ఏవీ ఉండవు"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ఎటువంటి సౌండ్ లేదా వైబ్రేషన్ లేకుండా సంభాషణ విభాగంలో నోటిఫికేషన్ కనిపిస్తుంది"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"పరికర సెట్టింగ్‌ల ఆధారంగా రింగ్ లేదా వైబ్రేట్ కావచ్చు"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"పరికర సెట్టింగ్‌ల ఆధారంగా రింగ్ లేదా వైబ్రేట్ కావచ్చు. <xliff:g id="APP_NAME">%1$s</xliff:g> నుండి సంభాషణలు ఆటోమేటిక్‌గా బబుల్‌లో కనిపిస్తాయి."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ఈ నోటిఫికేషన్ వచ్చినప్పుడు శబ్దం చేయాలా లేదా వైబ్రేట్ చేయాలా అనేది నిర్ణయించడానికి సిస్టమ్‌కు అనుమతి ఇవ్వండి"</string>
@@ -1082,7 +1091,7 @@
<string name="controls_dialog_ok" msgid="2770230012857881822">"జోడించండి"</string>
<string name="controls_dialog_remove" msgid="3775288002711561936">"తీసివేయండి"</string>
<string name="controls_dialog_message" msgid="342066938390663844">"<xliff:g id="APP">%s</xliff:g> ద్వారా సూచించబడింది"</string>
- <string name="controls_tile_locked" msgid="731547768182831938">"పరికరంలాక్ చేయబడింది"</string>
+ <string name="controls_tile_locked" msgid="731547768182831938">"డివైజ్ లాక్ అయ్యింది"</string>
<string name="controls_settings_show_controls_dialog_title" msgid="3357852503553809554">"లాక్ స్క్రీన్ నుండి పరికరాలను చూపించాలా, కంట్రోల్ చేయాలా?"</string>
<string name="controls_settings_show_controls_dialog_message" msgid="7666211700524587969">"మీరు లాక్ స్క్రీన్‌కు మీ బాహ్య పరికరాల కోసం కంట్రోల్స్‌ను జోడించవచ్చు.\n\nమీ ఫోన్ లేదా టాబ్లెట్‌ను అన్‌లాక్ చేయకుండానే కొన్ని పరికరాలను కంట్రోల్ చేయడానికి మీ పరికర యాప్ మిమ్మల్ని అనుమతించవచ్చు.\n\nమీరు సెట్టింగ్‌లలో ఎప్పుడైనా మార్పులు చేయవచ్చు."</string>
<string name="controls_settings_trivial_controls_dialog_title" msgid="7593188157655036677">"లాక్ స్క్రీన్ నుండి పరికరాలను కంట్రోల్ చేయాలా?"</string>
@@ -1378,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"%2$dలో %1$dవ స్థాయి"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"హోమ్ కంట్రోల్స్"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"హోమ్ కంట్రోల్స్‌ను స్క్రీన్ సేవర్‌గా చేసి వేగంగా యాక్సెస్ పొందండి"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"చర్య రద్దు చేయండి"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-te/tiles_states_strings.xml b/packages/SystemUI/res/values-te/tiles_states_strings.xml
index 609a846cd936..1f70f859cd6e 100644
--- a/packages/SystemUI/res/values-te/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-te/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"ఆఫ్‌లో ఉంది"</item>
<item msgid="4875147066469902392">"ఆన్‌లో ఉంది"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"అందుబాటులో లేదు"</item>
+ <item msgid="2004750556637773692">"ఆఫ్‌లో ఉంది"</item>
+ <item msgid="8968530753931637871">"ఆన్‌లో ఉంది"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"అందుబాటులో లేదు"</item>
<item msgid="5044688398303285224">"ఆఫ్‌లో ఉంది"</item>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 6449dd85056f..c4e23340c659 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -426,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"เปิดการตั้งค่า"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"อุปกรณ์อื่น"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"สลับภาพรวม"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"โหมดสำคัญ"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"เสร็จสิ้น"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"การตั้งค่า"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"คุณจะไม่ถูกรบกวนจากเสียงและการสั่น ยกเว้นเสียงนาฬิกาปลุก การช่วยเตือน กิจกรรม และผู้โทรที่ระบุไว้ คุณจะยังคงได้ยินสิ่งที่คุณเลือกเล่น เช่น เพลง วิดีโอ และเกม"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"คุณจะไม่ถูกรบกวนจากเสียงและการสั่น ยกเว้นเสียงนาฬิกาปลุก คุณจะยังคงได้ยินสิ่งที่คุณเลือกเล่น เช่น เพลง วิดีโอ และเกม"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"กำหนดค่า"</string>
@@ -492,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"จัดวางวิดเจ็ตที่เลือก"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"วิดเจ็ตในหน้าจอล็อก"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"ทุกคนจะดูวิดเจ็ตที่อยู่ในหน้าจอล็อกของคุณได้ แม้ว่าแท็บเล็ตจะล็อกอยู่ก็ตาม"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"วิดเจ็ตในหน้าจอล็อก"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"หากต้องการเปิดแอปโดยใช้วิดเจ็ต คุณจะต้องยืนยันตัวตนของคุณ นอกจากนี้ โปรดทราบว่าผู้อื่นจะดูวิดเจ็ตเหล่านี้ได้แม้ว่าแท็บเล็ตจะล็อกอยู่ก็ตาม วิดเจ็ตบางอย่างอาจไม่ได้มีไว้สำหรับหน้าจอล็อกของคุณ และอาจไม่ปลอดภัยที่จะเพิ่มที่นี่"</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"รับทราบ"</string>
@@ -548,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"เริ่มเลย"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"ไม่มีการแจ้งเตือน"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"ไม่มีการแจ้งเตือนใหม่"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"การแจ้งเตือนแบบปรับอัตโนมัติเปิดอยู่"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"จากนี้ไปอุปกรณ์จะลดระดับเสียงและจำนวนป๊อปอัปบนหน้าจอสูงสุด 2 นาทีเมื่อคุณได้รับการแจ้งเตือนจำนวนมากในระยะเวลาสั้นๆ"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"ปิด"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"ปลดล็อกเพื่อดูการแจ้งเตือนเก่า"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"อุปกรณ์นี้จัดการโดยผู้ปกครอง"</string>
@@ -716,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ค่าเริ่มต้น"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"อัตโนมัติ"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"ไม่มีเสียงหรือการสั่น"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"ไม่มีเสียงหรือการสั่น แต่ยังคงปรากฏในส่วนการสนทนา"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"อาจส่งเสียงหรือสั่นโดยขึ้นอยู่กับการตั้งค่าอุปกรณ์"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"อาจส่งเสียงหรือสั่นโดยขึ้นอยู่กับการตั้งค่าอุปกรณ์ การสนทนาจาก <xliff:g id="APP_NAME">%1$s</xliff:g> จะแสดงเป็นบับเบิลโดยค่าเริ่มต้น"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"ให้ระบบพิจารณาว่าจะให้การแจ้งเตือนนี้ส่งเสียงหรือสั่นหรือไม่"</string>
@@ -1357,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"แยกหน้าจอ"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"อินพุต"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"แป้นพิมพ์ลัดของแอป"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"แอปปัจจุบัน"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"การช่วยเหลือพิเศษ"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"แป้นพิมพ์ลัด"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"ค้นหาแป้นพิมพ์ลัด"</string>
@@ -1379,4 +1388,28 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"ระบบควบคุมอุปกรณ์สมาร์ทโฮม"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"เข้าถึงระบบควบคุมอุปกรณ์สมาร์ทโฮมได้อย่างรวดเร็วผ่านภาพพักหน้าจอ"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"เลิกทำ"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index e52ebccf58fb..a00bcc03524b 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -426,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Buksan ang Mga Setting"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Iba pang device"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"I-toggle ang Overview"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Mga priyoridad na mode"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Tapos na"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Mga Setting"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Hindi ka maiistorbo ng mga tunog at pag-vibrate, maliban mula sa mga alarm, paalala, event, at tumatawag na tutukuyin mo. Maririnig mo pa rin ang kahit na anong piliin mong i-play kabilang ang mga musika, video, at laro."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Hindi ka maiistorbo ng mga tunog at pag-vibrate, maliban sa mga alarm. Maririnig mo pa rin ang anumang pipiliin mong i-play kabilang ang mga musika, video, at laro."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"I-customize"</string>
@@ -492,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"ilagay ang napiling widget"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Mga widget ng lock screen"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Makikita ng sinuman ang mga widget sa lock screen, kahit naka-lock ang tablet."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Mga widget ng lock screen"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Para magbukas ng app gamit ang isang widget, kakailanganin mong i-verify na ikaw iyan. Bukod pa rito, tandaang puwedeng tingnan ng kahit na sino ang mga ito, kahit na naka-lock ang iyong tablet. Posibleng hindi para sa iyong lock screen ang ilang widget at posibleng hindi ligtas ang mga ito na idagdag dito."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>
@@ -548,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Magsimula ngayon"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Walang mga notification"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Walang bagong notification"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"On ang adaptive notifications"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Hinihinaan ng device ang volume at binabawasan nito ang pop-ups nang hanggang 2 minuto kapag nakatanggap ng maraming notification sa maikling oras."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"I-off"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"I-unlock para makita ang mga mas lumang notification"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Pinapamahalaan ng magulang mo itong device"</string>
@@ -716,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Default"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Awtomatiko"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Walang tunog o pag-vibrate"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Walang tunog o pag-vibrate, pero lumalabas pa rin sa seksyon ng pag-uusap"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Puwedeng mag-ring o mag-vibrate batay sa mga setting ng device"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Puwedeng mag-ring o mag-vibrate batay sa mga setting ng device. Mga pag-uusap mula sa <xliff:g id="APP_NAME">%1$s</xliff:g> bubble bilang default."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Ipatukoy sa system kung dapat gumawa ng tunog o pag-vibrate ang notification na ito"</string>
@@ -1357,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Split screen"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Input"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Mga shortcut ng app"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Kasalukuyang App"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Accessibility"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Mga keyboard shortcut"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Mga shortcut ng paghahanap"</string>
@@ -1379,4 +1388,28 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"Mga Home Control"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Mabilis i-access ang home control bilang screensaver"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"I-undo"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 2c429d8caa36..855febef18f7 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Görüntülemek için dokunun"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Ekran kaydı saklanırken hata oluştu"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Ekran kaydı başlatılırken hata oluştu"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Kayıt işlemi durdurulsun mu?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Şu anda ekranınızın tamamını kaydediyorsunuz"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Şu anda <xliff:g id="APP_NAME">%1$s</xliff:g> içeriğini kaydediyorsunuz"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Kaydı durdur"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Ekran paylaşılıyor"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Ekran paylaşımı durdurulsun mu?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Şu anda ekranınızın tamamını <xliff:g id="HOST_APP_NAME">%1$s</xliff:g> ile paylaşıyorsunuz"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Şu anda ekranınızın tamamını bir uygulamayla paylaşıyorsunuz"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Şu anda <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> içeriğini paylaşıyorsunuz"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Şu anda bir uygulamayı paylaşıyorsunuz"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Paylaşımı durdur"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Ekran yayınlanıyor"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Yayın durdurulsun mu?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Şu anda ekranınızın tamamını <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında yayınlıyorsunuz"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Şu anda ekranınızın tamamını yakındaki bir cihazda yayınlıyorsunuz"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Şu anda <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> içeriğini <xliff:g id="DEVICE_NAME">%2$s</xliff:g> cihazında yayınlıyorsunuz"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Şu anda <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> içeriğini yakındaki bir cihazda yayınlıyorsunuz"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Şu anda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında yayınlıyorsunuz"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Şu anda yakındaki bir cihazda yayınlıyorsunuz"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Yayını durdur"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Kapat"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Sorun Kaydedici"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Ekran koruyucu"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Rahatsız Etmeyin"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Öncelik modları"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Kullanılabilir eşlenmiş cihaz yok"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Cihaz bağlamak veya cihazın bağlantısını kesmek için dokunun"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Ayarlar\'ı aç"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Diğer cihaz"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Genel bakışı aç/kapat"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Öncelik modları"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Bitti"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Ayarlar"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Alarmlar, hatırlatıcılar, etkinlikler ve sizin seçtiğiniz kişilerden gelen çağrılar dışında hiçbir ses ve titreşimle rahatsız edilmeyeceksiniz. O sırada çaldığınız müzik, seyrettiğiniz video ya da oynadığınız oyunların sesini duymaya devam edeceksiniz."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Alarmlar dışında hiçbir ses ve titreşimle rahatsız edilmeyeceksiniz. O sırada çaldığınız müzik, seyrettiğiniz video ya da oynadığınız oyunların sesini duymaya devam edeceksiniz."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Özelleştir"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"widget seçin"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"widget\'ı kaldır"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"seçilen widget\'ı yerleştir"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Kilit ekranı widget\'ları"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Kilit ekranınızdaki widget\'lar, tabletiniz kilitliyken bile herkes tarafından görüntülenebilir."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Kilit ekranı widget\'ları"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Widget kullanarak bir uygulamayı açmak için kimliğinizi doğrulamanız gerekir. Ayrıca, tabletiniz kilitliyken bile widget\'ların herkes tarafından görüntülenebileceğini unutmayın. Bazı widget\'lar kilit ekranınız için tasarlanmamış olabileceğinden buraya eklenmeleri güvenli olmayabilir."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Şimdi başlat"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Bildirim yok"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Yeni bildirim yok"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Uyarlanabilir bildirimler açık"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Cihazınız, kısa süre içinde çok sayıda bildirim aldığınızda artık iki dakika boyunca sesi kısar ve ekrandaki pop-up\'ları azaltır."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Kapat"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Eski bildirimler için kilidi açın"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Bu cihaz ebeveyniniz tarafından yönetiliyor"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Varsayılan"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Otomatik"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Sessiz veya titreşim yok"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Ses veya titreşim olmamasına rağmen görüşme bölümünde görünmeye devam ediyor"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Cihaz ayarlarına bağlı olarak zili çalabilir veya titreyebilir"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Cihaz ayarlarına bağlı olarak zili çalabilir veya titreyebilir <xliff:g id="APP_NAME">%1$s</xliff:g> adlı uygulamadan görüşmeler varsayılan olarak baloncukla gösterilir."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Bu bildirimin ses çıkarması veya titreşmesi gerekip gerekmediğine sistem karar versin"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Sayfa Yukarı"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Sayfa Aşağı"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Bölünmüş ekran"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Giriş"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Uygulama kısayolları"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Mevcut Uygulama"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Erişilebilirlik"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Klavye kısayolları"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Arama kısayolları"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Seviye %1$d / %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Ev Kontrolleri"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Ekran koruyucu olarak ev kontrollerinize hızla erişin"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Geri al"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-tr/tiles_states_strings.xml b/packages/SystemUI/res/values-tr/tiles_states_strings.xml
index b26588befe4d..1c9224b0141d 100644
--- a/packages/SystemUI/res/values-tr/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-tr/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Kapalı"</item>
<item msgid="4875147066469902392">"Açık"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Yok"</item>
+ <item msgid="2004750556637773692">"Kapalı"</item>
+ <item msgid="8968530753931637871">"Açık"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Kullanılamıyor"</item>
<item msgid="5044688398303285224">"Kapalı"</item>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 3ebb787fd1ac..dec917b11415 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Натисніть, щоб переглянути"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Не вдалося зберегти запис відео з екрана"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Не вдалося почати запис екрана"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Зупинити запис?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Ви зараз записуєте відео з усього екрана"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Ви зараз записуєте відео з додатка <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Зупинити запис"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Показ екрана"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Зупинити показ екрана?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Ви зараз ділитеся вмістом усього екрана з додатком <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Ви зараз ділитеся вмістом усього екрана з додатком"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Ви зараз показуєте вікно додатка <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Ви зараз показуєте вікно додатка"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Зупинити показ"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Трансляція екрана"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Зупинити трансляцію?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Ви зараз транслюєте весь екран на пристрій \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Ви зараз транслюєте весь екран на пристрій поблизу"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Ви зараз транслюєте додаток <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> на пристрій \"<xliff:g id="DEVICE_NAME">%2$s</xliff:g>\""</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Ви зараз транслюєте додаток <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> на пристрій поблизу"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Ви зараз транслюєте контент на пристрій \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Ви зараз транслюєте контент на пристрій поблизу"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Припинити трансляцію"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Закрити"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Засіб запису проблем"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Заставка"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Не турбувати"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Режими пріоритету"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Немає спарених пристроїв"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Натисніть, щоб під’єднати або від’єднати пристрій"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Відкрити налаштування"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Інший пристрій"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Увімкнути або вимкнути огляд"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Режими пріоритету"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Готово"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Налаштування"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Ви отримуватиме звукові та вібросигнали лише для вибраних будильників, нагадувань, подій і абонентів. Однак ви чутимете все, що захочете відтворити, зокрема музику, відео й ігри."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Ви отримуватиме звукові та вібросигнали лише для будильників. Однак ви чутимете все, що захочете відтворити, зокрема музику, відео й ігри."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Налаштувати"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"виберіть віджет"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"видалити віджет"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"розмістити вибраний віджет"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Віджети для заблокованого екрана"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Будь-хто бачитиме віджети навіть на заблокованому екрані планшета."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Віджети для заблокованого екрана"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Щоб відкрити додаток за допомогою віджета, вам потрібно буде підтвердити особу. Пам’ятайте також, що бачити віджети можуть усі, навіть коли планшет заблоковано. Можливо, деякі віджети не призначені для заблокованого екрана, і додавати їх на нього може бути небезпечно."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Почати зараз"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Сповіщень немає"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Немає нових сповіщень"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Адаптивні сповіщення ввімкнено"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Пристрій знижує гучність і зменшує кількість спливаючих вікон на екрані на період до двох хвилин, коли ви отримуєте багато сповіщень за короткий час."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Вимкнути"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Розблокуйте, щоб переглянути старіші"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Цим пристроєм керує батько або мати"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"За умовчанням"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Автоматично"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Без звуку чи вібрації"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Без звуку чи вібрації, але сповіщення відображається в розділі розмов"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Дзвінок або вібрація залежно від налаштувань пристрою"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Може дзвонити або вібрувати залежно від налаштувань пристрою. Показує спливаючі розмови з додатка <xliff:g id="APP_NAME">%1$s</xliff:g> за умовчанням."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Дозволити системі визначати, чи має сповіщення супроводжуватися звуком або вібрацією"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Сторінка вгору"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Сторінка вниз"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Розділити екран"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Введення"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Комбінації клавіш для додатків"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Поточний додаток"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Доступність"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Комбінації клавіш"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Комбінації клавіш для пошуку"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Рівень %1$d з %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Автоматизація дому"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Швидкий доступ до керування домом через заставку"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Відмінити"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-uk/tiles_states_strings.xml b/packages/SystemUI/res/values-uk/tiles_states_strings.xml
index 2d869166d475..9e3128366cd6 100644
--- a/packages/SystemUI/res/values-uk/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-uk/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Вимкнено"</item>
<item msgid="4875147066469902392">"Увімкнено"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Недоступно"</item>
+ <item msgid="2004750556637773692">"Вимкнено"</item>
+ <item msgid="8968530753931637871">"Увімкнено"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Недоступно"</item>
<item msgid="5044688398303285224">"Вимкнено"</item>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index fe8eb4da467b..0530655a56b7 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -426,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"ترتیبات کھولیں"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"دوسرا آلہ"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"مجموعی جائزہ ٹوگل کریں"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"ترجیحی وضع"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"ہو گیا"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"ترتیبات"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"الارمز، یاددہانیوں، ایونٹس اور آپ کے متعین کردہ کالرز کے علاوہ، آپ آوازوں اور وائبریشنز سے ڈسٹرب نہیں ہوں گے۔ موسیقی، ویڈیوز اور گیمز سمیت آپ ابھی بھی ہر وہ چیز سنیں گے جسے چلانے کا آپ انتخاب کرتے ہیں۔"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"الارمز کے علاوہ، آپ آوازوں اور وائبریشنز سے ڈسٹرب نہیں ہوں گے۔ موسیقی، ویڈیوز اور گیمز سمیت آپ ہر وہ چیز سنیں گے جسے چلانے کا آپ انتخاب کرتے ہیں۔"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"حسب ضرورت بنائیں"</string>
@@ -492,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"منتخب ویجیٹ رکھیں"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"مقفل اسکرین کے ویجیٹس"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"کوئی بھی آپ کی مقفل اسکرین پر ویجیٹ دیکھ سکتا ہے اگرچہ آپ کا ٹیبلیٹ مقفل ہو۔"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"مقفل اسکرین کے ویجیٹس"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"ویجیٹ کے ذریعے ایپ کھولنے کے لیے آپ کو تصدیق کرنی ہوگی کہ یہ آپ ہی ہیں۔ نیز، ذہن میں رکھیں کہ کوئی بھی انہیں دیکھ سکتا ہے، یہاں تک کہ جب آپ کا ٹیبلیٹ مقفل ہو۔ ہو سکتا ہے کچھ ویجٹس آپ کی لاک اسکرین کے لیے نہ بنائے گئے ہوں اور یہاں شامل کرنا غیر محفوظ ہو سکتا ہے۔"</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"سمجھ آ گئی"</string>
@@ -548,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"ابھی شروع کریں"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"کوئی اطلاعات نہیں ہیں"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"کوئی نئی اطلاعات نہیں"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"تغیر پذیر اطلاعات آن ہیں"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"کم وقت میں متعدد اطلاعات ملنے پر آپ کا آلہ اب دو منٹ تک سکرین پر والیوم اور پوپ اپس کم کر دیتا ہے۔"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"آف کریں"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"پرانی اطلاعات دیکھنے کیلئے غیر مقفل کریں"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"یہ آلہ آپ کے والدین کے زیر انتظام ہے"</string>
@@ -720,8 +731,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"ڈیفالٹ"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"خودکار"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"کوئی آواز یا وائبریشن نہیں"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"کوئی آواز یا وائبریشن نہیں ہے لیکن پھر بھی گفتگو کے سیکشن میں ظاہر ہوتا ہے"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"آلے کی ترتیبات کی بنیاد پر وائبریٹ یا گھنٹی بج سکتی ہے"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"آلے کی ترتیبات بنیاد پر وائبریٹ یا گھنٹی بج سکتی ہے۔ بذریعہ ڈیفالٹ <xliff:g id="APP_NAME">%1$s</xliff:g> بلبلہ سے گفتگوئیں۔"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"سسٹم کو اس بات کا تعین کرنے دیں کہ آیا اس اطلاع کی آواز ہو یا وائبریٹ ہونا چاہیے"</string>
@@ -1382,4 +1392,28 @@
<string name="home_controls_dream_label" msgid="6567105701292324257">"ہوم کنٹرولز"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"اسکرین سیور کے بطور اپنے ہوم کنٹرولز تک فوری رسائی حاصل کریں"</string>
<string name="volume_undo_action" msgid="5815519725211877114">"کالعدم کریں"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index 7e9466c35b21..11c0dff48f84 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Ekran lavhasi"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Bezovta qilinmasin"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Muhim rejimlar"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Ulangan qurilmalar topilmadi"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Qurilma ulash yoki uzish uchun tegining"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Sozlamalarni ochish"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Boshqa qurilma"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Umumiy nazar rejimini almashtirish"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Muhim rejimlar"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Tayyor"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Sozlamalar"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Turli ovoz va tebranishlar endi sizni bezovta qilmaydi. Biroq, signallar, eslatmalar, tadbirlar haqidagi bildirishnomalar va siz tanlagan abonentlardan kelgan chaqiruvlar bundan mustasno. Lekin, ijro etiladigan barcha narsalar, jumladan, musiqa, video va o‘yinlar ovozi eshitiladi."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Turli ovoz va tebranishlar endi sizni bezovta qilmaydi. Biroq, signallar bundan mustasno. Lekin, ijro etiladigan barcha narsalar, jumladan, musiqa, video va o‘yinlar ovozi eshitiladi."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Sozlash"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"tanlangan vidjetni joylash"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Ekran qulfi vidjetlari"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Ekran quflidagi vidjetlar hammaga koʻrinadi, hatto planshet qulflanganda ham."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Ekran qulfi vidjetlari"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Ilovani vidjet orqali ochish uchun shaxsingizni tasdiqlashingiz kerak. Shuningdek, planshet qulflanganda ham bu axborotlar hammaga koʻrinishini unutmang. Ayrim vidjetlar ekran qulfiga moslanmagan va ularni bu yerda chiqarish xavfli boʻlishi mumkin."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"OK"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Boshlash"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Bildirishnomalar yo‘q"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Yangi bildirishoma yoʻq"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Adaptiv bildirishnomalar yoniq"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Qisqa vaqt oraligʻida koʻp bildirishnoma kelsa, qurilmadagi tovush balandligi hamda bildirgi oynalar soni ikki daqiqagacha kamaytiriladi."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Faolsizlantirish"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Eskilarini koʻrish uchun qulfni yeching"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Bu qurilmani ota-onangiz boshqaradi"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Standart"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Avtomatik"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Tovush yoki tebranishsiz"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Ovoz yoki tebranishsiz, ammo suhbatlar ruknida chiqaveradi"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Qurilma sozlamalari asosida jiringlashi yoki tebranishi mumkin"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Qurilma sozlamalari asosida jiringlashi yoki tebranishi mumkin. <xliff:g id="APP_NAME">%1$s</xliff:g> suhbatlari standart holatda bulutcha shaklida chiqadi."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Bu bildirishnoma jiringlashi yoki tebranishini hal qilsin"</string>
@@ -1358,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Ekranni ikkiga ajratish"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Kiritish"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Ilova yorliqlari"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Joriy ilova"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Qulayliklar"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Tezkor tugmalar"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Tezkor tugmalar qidiruvi"</string>
@@ -1379,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Daraja: %1$d / %2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Uy boshqaruvi"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Uy boshqaruvi tugmalarini ekran lavhasida tezkor oching"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Bekor qilish"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-uz/tiles_states_strings.xml b/packages/SystemUI/res/values-uz/tiles_states_strings.xml
index da9c98f82df8..49b774fb79a0 100644
--- a/packages/SystemUI/res/values-uz/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-uz/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Oʻchiq"</item>
<item msgid="4875147066469902392">"Yoniq"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Mavjud emas"</item>
+ <item msgid="2004750556637773692">"Oʻchiq"</item>
+ <item msgid="8968530753931637871">"Yoniq"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Ishlamaydi"</item>
<item msgid="5044688398303285224">"Oʻchiq"</item>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 42909c996e2c..5bc1e03bf9bb 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"Nhấn để xem"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"Có lỗi xảy ra khi lưu video ghi màn hình"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"Lỗi khi bắt đầu ghi màn hình"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"Dừng ghi?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"Bạn đang ghi lại toàn bộ nội dung trên màn hình"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"Bạn đang ghi lại nội dung của <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"Dừng ghi"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"Đang chia sẻ màn hình"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"Dừng chia sẻ màn hình?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"Bạn đang chia sẻ toàn bộ nội dung trên màn hình với <xliff:g id="HOST_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"Bạn đang chia sẻ toàn bộ nội dung trên màn hình với một ứng dụng"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"Bạn đang chia sẻ nội dung của <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"Bạn đang chia sẻ một ứng dụng"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"Dừng chia sẻ"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"Đang truyền màn hình"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"Dừng truyền?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"Bạn đang truyền toàn bộ nội dung trên màn hình đến <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"Bạn đang truyền toàn bộ nội dung trên màn hình đến một thiết bị ở gần"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"Bạn đang truyền nội dung của <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> đến <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"Bạn đang truyền nội dung của <xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g> đến một thiết bị ở gần"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"Bạn đang truyền đến <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"Bạn đang truyền đến một thiết bị ở gần"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"Dừng truyền"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"Đóng"</string>
<string name="issuerecord_title" msgid="286627115110121849">"Trình ghi sự cố"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Trình bảo vệ m.hình"</string>
<string name="ethernet_label" msgid="2203544727007463351">"Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Không làm phiền"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Chế độ ưu tiên"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Không có thiết bị nào được ghép nối"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Nhấn để kết nối/ngắt kết nối với một thiết bị"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Mở phần Cài đặt"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Thiết bị khác"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Bật/tắt chế độ xem Tổng quan"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Chế độ ưu tiên"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Xong"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Cài đặt"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Bạn sẽ không bị làm phiền bởi âm thanh và tiếng rung, ngoại trừ báo thức, lời nhắc, sự kiện và người gọi mà bạn chỉ định. Bạn sẽ vẫn nghe thấy mọi thứ bạn chọn phát, bao gồm nhạc, video và trò chơi."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Bạn sẽ không bị làm phiền bởi âm thanh và tiếng rung, ngoại trừ báo thức. Bạn sẽ vẫn nghe thấy mọi thứ bạn chọn phát, bao gồm nhạc, video và trò chơi."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Tùy chỉnh"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"chọn tiện ích"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"xoá tiện ích"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"đặt tiện ích đã chọn vào vị trí"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"Tiện ích trên màn hình khoá"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"Ai cũng thấy được các tiện ích trên màn hình khoá, dù bạn đã khoá máy tính bảng."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Tiện ích trên màn hình khoá"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Để dùng tiện ích mở một ứng dụng, bạn cần xác minh danh tính của mình. Ngoài ra, hãy lưu ý rằng bất kỳ ai cũng có thể xem các tiện ích này, ngay cả khi máy tính bảng của bạn được khoá. Một số tiện ích có thể không dành cho màn hình khoá và không an toàn khi thêm vào đây."</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Bắt đầu ngay"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Không có thông báo nào"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Không có thông báo mới"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Thông báo thích ứng đang bật"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Giờ đây, thiết bị sẽ giảm âm lượng và giảm số cửa sổ bật lên trên màn hình trong tối đa 2 phút khi bạn nhận được nhiều thông báo trong một khoảng thời gian ngắn."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Tắt"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Mở khoá để xem thông báo cũ"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Thiết bị này do cha mẹ của bạn quản lý"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Mặc định"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Tự động"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Không phát âm thanh hoặc rung"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Không có âm báo hoặc rung nhưng vẫn xuất hiện trong phần cuộc trò chuyện"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Có thể đổ chuông hoặc rung tuỳ theo chế độ cài đặt trên thiết bị"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Có thể đổ chuông hoặc rung tuỳ theo chế độ cài đặt trên thiết bị. Theo mặc định, các cuộc trò chuyện từ <xliff:g id="APP_NAME">%1$s</xliff:g> sẽ hiển thị dưới dạng bong bóng."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Cho phép hệ thống quyết định xem thông báo này phát âm thanh hay rung"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"Cuối"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Chia đôi màn hình"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Phương thức nhập"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Lối tắt ứng dụng"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"Ứng dụng hiện tại"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Hỗ trợ tiếp cận"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Phím tắt"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Lối tắt tìm kiếm"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Độ sáng %1$d/%2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Điều khiển nhà"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Điều khiển nhà nhanh bằng trình bảo vệ màn hình"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Huỷ"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-vi/tiles_states_strings.xml b/packages/SystemUI/res/values-vi/tiles_states_strings.xml
index efcc373124a3..e68351874d52 100644
--- a/packages/SystemUI/res/values-vi/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-vi/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Đang tắt"</item>
<item msgid="4875147066469902392">"Đang bật"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Không có"</item>
+ <item msgid="2004750556637773692">"Đang tắt"</item>
+ <item msgid="8968530753931637871">"Đang bật"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Không hoạt động"</item>
<item msgid="5044688398303285224">"Đang tắt"</item>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index b21bd9799086..1a58804a0b92 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"点按即可查看"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"保存屏幕录制内容时出错"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"启动屏幕录制时出错"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"要停止录制吗?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"您正在录制整个屏幕"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"您正在录制“<xliff:g id="APP_NAME">%1$s</xliff:g>”"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"停止录制"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"正在共享屏幕"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"要停止共享屏幕吗?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"您正在与“<xliff:g id="HOST_APP_NAME">%1$s</xliff:g>”分享整个屏幕"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"您正在与一个应用分享整个屏幕"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"您正在分享“<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>”的画面"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"您正在分享一个应用的画面"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"停止共享"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"正在投屏"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"停止投屏吗?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"您正在将整个屏幕投放到“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”上"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"您正在将整个屏幕投放到附近的设备上"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"您正在将“<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>”投放到“<xliff:g id="DEVICE_NAME">%2$s</xliff:g>”上"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"您正在将“<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>”投放到附近的设备上"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"您正在向“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”上投放内容"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"您正在向附近的设备投放内容"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"停止投屏"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"关闭"</string>
<string name="issuerecord_title" msgid="286627115110121849">"问题录制器"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"屏保"</string>
<string name="ethernet_label" msgid="2203544727007463351">"有线网络"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"勿扰"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"优先模式"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"蓝牙"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"没有可用的配对设备"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"点按即可连接设备或断开设备连接"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"打开“设置”"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"其他设备"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"切换概览"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"优先模式"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"完成"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"设置"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"您将不会受到声音和振动的打扰(闹钟、提醒、活动和所指定来电者的相关提示音除外)。您依然可以听到您选择播放的任何内容(包括音乐、视频和游戏)的相关音效。"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"您将不会受到声音和振动的打扰(闹钟提示音除外)。您依然可以听到您选择播放的任何内容(包括音乐、视频和游戏)的相关音效。"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"自定义"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"选择微件"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"移除微件"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"放置所选微件"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"锁屏微件"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"任何人都可以查看锁屏上的微件,即使平板电脑已锁定。"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"锁定的屏幕中的微件"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"若要使用微件打开应用,您需要验证是您本人在操作。另外请注意,任何人都可以查看此类微件,即使您的平板电脑已锁定。有些微件可能不适合显示在锁定的屏幕中,因此添加到这里可能不安全。"</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"立即开始"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"没有通知"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"没有新通知"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"自适应通知功能已开启"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"现在,当在短时间内收到许多通知时,您的设备会调低音量并减少屏幕上的弹出式窗口,最多持续两分钟。"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"关闭"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"解锁即可查看旧通知"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"此设备由您的家长管理"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"默认"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"自动"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"不发出提示音,也不振动"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"不发出提示音或振动,但依然出现在对话部分"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"可能会响铃或振动,取决于设备设置"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"可能会响铃或振动,取决于设备设置。默认情况下,来自<xliff:g id="APP_NAME">%1$s</xliff:g>的对话会以消息气泡的形式显示。"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"让系统决定是否应让设备在收到此通知时发出提示音或振动"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"向上翻页"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"PgDn"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"删除"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"分屏"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"输入"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"应用快捷键"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"当前应用"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"无障碍功能"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"键盘快捷键"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"搜索快捷键"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"第 %1$d 级,共 %2$d 级"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"家居控制"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"通过屏保快速访问家居控制功能"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"撤消"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
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 a0d37b945d0f..e16e42a1f5cb 100644
--- a/packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"已关闭"</item>
<item msgid="4875147066469902392">"已开启"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"不可用"</item>
+ <item msgid="2004750556637773692">"已关闭"</item>
+ <item msgid="8968530753931637871">"已开启"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"不可用"</item>
<item msgid="5044688398303285224">"已关闭"</item>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index daac54e264bc..7954e3552f8e 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"輕按即可查看"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"儲存螢幕錄影時發生錯誤"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"開始錄影畫面時發生錯誤"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"要停止錄影嗎?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"你正在錄影整個螢幕畫面"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"你正在錄影「<xliff:g id="APP_NAME">%1$s</xliff:g>」"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"停止錄製"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"正在分享螢幕"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"要停止分享螢幕嗎?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"你正與「<xliff:g id="HOST_APP_NAME">%1$s</xliff:g>」分享整個螢幕畫面"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"你正與一個應用程式分享整個螢幕畫面"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"你正在分享「<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>」"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"你正在分享一個應用程式"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"停止分享"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"正在投放螢幕"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"要停止投放嗎?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"你正在投放整個螢幕畫面至「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"你正在投放整個螢幕畫面至一部附近的裝置"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"你正在投放「<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>」至「<xliff:g id="DEVICE_NAME">%2$s</xliff:g>」"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"你正在投放「<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>」至一部附近的裝置"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"你正在投放內容至「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"你正在投放內容至一部附近的裝置"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"停止投放"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"關閉"</string>
<string name="issuerecord_title" msgid="286627115110121849">"問題記錄工具"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"螢幕保護程式"</string>
<string name="ethernet_label" msgid="2203544727007463351">"以太網"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"請勿騷擾"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"優先模式"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"藍牙"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"找不到配對的裝置"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"輕按即可連結或解除連結裝置"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"開啟「設定」"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"其他裝置"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"切換概覽"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"優先模式"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"完成"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"設定"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"你不會受到聲音和震動騷擾 (鬧鐘、提醒、活動和你指定的來電者鈴聲除外)。當你選擇播放音樂、影片和遊戲等,仍可以聽到該內容的聲音。"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"你不會受到聲音和震動騷擾 (鬧鐘除外)。當你選擇播放音樂、影片和遊戲等,仍可以聽到該內容的聲音。"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"自訂"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"揀小工具"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"移除小工具"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"放置所選小工具"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"上鎖畫面小工具"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"任何人都可查看上鎖畫面的小工具,即使平板電腦已上鎖亦然。"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"上鎖畫面小工具"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"如要使用小工具開啟應用程式,系統會要求你驗證身分。請注意,即使平板電腦已鎖定,所有人還是能查看小工具。部分小工具可能不適用於上鎖畫面,而且新增至這裡後可能會有安全疑慮。"</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"立即開始"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"沒有通知"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"沒有新通知"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"已啟用自動調節通知"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"現在每當你於短時間內收到大量通知,裝置便會調低音量並減少螢幕上的彈出式視窗最多兩分鐘。"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"關閉"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"解鎖即可查看舊通知"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"此裝置由你的家長管理"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"預設"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"自動"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"無音效或震動"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"沒有音效或震動,但仍在對話部分顯示"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"可能會根據裝置設定發出鈴聲或震動"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"可能會根據裝置設定發出鈴聲或震動。根據預設,來自 <xliff:g id="APP_NAME">%1$s</xliff:g> 的對話會以對話氣泡顯示。"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"由系統判斷是否要讓此通知發出音效或震動"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"上一頁"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"下一頁"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"刪除"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc 鍵"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"插入"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"分割螢幕"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"輸入"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"應用程式捷徑"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"目前的應用程式"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"無障礙功能"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"鍵盤快速鍵"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"搜尋快速鍵"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"第 %1$d 級,共 %2$d 級"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"智能家居"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"在螢幕保護程式畫面上控制智能家居"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"復原"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
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 de07c6c05376..57b4d2021585 100644
--- a/packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"已關閉"</item>
<item msgid="4875147066469902392">"已開啟"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"無法使用"</item>
+ <item msgid="2004750556637773692">"關閉"</item>
+ <item msgid="8968530753931637871">"開啟"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"無法使用"</item>
<item msgid="5044688398303285224">"已關閉"</item>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index a29d47b0743b..b7043b59d980 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -126,38 +126,25 @@
<string name="screenrecord_save_text" msgid="3008973099800840163">"輕觸即可查看"</string>
<string name="screenrecord_save_error" msgid="5862648532560118815">"儲存螢幕錄影內容時發生錯誤"</string>
<string name="screenrecord_start_error" msgid="2200660692479682368">"開始錄製螢幕畫面時發生錯誤"</string>
- <!-- no translation found for screenrecord_stop_dialog_title (8716193661764511095) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message (6262768207331626817) -->
- <skip />
- <!-- no translation found for screenrecord_stop_dialog_message_specific_app (5995770227684523244) -->
- <skip />
+ <string name="screenrecord_stop_dialog_title" msgid="8716193661764511095">"要停止錄製畫面嗎?"</string>
+ <string name="screenrecord_stop_dialog_message" msgid="6262768207331626817">"目前正在錄製整個螢幕的畫面"</string>
+ <string name="screenrecord_stop_dialog_message_specific_app" msgid="5995770227684523244">"目前正在錄製「<xliff:g id="APP_NAME">%1$s</xliff:g>」的畫面"</string>
<string name="screenrecord_stop_dialog_button" msgid="2883812564938194350">"停止錄音"</string>
<string name="share_to_app_chip_accessibility_label" msgid="4210256229976947065">"正在分享畫面"</string>
<string name="share_to_app_stop_dialog_title" msgid="9212915050910250438">"要停止分享畫面嗎?"</string>
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen_with_host_app (522823522115375414) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_entire_screen (5090115386271179270) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_specific (5923772039347985172) -->
- <skip />
- <!-- no translation found for share_to_app_stop_dialog_message_single_app_generic (6681016774654578261) -->
- <skip />
+ <string name="share_to_app_stop_dialog_message_entire_screen_with_host_app" msgid="522823522115375414">"目前正在與「<xliff:g id="HOST_APP_NAME">%1$s</xliff:g>」分享整個畫面"</string>
+ <string name="share_to_app_stop_dialog_message_entire_screen" msgid="5090115386271179270">"目前正在與某個應用程式分享整個畫面"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_specific" msgid="5923772039347985172">"目前正在分享「<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>」的畫面"</string>
+ <string name="share_to_app_stop_dialog_message_single_app_generic" msgid="6681016774654578261">"目前正在分享應用程式畫面"</string>
<string name="share_to_app_stop_dialog_button" msgid="6334056916284230217">"停止分享"</string>
<string name="cast_screen_to_other_device_chip_accessibility_label" msgid="4687917476203009885">"正在投放畫面"</string>
<string name="cast_to_other_device_stop_dialog_title" msgid="7836517190930357326">"要停止投放嗎?"</string>
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen_with_device (1474703115926205251) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_entire_screen (8419219169553867625) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app_with_device (2715934698604085519) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_specific_app (8616103075630934513) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic_with_device (9213582497852420203) -->
- <skip />
- <!-- no translation found for cast_to_other_device_stop_dialog_message_generic (4100272100480415076) -->
- <skip />
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen_with_device" msgid="1474703115926205251">"目前正在將整個畫面投放到「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」"</string>
+ <string name="cast_to_other_device_stop_dialog_message_entire_screen" msgid="8419219169553867625">"目前正在將整個畫面投放到鄰近裝置"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app_with_device" msgid="2715934698604085519">"目前正在將「<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>」投放到「<xliff:g id="DEVICE_NAME">%2$s</xliff:g>」"</string>
+ <string name="cast_to_other_device_stop_dialog_message_specific_app" msgid="8616103075630934513">"目前正在將「<xliff:g id="APP_BEING_SHARED_NAME">%1$s</xliff:g>」投放到鄰近裝置"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic_with_device" msgid="9213582497852420203">"目前正在將內容投放到「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」"</string>
+ <string name="cast_to_other_device_stop_dialog_message_generic" msgid="4100272100480415076">"目前正在將內容投放到鄰近裝置"</string>
<string name="cast_to_other_device_stop_dialog_button" msgid="6420183747435521834">"停止投放"</string>
<string name="close_dialog_button" msgid="4749497706540104133">"關閉"</string>
<string name="issuerecord_title" msgid="286627115110121849">"問題記錄工具"</string>
@@ -303,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"螢幕保護程式"</string>
<string name="ethernet_label" msgid="2203544727007463351">"乙太網路"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"零打擾"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"優先模式"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"藍牙"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"找不到配對的裝置"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"輕觸即可連結/取消連結裝置"</string>
@@ -440,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"開啟「設定」"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"其他裝置"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"切換總覽"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"優先模式"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"完成"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"設定"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"裝置不會發出音效或震動造成干擾,但是會保留與鬧鐘、提醒、活動和指定來電者有關的設定。如果你選擇播放音樂、影片和遊戲等內容,還是可以聽見相關音訊。"</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"裝置不會發出音效或震動造成干擾,但是會保留鬧鐘響鈴。如果你選擇播放音樂、影片和遊戲等內容,還是可以聽見相關音訊。"</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"自訂"</string>
@@ -504,9 +497,9 @@
<string name="accessibility_action_label_select_widget" msgid="8897281501387398191">"選取小工具"</string>
<string name="accessibility_action_label_remove_widget" msgid="3373779447448758070">"移除小工具"</string>
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"放置所選小工具"</string>
- <!-- no translation found for communal_widget_picker_title (1953369090475731663) -->
- <skip />
- <!-- no translation found for communal_widget_picker_description (490515450110487871) -->
+ <string name="communal_widget_picker_title" msgid="1953369090475731663">"螢幕鎖定畫面小工具"</string>
+ <string name="communal_widget_picker_description" msgid="490515450110487871">"即使平板電腦已鎖定,所有人仍可查看螢幕鎖定畫面上的小工具。"</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
<skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"螢幕鎖定小工具"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"如要使用小工具開啟應用程式,系統會要求你驗證身分。請注意,即使平板電腦已鎖定,所有人還是能查看小工具。某些小工具可能不適用於螢幕鎖定畫面,而且新增到這裡可能有安全疑慮。"</string>
@@ -564,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"立即開始"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"沒有通知"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"沒有新通知"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"自動調整通知功能已開啟"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"如果在短時間內收到多則通知,裝置會在最長兩分鐘內調降音量,並減少在畫面上顯示彈出式視窗。"</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"關閉"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"解鎖即可查看舊通知"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"這個裝置是由你的家長管理"</string>
@@ -732,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"預設"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"自動"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"不震動或發出聲音"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"不震動或發出聲音,但持續顯示在對話區中"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"根據裝置的設定響鈴或震動"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"根據裝置的設定響鈴或震動。根據預設,來自「<xliff:g id="APP_NAME">%1$s</xliff:g>」的對話會以對話框形式顯示。"</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"由系統判斷要讓裝置在收到這則通知時震動還是發出音效"</string>
@@ -790,8 +784,7 @@
<string name="keyboard_key_page_up" msgid="173914303254199845">"Page Up 鍵"</string>
<string name="keyboard_key_page_down" msgid="9035902490071829731">"Page Down 鍵"</string>
<string name="keyboard_key_forward_del" msgid="5325501825762733459">"Delete 鍵"</string>
- <!-- no translation found for keyboard_key_esc (6230365950511411322) -->
- <skip />
+ <string name="keyboard_key_esc" msgid="6230365950511411322">"Esc 鍵"</string>
<string name="keyboard_key_move_home" msgid="3496502501803911971">"Home 鍵"</string>
<string name="keyboard_key_move_end" msgid="99190401463834854">"End 鍵"</string>
<string name="keyboard_key_insert" msgid="4621692715704410493">"Insert 鍵"</string>
@@ -1374,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"分割畫面"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"輸入"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"應用程式捷徑"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"目前的應用程式"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"無障礙"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"鍵盤快速鍵"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"搜尋快速鍵"</string>
@@ -1395,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"第 %1$d 級,共 %2$d 級"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"居家控制"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"在螢幕保護程式畫面上快速存取居家控制功能"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"復原"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
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 cbbea4106375..3a64fddc44c9 100644
--- a/packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"已關閉"</item>
<item msgid="4875147066469902392">"已開啟"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"無法使用"</item>
+ <item msgid="2004750556637773692">"已關閉"</item>
+ <item msgid="8968530753931637871">"已開啟"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"無法使用"</item>
<item msgid="5044688398303285224">"已關閉"</item>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index a23c69f5d771..436c7c6a3757 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -290,8 +290,7 @@
<string name="start_dreams" msgid="9131802557946276718">"Isigciniskrini"</string>
<string name="ethernet_label" msgid="2203544727007463351">"I-Ethernet"</string>
<string name="quick_settings_dnd_label" msgid="7728690179108024338">"Ungaphazamisi"</string>
- <!-- no translation found for quick_settings_modes_label (5407025818652750501) -->
- <skip />
+ <string name="quick_settings_modes_label" msgid="5407025818652750501">"Amamodi okubalulekile"</string>
<string name="quick_settings_bluetooth_label" msgid="7018763367142041481">"I-Bluetooth"</string>
<string name="quick_settings_bluetooth_detail_empty_text" msgid="5760239584390514322">"Awekho amadivayisi abhanqiwe atholakalayo"</string>
<string name="quick_settings_bluetooth_tile_subtitle" msgid="212752719010829550">"Thepha ukuze uxhumae noma ungaxhumi idivaysi"</string>
@@ -427,6 +426,13 @@
<string name="sensor_privacy_dialog_open_settings" msgid="5635865896053011859">"Vula Amasethingi"</string>
<string name="media_seamless_other_device" msgid="4654849800789196737">"Enye idivayisi"</string>
<string name="quick_step_accessibility_toggle_overview" msgid="7908949976727578403">"Guqula ukubuka konke"</string>
+ <string name="zen_modes_dialog_title" msgid="4159138230418567383">"Amamodi okubalulekile"</string>
+ <string name="zen_modes_dialog_done" msgid="6654130880256438950">"Kwenziwe"</string>
+ <string name="zen_modes_dialog_settings" msgid="2310248023728936697">"Amasethingi"</string>
+ <!-- no translation found for zen_mode_on (9085304934016242591) -->
+ <skip />
+ <!-- no translation found for zen_mode_off (1736604456618147306) -->
+ <skip />
<string name="zen_priority_introduction" msgid="3159291973383796646">"Ngeke uphazanyiswe imisindo nokudlidliza, ngaphandle kusukela kuma-alamu, izikhumbuzi, imicimbi, nabafonayo obacacisayo. Usazozwa noma yini okhetha ukuyidlala okufaka umculo, amavidiyo, namageyimu."</string>
<string name="zen_alarms_introduction" msgid="3987266042682300470">"Ngeke uze uphazanyiswe imisindo nokudlidliza, ngaphandle kusukela kuma-alamu. Usazozwa noma yini okhetha ukuyidlala okufaka umculo, amavidiyo, namageyimu."</string>
<string name="zen_priority_customize_button" msgid="4119213187257195047">"Enza ngendlela oyifisayo"</string>
@@ -493,6 +499,8 @@
<string name="accessibility_action_label_place_widget" msgid="1914197458644168978">"beka iwijethi ekhethiwe"</string>
<string name="communal_widget_picker_title" msgid="1953369090475731663">"Amawijethi wesikrini esikhiyiwe"</string>
<string name="communal_widget_picker_description" msgid="490515450110487871">"Noma ubani angabuka amawijethi ngisho noma ithebulethi ikhiyiwe."</string>
+ <!-- no translation found for accessibility_action_label_unselect_widget (1041811747619468698) -->
+ <skip />
<string name="communal_widgets_disclaimer_title" msgid="1150954395585308868">"Amawijethi wesikrini esikhiyiwe"</string>
<string name="communal_widgets_disclaimer_text" msgid="1423545475160506349">"Ukuze uvule i-app usebenzisa iwijethi, uzodinga ukuqinisekisa ukuthi nguwe. Futhi, khumbula ukuthi noma ubani angakwazi ukuzibuka, nanoma ithebhulethi yakho ikhiyiwe. Amanye amawijethi kungenzeka abengahloselwe ukukhiya isikrini sakho futhi kungenzeka awaphephile ukuthi angafakwa lapha."</string>
<string name="communal_widgets_disclaimer_button" msgid="4423059765740780753">"Ngiyezwa"</string>
@@ -549,8 +557,10 @@
<string name="media_projection_action_text" msgid="3634906766918186440">"Qala manje"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Azikho izaziso"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"Azikho izaziso ezintsha"</string>
- <string name="adaptive_notification_edu_hun_title" msgid="5720882373252389461">"Izaziso zokuzijwayeza zivuliwe"</string>
- <string name="adaptive_notification_edu_hun_text" msgid="4260536236101821273">"Idivayisi yakho manje yehlisa ivolumu futhi yehlisa okwesikhashana esikrinini kuze kufike emizuzwini emibili lapho uthola izaziso eziningi ngesikhathi esifushane."</string>
+ <!-- no translation found for adaptive_notification_edu_hun_title (7790738150177329960) -->
+ <skip />
+ <!-- no translation found for adaptive_notification_edu_hun_text (7743367744129536610) -->
+ <skip />
<string name="go_to_adaptive_notification_settings" msgid="2423690125178298479">"Vala"</string>
<string name="unlock_to_see_notif_text" msgid="7439033907167561227">"Vula ukuze ubone izaziso ezindala"</string>
<string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Le divayisi iphethwe ngumzali wakho"</string>
@@ -717,8 +727,7 @@
<string name="notification_alert_title" msgid="3656229781017543655">"Okuzenzekelayo"</string>
<string name="notification_automatic_title" msgid="3745465364578762652">"Okuzenzekelayo"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Awukho umsindo noma ukudlidliza"</string>
- <!-- no translation found for notification_conversation_summary_low (3855696451919728790) -->
- <skip />
+ <string name="notification_conversation_summary_low" msgid="3855696451919728790">"Awukho umsindo noma ukudlidliza kodwa kusavela esigabeni sengxoxo"</string>
<string name="notification_channel_summary_default" msgid="777294388712200605">"Ingase ikhale noma idlidlize ngokusekelwe kumasethingi edivayisi"</string>
<string name="notification_channel_summary_default_with_bubbles" msgid="3482483084451555344">"Ingase ikhale noma idlidlize kuya ngamasethingi wedivayisi. Izingxoxo ezivela ku-<xliff:g id="APP_NAME">%1$s</xliff:g> ziba yibhamuza ngokuzenzakalela."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Vumela isistimu inqume uma lesi saziso kufanele senze umsindo noma sidlidlize"</string>
@@ -1358,8 +1367,7 @@
<string name="shortcutHelper_category_split_screen" msgid="1159669813444812244">"Hlukanisa isikrini"</string>
<string name="shortcut_helper_category_input" msgid="8674018654124839566">"Okokufaka"</string>
<string name="shortcut_helper_category_app_shortcuts" msgid="8010249408308587117">"Izinqamuleli Zohlelo lokusebenza"</string>
- <!-- no translation found for shortcut_helper_category_current_app_shortcuts (4017840565974573628) -->
- <skip />
+ <string name="shortcut_helper_category_current_app_shortcuts" msgid="4017840565974573628">"I-App yamanje"</string>
<string name="shortcut_helper_category_a11y" msgid="6314444792641773464">"Ukufinyeleleka"</string>
<string name="shortcut_helper_title" msgid="8567500639300970049">"Izinqamuleli zekhibhodi"</string>
<string name="shortcut_helper_search_placeholder" msgid="5488547526269871819">"Sesha izinqamuleli"</string>
@@ -1379,6 +1387,29 @@
<string name="keyboard_backlight_value" msgid="7336398765584393538">"Ileveli %1$d ka-%2$d"</string>
<string name="home_controls_dream_label" msgid="6567105701292324257">"Izilawuli Zasekhaya"</string>
<string name="home_controls_dream_description" msgid="4644150952104035789">"Finyelela ngokushesha izilawuli zakho zasekhaya njengesigcini-skrini"</string>
- <!-- no translation found for volume_undo_action (5815519725211877114) -->
+ <string name="volume_undo_action" msgid="5815519725211877114">"Hlehlisa"</string>
+ <!-- no translation found for back_edu_toast_content (4530314597378982956) -->
+ <skip />
+ <!-- no translation found for home_edu_toast_content (3381071147871955415) -->
+ <skip />
+ <!-- no translation found for overview_edu_toast_content (5797030644017804518) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_toast_content (8807496014667211562) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_title (5624780717751357278) -->
+ <skip />
+ <!-- no translation found for back_edu_notification_content (2497557451540954068) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_title (6097902076909654045) -->
+ <skip />
+ <!-- no translation found for home_edu_notification_content (6631697734535766588) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_title (1265824157319562406) -->
+ <skip />
+ <!-- no translation found for overview_edu_notification_content (3578204677648432500) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_title (372262997265569063) -->
+ <skip />
+ <!-- no translation found for all_apps_edu_notification_content (3255070575694025585) -->
<skip />
</resources>
diff --git a/packages/SystemUI/res/values-zu/tiles_states_strings.xml b/packages/SystemUI/res/values-zu/tiles_states_strings.xml
index 8d6b84357e25..4cd138dfafbe 100644
--- a/packages/SystemUI/res/values-zu/tiles_states_strings.xml
+++ b/packages/SystemUI/res/values-zu/tiles_states_strings.xml
@@ -56,9 +56,11 @@
<item msgid="5376619709702103243">"Valiwe"</item>
<item msgid="4875147066469902392">"Vuliwe"</item>
</string-array>
- <!-- no translation found for tile_states_modes:0 (7764936419245199023) -->
- <!-- no translation found for tile_states_modes:1 (2004750556637773692) -->
- <!-- no translation found for tile_states_modes:2 (8968530753931637871) -->
+ <string-array name="tile_states_modes">
+ <item msgid="7764936419245199023">"Ayitholakali"</item>
+ <item msgid="2004750556637773692">"Ivaliwe"</item>
+ <item msgid="8968530753931637871">"Ivuliwe"</item>
+ </string-array>
<string-array name="tile_states_flashlight">
<item msgid="3465257127433353857">"Akutholakali"</item>
<item msgid="5044688398303285224">"Valiwe"</item>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index eda7bb0e7f6d..e45934825474 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -1730,9 +1730,15 @@
<!-- Ongoing activity chip -->
<dimen name="ongoing_activity_chip_side_padding">12dp</dimen>
+ <!-- The start padding to use on the activity chip if the icon comes from the notification's smallIcon field (the small notif icons embed their own padding, so the chip itself can have less padding) -->
+ <dimen name="ongoing_activity_chip_side_padding_with_notif_icon">6dp</dimen>
<dimen name="ongoing_activity_chip_icon_size">16dp</dimen>
+ <!-- The size to use for the icon in the ongoing activity chip if the icon comes from the notification's smallIcon field -->
+ <dimen name="ongoing_activity_chip_notif_icon_size">22dp</dimen>
+
<!-- The padding between the icon and the text. -->
<dimen name="ongoing_activity_chip_icon_text_padding">4dp</dimen>
+ <dimen name="ongoing_activity_chip_text_end_padding_with_notif_icon">6dp</dimen>
<dimen name="ongoing_activity_chip_corner_radius">28dp</dimen>
<!-- Status bar user chip -->
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index acc12d7fdaf0..8146cc5cc864 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -948,6 +948,10 @@
<string name="performance">Performance</string>
<string name="user_interface">User Interface</string>
<string name="thermal">Thermal</string>
+ <string name="custom">Custom</string>
+
+ <string name="custom_trace_settings_dialog_title">Custom Trace Settings</string>
+ <string name="restore_default">Restore Default</string>
<!-- QuickSettings: Label for the toggle that controls whether One-handed mode is enabled. [CHAR LIMIT=NONE] -->
<string name="quick_settings_onehanded_label">One-handed mode</string>
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
index 56de5a3ed88a..8ae11abab473 100644
--- a/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java
@@ -24,7 +24,6 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.content.pm.ApplicationInfo;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.Process;
@@ -81,7 +80,9 @@ public class SystemUIApplication extends Application implements
public SystemUIApplication() {
super();
- Trace.registerWithPerfetto();
+ if (!isSubprocess()) {
+ Trace.registerWithPerfetto();
+ }
Log.v(TAG, "SystemUIApplication constructed.");
// SysUI may be building without protolog preprocessing in some cases
ProtoLog.REQUIRE_PROTOLOGTOOL = false;
@@ -182,9 +183,7 @@ public class SystemUIApplication extends Application implements
} else {
// We don't need to startServices for sub-process that is doing some tasks.
// (screenshots, sweetsweetdesserts or tuner ..)
- String processName = ActivityThread.currentProcessName();
- ApplicationInfo info = getApplicationInfo();
- if (processName != null && processName.startsWith(info.processName + ":")) {
+ if (isSubprocess()) {
return;
}
// For a secondary user, boot-completed will never be called because it has already
@@ -195,6 +194,12 @@ public class SystemUIApplication extends Application implements
}
}
+ /** Returns whether this is a subprocess (e.g. com.android.systemui:screenshot) */
+ private boolean isSubprocess() {
+ String processName = ActivityThread.currentProcessName();
+ return processName != null && processName.contains(":");
+ }
+
/**
* Makes sure that all the CoreStartables are running. If they are already running, this is a
* no-op. This is needed to conditionally start all the services, as we only need to have it in
diff --git a/packages/SystemUI/src/com/android/systemui/communal/CommunalMetricsStartable.kt b/packages/SystemUI/src/com/android/systemui/communal/CommunalMetricsStartable.kt
new file mode 100644
index 000000000000..c1cef6725361
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/communal/CommunalMetricsStartable.kt
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.communal
+
+import android.app.StatsManager
+import android.util.StatsEvent
+import com.android.systemui.CoreStartable
+import com.android.systemui.communal.domain.interactor.CommunalInteractor
+import com.android.systemui.communal.domain.interactor.CommunalSettingsInteractor
+import com.android.systemui.communal.shared.log.CommunalMetricsLogger
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Background
+import com.android.systemui.shared.system.SysUiStatsLog
+import java.util.concurrent.Executor
+import javax.inject.Inject
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.runBlocking
+
+@SysUISingleton
+class CommunalMetricsStartable
+@Inject
+constructor(
+ @Background private val bgExecutor: Executor,
+ private val communalSettingsInteractor: CommunalSettingsInteractor,
+ private val communalInteractor: CommunalInteractor,
+ private val statsManager: StatsManager,
+ private val metricsLogger: CommunalMetricsLogger,
+) : CoreStartable, StatsManager.StatsPullAtomCallback {
+ override fun start() {
+ if (!communalSettingsInteractor.isCommunalFlagEnabled()) {
+ return
+ }
+
+ statsManager.setPullAtomCallback(
+ /* atomTag = */ SysUiStatsLog.COMMUNAL_HUB_SNAPSHOT,
+ /* metadata = */ null,
+ /* executor = */ bgExecutor,
+ /* callback = */ this,
+ )
+ }
+
+ override fun onPullAtom(atomTag: Int, statsEvents: MutableList<StatsEvent>): Int {
+ if (atomTag != SysUiStatsLog.COMMUNAL_HUB_SNAPSHOT) {
+ return StatsManager.PULL_SKIP
+ }
+
+ metricsLogger.logWidgetsSnapshot(
+ statsEvents,
+ componentNames =
+ runBlocking {
+ communalInteractor.widgetContent.first().map {
+ it.componentName.flattenToString()
+ }
+ },
+ )
+ return StatsManager.PULL_SUCCESS
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalStartableModule.kt b/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalStartableModule.kt
index 74a2cd3f22c4..6cbf5405f46b 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalStartableModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/dagger/CommunalStartableModule.kt
@@ -19,6 +19,7 @@ package com.android.systemui.communal.dagger
import com.android.systemui.CoreStartable
import com.android.systemui.communal.CommunalBackupRestoreStartable
import com.android.systemui.communal.CommunalDreamStartable
+import com.android.systemui.communal.CommunalMetricsStartable
import com.android.systemui.communal.CommunalOngoingContentStartable
import com.android.systemui.communal.CommunalSceneStartable
import com.android.systemui.communal.log.CommunalLoggerStartable
@@ -59,4 +60,9 @@ interface CommunalStartableModule {
@IntoMap
@ClassKey(CommunalOngoingContentStartable::class)
fun bindCommunalOngoingContentStartable(impl: CommunalOngoingContentStartable): CoreStartable
+
+ @Binds
+ @IntoMap
+ @ClassKey(CommunalMetricsStartable::class)
+ fun bindCommunalMetricsStartable(impl: CommunalMetricsStartable): CoreStartable
}
diff --git a/packages/SystemUI/src/com/android/systemui/communal/shared/log/CommunalMetricsLogger.kt b/packages/SystemUI/src/com/android/systemui/communal/shared/log/CommunalMetricsLogger.kt
index 12099f708b9e..6e345fe27eea 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/shared/log/CommunalMetricsLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/shared/log/CommunalMetricsLogger.kt
@@ -16,6 +16,7 @@
package com.android.systemui.communal.shared.log
+import android.util.StatsEvent
import com.android.systemui.communal.dagger.CommunalModule.Companion.LOGGABLE_PREFIXES
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.shared.system.SysUiStatsLog
@@ -55,6 +56,20 @@ constructor(
)
}
+ /** Logs loggable widgets and the total widget count as a [StatsEvent]. */
+ fun logWidgetsSnapshot(
+ statsEvents: MutableList<StatsEvent>,
+ componentNames: List<String>,
+ ) {
+ val loggableComponentNames = componentNames.filter { it.isLoggable() }.toTypedArray()
+ statsEvents.add(
+ statsLogProxy.buildCommunalHubSnapshotStatsEvent(
+ componentNames = loggableComponentNames,
+ widgetCount = componentNames.size,
+ )
+ )
+ }
+
/** Whether the component name matches any of the loggable prefixes. */
private fun String.isLoggable(): Boolean {
return loggablePrefixes.any { loggablePrefix -> startsWith(loggablePrefix) }
@@ -68,6 +83,12 @@ constructor(
componentName: String,
rank: Int,
)
+
+ /** Builds a [SysUiStatsLog.COMMUNAL_HUB_SNAPSHOT] stats event. */
+ fun buildCommunalHubSnapshotStatsEvent(
+ componentNames: Array<String>,
+ widgetCount: Int,
+ ): StatsEvent
}
}
@@ -86,4 +107,15 @@ class CommunalStatsLogProxyImpl @Inject constructor() : CommunalMetricsLogger.St
rank,
)
}
+
+ override fun buildCommunalHubSnapshotStatsEvent(
+ componentNames: Array<String>,
+ widgetCount: Int,
+ ): StatsEvent {
+ return SysUiStatsLog.buildStatsEvent(
+ SysUiStatsLog.COMMUNAL_HUB_SNAPSHOT,
+ componentNames,
+ widgetCount,
+ )
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/education/dagger/ContextualEducationModule.kt b/packages/SystemUI/src/com/android/systemui/education/dagger/ContextualEducationModule.kt
index 0e2e2e6277f2..b8019ab9ce0c 100644
--- a/packages/SystemUI/src/com/android/systemui/education/dagger/ContextualEducationModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/education/dagger/ContextualEducationModule.kt
@@ -22,6 +22,7 @@ import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.education.data.repository.ContextualEducationRepository
import com.android.systemui.education.data.repository.ContextualEducationRepositoryImpl
import com.android.systemui.education.domain.interactor.ContextualEducationInteractor
+import com.android.systemui.education.domain.interactor.KeyboardTouchpadEduInteractor
import com.android.systemui.education.domain.interactor.KeyboardTouchpadEduStatsInteractor
import com.android.systemui.education.domain.interactor.KeyboardTouchpadEduStatsInteractorImpl
import com.android.systemui.shared.education.GestureType
@@ -73,7 +74,7 @@ interface ContextualEducationModule {
implLazy.get()
} else {
// No-op implementation when the flag is disabled.
- return NoOpCoreStartable
+ return NoOpContextualEducationInteractor
}
}
@@ -88,6 +89,18 @@ interface ContextualEducationModule {
return NoOpKeyboardTouchpadEduStatsInteractor
}
}
+
+ @Provides
+ fun provideKeyboardTouchpadEduInteractor(
+ implLazy: Lazy<KeyboardTouchpadEduInteractor>
+ ): CoreStartable {
+ return if (Flags.keyboardTouchpadContextualEducation()) {
+ implLazy.get()
+ } else {
+ // No-op implementation when the flag is disabled.
+ return NoOpKeyboardTouchpadEduInteractor
+ }
+ }
}
private object NoOpKeyboardTouchpadEduStatsInteractor : KeyboardTouchpadEduStatsInteractor {
@@ -96,7 +109,11 @@ interface ContextualEducationModule {
override fun updateShortcutTriggerTime(gestureType: GestureType) {}
}
- private object NoOpCoreStartable : CoreStartable {
+ private object NoOpContextualEducationInteractor : CoreStartable {
+ override fun start() {}
+ }
+
+ private object NoOpKeyboardTouchpadEduInteractor : CoreStartable {
override fun start() {}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/education/domain/interactor/ContextualEducationInteractor.kt b/packages/SystemUI/src/com/android/systemui/education/domain/interactor/ContextualEducationInteractor.kt
index e2aa9111246b..3036d970e985 100644
--- a/packages/SystemUI/src/com/android/systemui/education/domain/interactor/ContextualEducationInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/education/domain/interactor/ContextualEducationInteractor.kt
@@ -19,12 +19,17 @@ package com.android.systemui.education.domain.interactor
import com.android.systemui.CoreStartable
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Background
+import com.android.systemui.education.data.model.GestureEduModel
import com.android.systemui.education.data.repository.ContextualEducationRepository
import com.android.systemui.shared.education.GestureType
import com.android.systemui.user.domain.interactor.SelectedUserInteractor
import javax.inject.Inject
+import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch
/**
@@ -36,16 +41,28 @@ class ContextualEducationInteractor
@Inject
constructor(
@Background private val backgroundScope: CoroutineScope,
+ @Background private val backgroundDispatcher: CoroutineDispatcher,
private val selectedUserInteractor: SelectedUserInteractor,
private val repository: ContextualEducationRepository,
) : CoreStartable {
+ val backGestureModelFlow = readEduModelsOnSignalCountChanged(GestureType.BACK_GESTURE)
+
override fun start() {
backgroundScope.launch {
selectedUserInteractor.selectedUser.collectLatest { repository.setUser(it) }
}
}
+ private fun readEduModelsOnSignalCountChanged(gestureType: GestureType): Flow<GestureEduModel> {
+ return repository
+ .readGestureEduModelFlow(gestureType)
+ .distinctUntilChanged(
+ areEquivalent = { old, new -> old.signalCount == new.signalCount }
+ )
+ .flowOn(backgroundDispatcher)
+ }
+
suspend fun incrementSignalCount(gestureType: GestureType) =
repository.incrementSignalCount(gestureType)
diff --git a/packages/SystemUI/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractor.kt b/packages/SystemUI/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractor.kt
new file mode 100644
index 000000000000..247abf1a7ecc
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractor.kt
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.education.domain.interactor
+
+import com.android.systemui.CoreStartable
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Background
+import com.android.systemui.education.data.model.GestureEduModel
+import com.android.systemui.education.shared.model.EducationInfo
+import com.android.systemui.education.shared.model.EducationUiType
+import com.android.systemui.shared.education.GestureType.BACK_GESTURE
+import javax.inject.Inject
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.mapNotNull
+import kotlinx.coroutines.launch
+
+/** Allow listening to new contextual education triggered */
+@SysUISingleton
+class KeyboardTouchpadEduInteractor
+@Inject
+constructor(
+ @Background private val backgroundScope: CoroutineScope,
+ private val contextualEducationInteractor: ContextualEducationInteractor
+) : CoreStartable {
+
+ companion object {
+ const val MAX_SIGNAL_COUNT: Int = 2
+ }
+
+ private val _educationTriggered = MutableStateFlow<EducationInfo?>(null)
+ val educationTriggered = _educationTriggered.asStateFlow()
+
+ override fun start() {
+ backgroundScope.launch {
+ contextualEducationInteractor.backGestureModelFlow
+ .mapNotNull { getEduType(it) }
+ .collect { _educationTriggered.value = EducationInfo(BACK_GESTURE, it) }
+ }
+ }
+
+ private fun getEduType(model: GestureEduModel): EducationUiType? {
+ if (isEducationNeeded(model)) {
+ return EducationUiType.Toast
+ } else {
+ return null
+ }
+ }
+
+ private fun isEducationNeeded(model: GestureEduModel): Boolean {
+ // Todo: b/354884305 - add complete education logic to show education in correct scenarios
+ val shortcutWasTriggered = model.lastShortcutTriggeredTime == null
+ val signalCountReached = model.signalCount >= MAX_SIGNAL_COUNT
+
+ return shortcutWasTriggered && signalCountReached
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/education/shared/model/EducationInfo.kt b/packages/SystemUI/src/com/android/systemui/education/shared/model/EducationInfo.kt
new file mode 100644
index 000000000000..85f4012ddbd2
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/education/shared/model/EducationInfo.kt
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.education.shared.model
+
+import com.android.systemui.shared.education.GestureType
+
+/**
+ * Model for education triggered. [gestureType] indicates what gesture it is trying to educate about
+ * and [educationUiType] is how we educate user in the UI
+ */
+data class EducationInfo(val gestureType: GestureType, val educationUiType: EducationUiType)
+
+enum class EducationUiType {
+ Toast,
+ Notification,
+}
diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperCategoriesRepository.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperCategoriesRepository.kt
index 495e8f322f00..85bd0b0b1968 100644
--- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperCategoriesRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperCategoriesRepository.kt
@@ -71,6 +71,35 @@ constructor(
stateRepository: ShortcutHelperStateRepository
) {
+ private val sources =
+ listOf(
+ InternalGroupsSource(
+ source = systemShortcutsSource,
+ isTrusted = true,
+ typeProvider = { System }
+ ),
+ InternalGroupsSource(
+ source = multitaskingShortcutsSource,
+ isTrusted = true,
+ typeProvider = { MultiTasking }
+ ),
+ InternalGroupsSource(
+ source = appCategoriesShortcutsSource,
+ isTrusted = true,
+ typeProvider = { AppCategories }
+ ),
+ InternalGroupsSource(
+ source = inputShortcutsSource,
+ isTrusted = false,
+ typeProvider = { InputMethodEditor }
+ ),
+ InternalGroupsSource(
+ source = currentAppShortcutsSource,
+ isTrusted = false,
+ typeProvider = { groups -> getCurrentAppShortcutCategoryType(groups) }
+ ),
+ )
+
private val activeInputDevice =
stateRepository.state.map {
if (it is Active) {
@@ -82,17 +111,20 @@ constructor(
val categories: Flow<List<ShortcutCategory>> =
activeInputDevice
- .map {
- if (it == null) {
+ .map { inputDevice ->
+ if (inputDevice == null) {
return@map emptyList()
}
- return@map listOfNotNull(
- fetchSystemShortcuts(it),
- fetchMultiTaskingShortcuts(it),
- fetchAppCategoriesShortcuts(it),
- fetchImeShortcuts(it),
- fetchCurrentAppShortcuts(it),
- )
+ val groupsFromAllSources = sources.map { it.source.shortcutGroups(inputDevice.id) }
+ val supportedKeyCodes = fetchSupportedKeyCodes(inputDevice.id, groupsFromAllSources)
+ return@map sources.mapIndexedNotNull { index, internalGroupsSource ->
+ fetchShortcutCategory(
+ internalGroupsSource,
+ groupsFromAllSources[index],
+ inputDevice,
+ supportedKeyCodes,
+ )
+ }
}
.stateIn(
scope = backgroundScope,
@@ -100,49 +132,22 @@ constructor(
initialValue = emptyList(),
)
- private suspend fun fetchSystemShortcuts(inputDevice: InputDevice) =
- toShortcutCategory(
- inputDevice.keyCharacterMap,
- System,
- systemShortcutsSource.shortcutGroups(inputDevice.id),
- keepIcons = true,
- )
-
- private suspend fun fetchMultiTaskingShortcuts(inputDevice: InputDevice) =
- toShortcutCategory(
- inputDevice.keyCharacterMap,
- MultiTasking,
- multitaskingShortcutsSource.shortcutGroups(inputDevice.id),
- keepIcons = true,
- )
-
- private suspend fun fetchAppCategoriesShortcuts(inputDevice: InputDevice) =
- toShortcutCategory(
- inputDevice.keyCharacterMap,
- AppCategories,
- appCategoriesShortcutsSource.shortcutGroups(inputDevice.id),
- keepIcons = true,
- )
-
- private suspend fun fetchImeShortcuts(inputDevice: InputDevice) =
- toShortcutCategory(
- inputDevice.keyCharacterMap,
- InputMethodEditor,
- inputShortcutsSource.shortcutGroups(inputDevice.id),
- keepIcons = false,
- )
-
- private suspend fun fetchCurrentAppShortcuts(inputDevice: InputDevice): ShortcutCategory? {
- val shortcutGroups = currentAppShortcutsSource.shortcutGroups(inputDevice.id)
- val categoryType = getCurrentAppShortcutCategoryType(shortcutGroups)
- return if (categoryType == null) {
+ private fun fetchShortcutCategory(
+ internalGroupsSource: InternalGroupsSource,
+ groups: List<KeyboardShortcutGroup>,
+ inputDevice: InputDevice,
+ supportedKeyCodes: Set<Int>,
+ ): ShortcutCategory? {
+ val type = internalGroupsSource.typeProvider(groups)
+ return if (type == null) {
null
} else {
toShortcutCategory(
inputDevice.keyCharacterMap,
- categoryType,
- shortcutGroups,
- keepIcons = false
+ type,
+ groups,
+ internalGroupsSource.isTrusted,
+ supportedKeyCodes,
)
}
}
@@ -162,13 +167,19 @@ constructor(
type: ShortcutCategoryType,
shortcutGroups: List<KeyboardShortcutGroup>,
keepIcons: Boolean,
+ supportedKeyCodes: Set<Int>,
): ShortcutCategory? {
val subCategories =
shortcutGroups
.map { shortcutGroup ->
ShortcutSubCategory(
shortcutGroup.label.toString(),
- toShortcuts(keyCharacterMap, shortcutGroup.items, keepIcons)
+ toShortcuts(
+ keyCharacterMap,
+ shortcutGroup.items,
+ keepIcons,
+ supportedKeyCodes,
+ )
)
}
.filter { it.shortcuts.isNotEmpty() }
@@ -184,7 +195,15 @@ constructor(
keyCharacterMap: KeyCharacterMap,
infoList: List<KeyboardShortcutInfo>,
keepIcons: Boolean,
- ) = infoList.mapNotNull { toShortcut(keyCharacterMap, it, keepIcons) }
+ supportedKeyCodes: Set<Int>,
+ ) =
+ infoList
+ .filter {
+ // Allow KEYCODE_UNKNOWN (0) because shortcuts can have just modifiers and no
+ // keycode, or they could have a baseCharacter instead of a keycode.
+ it.keycode == KeyEvent.KEYCODE_UNKNOWN || supportedKeyCodes.contains(it.keycode)
+ }
+ .mapNotNull { toShortcut(keyCharacterMap, it, keepIcons) }
private fun toShortcut(
keyCharacterMap: KeyCharacterMap,
@@ -268,6 +287,29 @@ constructor(
return null
}
+ private suspend fun fetchSupportedKeyCodes(
+ deviceId: Int,
+ groupsFromAllSources: List<List<KeyboardShortcutGroup>>
+ ): Set<Int> =
+ withContext(backgroundDispatcher) {
+ val allUsedKeyCodes =
+ groupsFromAllSources
+ .flatMap { groups -> groups.flatMap { group -> group.items } }
+ .map { info -> info.keycode }
+ .distinct()
+ val keyCodesSupported =
+ inputManager.deviceHasKeys(deviceId, allUsedKeyCodes.toIntArray())
+ return@withContext allUsedKeyCodes
+ .filterIndexed { index, _ -> keyCodesSupported[index] }
+ .toSet()
+ }
+
+ private class InternalGroupsSource(
+ val source: KeyboardShortcutGroupsSource,
+ val isTrusted: Boolean,
+ val typeProvider: (groups: List<KeyboardShortcutGroup>) -> ShortcutCategoryType?,
+ )
+
companion object {
private const val TAG = "SHCategoriesRepo"
diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperKeys.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperKeys.kt
index cbe6fc7c6026..8db16fa9a06e 100644
--- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperKeys.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperKeys.kt
@@ -98,6 +98,7 @@ import android.view.KeyEvent.KEYCODE_NUM_LOCK
import android.view.KeyEvent.KEYCODE_PAGE_DOWN
import android.view.KeyEvent.KEYCODE_PAGE_UP
import android.view.KeyEvent.KEYCODE_PERIOD
+import android.view.KeyEvent.KEYCODE_RECENT_APPS
import android.view.KeyEvent.KEYCODE_SCROLL_LOCK
import android.view.KeyEvent.KEYCODE_SHIFT_LEFT
import android.view.KeyEvent.KEYCODE_SHIFT_RIGHT
@@ -118,6 +119,9 @@ object ShortcutHelperKeys {
val keyIcons =
mapOf(
META_META_ON to R.drawable.ic_ksh_key_meta,
+ KEYCODE_BACK to R.drawable.ic_arrow_back_2,
+ KEYCODE_HOME to R.drawable.ic_radio_button_unchecked,
+ KEYCODE_RECENT_APPS to R.drawable.ic_check_box_outline_blank,
)
val specialKeyLabels =
diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/SystemShortcutsSource.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/SystemShortcutsSource.kt
index e55e339704ee..7c0c75ef2c4c 100644
--- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/SystemShortcutsSource.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/data/source/SystemShortcutsSource.kt
@@ -18,14 +18,17 @@ package com.android.systemui.keyboard.shortcut.data.source
import android.content.res.Resources
import android.view.KeyEvent.KEYCODE_A
+import android.view.KeyEvent.KEYCODE_BACK
import android.view.KeyEvent.KEYCODE_DEL
import android.view.KeyEvent.KEYCODE_DPAD_LEFT
import android.view.KeyEvent.KEYCODE_ENTER
import android.view.KeyEvent.KEYCODE_ESCAPE
import android.view.KeyEvent.KEYCODE_H
+import android.view.KeyEvent.KEYCODE_HOME
import android.view.KeyEvent.KEYCODE_I
import android.view.KeyEvent.KEYCODE_L
import android.view.KeyEvent.KEYCODE_N
+import android.view.KeyEvent.KEYCODE_RECENT_APPS
import android.view.KeyEvent.KEYCODE_S
import android.view.KeyEvent.KEYCODE_SLASH
import android.view.KeyEvent.KEYCODE_TAB
@@ -60,24 +63,36 @@ class SystemShortcutsSource @Inject constructor(@Main private val resources: Res
command(META_META_ON)
},
// Access home screen:
+ // - Home button
// - Meta + H
// - Meta + Enter
shortcutInfo(resources.getString(R.string.group_system_access_home_screen)) {
+ command(modifiers = 0, KEYCODE_HOME)
+ },
+ shortcutInfo(resources.getString(R.string.group_system_access_home_screen)) {
command(META_META_ON, KEYCODE_H)
},
shortcutInfo(resources.getString(R.string.group_system_access_home_screen)) {
command(META_META_ON, KEYCODE_ENTER)
},
// Overview of open apps:
+ // - Recent apps button
// - Meta + Tab
shortcutInfo(resources.getString(R.string.group_system_overview_open_apps)) {
+ command(modifiers = 0, KEYCODE_RECENT_APPS)
+ },
+ shortcutInfo(resources.getString(R.string.group_system_overview_open_apps)) {
command(META_META_ON, KEYCODE_TAB)
},
// Back: go back to previous state (back button)
+ // - Back button
// - Meta + Escape OR
// - Meta + Backspace OR
// - Meta + Left arrow
shortcutInfo(resources.getString(R.string.group_system_go_back)) {
+ command(modifiers = 0, KEYCODE_BACK)
+ },
+ shortcutInfo(resources.getString(R.string.group_system_go_back)) {
command(META_META_ON, KEYCODE_ESCAPE)
},
shortcutInfo(resources.getString(R.string.group_system_go_back)) {
diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/shared/model/ShortcutCategory.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/shared/model/ShortcutCategory.kt
index 4eabefcd2d41..c89ef1582f98 100644
--- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/shared/model/ShortcutCategory.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/shared/model/ShortcutCategory.kt
@@ -31,7 +31,12 @@ sealed interface ShortcutCategoryType {
data class ShortcutCategory(
val type: ShortcutCategoryType,
val subCategories: List<ShortcutSubCategory>
-)
+) {
+ constructor(
+ type: ShortcutCategoryType,
+ vararg subCategories: ShortcutSubCategory
+ ) : this(type, subCategories.asList())
+}
class ShortcutCategoryBuilder(val type: ShortcutCategoryType) {
private val subCategories = mutableListOf<ShortcutSubCategory>()
diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/composable/ShortcutHelper.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/composable/ShortcutHelper.kt
index 869f00cae08e..be64ff606169 100644
--- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/composable/ShortcutHelper.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/composable/ShortcutHelper.kt
@@ -91,9 +91,13 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.Role
import androidx.compose.ui.semantics.role
import androidx.compose.ui.semantics.semantics
+import androidx.compose.ui.text.SpanStyle
+import androidx.compose.ui.text.buildAnnotatedString
+import androidx.compose.ui.text.withStyle
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
+import androidx.compose.ui.util.fastFirstOrNull
import androidx.compose.ui.util.fastForEach
import androidx.compose.ui.util.fastForEachIndexed
import com.android.compose.ui.graphics.painter.rememberDrawablePainter
@@ -112,6 +116,7 @@ import com.android.systemui.statusbar.phone.CentralSurfaces
@Composable
fun ShortcutHelper(
+ onSearchQueryChanged: (String) -> Unit,
onKeyboardSettingsClicked: () -> Unit,
modifier: Modifier = Modifier,
shortcutsUiState: ShortcutsUiState,
@@ -119,39 +124,69 @@ fun ShortcutHelper(
) {
when (shortcutsUiState) {
is ShortcutsUiState.Active -> {
- if (useSinglePane()) {
- ShortcutHelperSinglePane(
- modifier,
- shortcutsUiState.shortcutCategories,
- shortcutsUiState.defaultSelectedCategory,
- onKeyboardSettingsClicked
- )
- } else {
- ShortcutHelperTwoPane(
- modifier,
- shortcutsUiState.shortcutCategories,
- shortcutsUiState.defaultSelectedCategory,
- onKeyboardSettingsClicked
- )
- }
+ ActiveShortcutHelper(
+ shortcutsUiState,
+ useSinglePane,
+ onSearchQueryChanged,
+ modifier,
+ onKeyboardSettingsClicked
+ )
}
- is ShortcutsUiState.Inactive -> {
+ else -> {
// No-op for now.
}
}
}
@Composable
+private fun ActiveShortcutHelper(
+ shortcutsUiState: ShortcutsUiState.Active,
+ useSinglePane: @Composable () -> Boolean,
+ onSearchQueryChanged: (String) -> Unit,
+ modifier: Modifier,
+ onKeyboardSettingsClicked: () -> Unit
+) {
+ var selectedCategoryType by
+ remember(shortcutsUiState.defaultSelectedCategory) {
+ mutableStateOf(shortcutsUiState.defaultSelectedCategory)
+ }
+ if (useSinglePane()) {
+ ShortcutHelperSinglePane(
+ shortcutsUiState.searchQuery,
+ onSearchQueryChanged,
+ shortcutsUiState.shortcutCategories,
+ selectedCategoryType,
+ onCategorySelected = { selectedCategoryType = it },
+ onKeyboardSettingsClicked,
+ modifier,
+ )
+ } else {
+ ShortcutHelperTwoPane(
+ shortcutsUiState.searchQuery,
+ onSearchQueryChanged,
+ modifier,
+ shortcutsUiState.shortcutCategories,
+ selectedCategoryType,
+ onCategorySelected = { selectedCategoryType = it },
+ onKeyboardSettingsClicked
+ )
+ }
+}
+
+@Composable
private fun shouldUseSinglePane() =
LocalWindowSizeClass.current.widthSizeClass == WindowWidthSizeClass.Compact ||
LocalWindowSizeClass.current.heightSizeClass == WindowHeightSizeClass.Compact
@Composable
private fun ShortcutHelperSinglePane(
- modifier: Modifier = Modifier,
+ searchQuery: String,
+ onSearchQueryChanged: (String) -> Unit,
categories: List<ShortcutCategory>,
- defaultSelectedCategory: ShortcutCategoryType,
+ selectedCategoryType: ShortcutCategoryType?,
+ onCategorySelected: (ShortcutCategoryType?) -> Unit,
onKeyboardSettingsClicked: () -> Unit,
+ modifier: Modifier = Modifier,
) {
Column(
modifier =
@@ -162,9 +197,9 @@ private fun ShortcutHelperSinglePane(
) {
TitleBar()
Spacer(modifier = Modifier.height(6.dp))
- ShortcutsSearchBar()
+ ShortcutsSearchBar(onSearchQueryChanged)
Spacer(modifier = Modifier.height(16.dp))
- CategoriesPanelSinglePane(categories, defaultSelectedCategory)
+ CategoriesPanelSinglePane(searchQuery, categories, selectedCategoryType, onCategorySelected)
Spacer(modifier = Modifier.weight(1f))
KeyboardSettings(onClick = onKeyboardSettingsClicked)
}
@@ -172,16 +207,18 @@ private fun ShortcutHelperSinglePane(
@Composable
private fun CategoriesPanelSinglePane(
+ searchQuery: String,
categories: List<ShortcutCategory>,
- defaultSelectedCategory: ShortcutCategoryType,
+ selectedCategoryType: ShortcutCategoryType?,
+ onCategorySelected: (ShortcutCategoryType?) -> Unit,
) {
- val selectedCategory = categories.firstOrNull { it.type == defaultSelectedCategory }
- var expandedCategory by remember { mutableStateOf(selectedCategory) }
Column(verticalArrangement = Arrangement.spacedBy(2.dp)) {
categories.fastForEachIndexed { index, category ->
- val isExpanded = expandedCategory == category
+ val isExpanded = selectedCategoryType == category.type
val itemShape =
- if (index == 0) {
+ if (categories.size == 1) {
+ ShortcutHelper.Shapes.singlePaneSingleCategory
+ } else if (index == 0) {
ShortcutHelper.Shapes.singlePaneFirstCategory
} else if (index == categories.lastIndex) {
ShortcutHelper.Shapes.singlePaneLastCategory
@@ -189,15 +226,17 @@ private fun CategoriesPanelSinglePane(
ShortcutHelper.Shapes.singlePaneCategory
}
CategoryItemSinglePane(
+ searchQuery = searchQuery,
category = category,
isExpanded = isExpanded,
onClick = {
- expandedCategory =
+ onCategorySelected(
if (isExpanded) {
null
} else {
- category
+ category.type
}
+ )
},
shape = itemShape,
)
@@ -207,6 +246,7 @@ private fun CategoriesPanelSinglePane(
@Composable
private fun CategoryItemSinglePane(
+ searchQuery: String,
category: ShortcutCategory,
isExpanded: Boolean,
onClick: () -> Unit,
@@ -222,13 +262,15 @@ private fun CategoryItemSinglePane(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.fillMaxWidth().heightIn(min = 88.dp).padding(horizontal = 16.dp)
) {
- ShortcutCategoryIcon(category.icon)
+ ShortcutCategoryIcon(modifier = Modifier.size(24.dp), source = category.icon)
Spacer(modifier = Modifier.width(16.dp))
Text(category.label(LocalContext.current))
Spacer(modifier = Modifier.weight(1f))
RotatingExpandCollapseIcon(isExpanded)
}
- AnimatedVisibility(visible = isExpanded) { ShortcutCategoryDetailsSinglePane(category) }
+ AnimatedVisibility(visible = isExpanded) {
+ ShortcutCategoryDetailsSinglePane(searchQuery, category)
+ }
}
}
}
@@ -253,8 +295,8 @@ private val ShortcutCategory.icon: IconSource
@Composable
fun ShortcutCategoryIcon(
source: IconSource,
- contentDescription: String? = null,
modifier: Modifier = Modifier,
+ contentDescription: String? = null,
tint: Color = LocalContentColor.current
) {
if (source.imageVector != null) {
@@ -326,30 +368,30 @@ private fun RotatingExpandCollapseIcon(isExpanded: Boolean) {
}
@Composable
-private fun ShortcutCategoryDetailsSinglePane(category: ShortcutCategory) {
+private fun ShortcutCategoryDetailsSinglePane(searchQuery: String, category: ShortcutCategory) {
Column(Modifier.padding(horizontal = 16.dp)) {
category.subCategories.fastForEach { subCategory ->
- ShortcutSubCategorySinglePane(subCategory)
+ ShortcutSubCategorySinglePane(searchQuery, subCategory)
}
}
}
@Composable
-private fun ShortcutSubCategorySinglePane(subCategory: ShortcutSubCategory) {
+private fun ShortcutSubCategorySinglePane(searchQuery: String, subCategory: ShortcutSubCategory) {
// This @Composable is expected to be in a Column.
SubCategoryTitle(subCategory.label)
subCategory.shortcuts.fastForEachIndexed { index, shortcut ->
if (index > 0) {
HorizontalDivider()
}
- ShortcutSinglePane(shortcut)
+ ShortcutSinglePane(searchQuery, shortcut)
}
}
@Composable
-private fun ShortcutSinglePane(shortcut: Shortcut) {
+private fun ShortcutSinglePane(searchQuery: String, shortcut: Shortcut) {
Column(Modifier.padding(vertical = 24.dp)) {
- ShortcutDescriptionText(shortcut = shortcut)
+ ShortcutDescriptionText(searchQuery = searchQuery, shortcut = shortcut)
Spacer(modifier = Modifier.height(12.dp))
ShortcutKeyCombinations(shortcut = shortcut)
}
@@ -357,42 +399,49 @@ private fun ShortcutSinglePane(shortcut: Shortcut) {
@Composable
private fun ShortcutHelperTwoPane(
+ searchQuery: String,
+ onSearchQueryChanged: (String) -> Unit,
modifier: Modifier = Modifier,
categories: List<ShortcutCategory>,
- defaultSelectedCategory: ShortcutCategoryType,
+ selectedCategoryType: ShortcutCategoryType?,
+ onCategorySelected: (ShortcutCategoryType?) -> Unit,
onKeyboardSettingsClicked: () -> Unit,
) {
- var selectedCategoryType by remember { mutableStateOf(defaultSelectedCategory) }
- val selectedCategory = categories.first { it.type == selectedCategoryType }
+ val selectedCategory = categories.fastFirstOrNull { it.type == selectedCategoryType }
Column(modifier = modifier.fillMaxSize().padding(start = 24.dp, end = 24.dp, top = 26.dp)) {
TitleBar()
Spacer(modifier = Modifier.height(12.dp))
Row(Modifier.fillMaxWidth()) {
StartSidePanel(
+ onSearchQueryChanged = onSearchQueryChanged,
modifier = Modifier.fillMaxWidth(fraction = 0.32f),
categories = categories,
- selectedCategory = selectedCategoryType,
- onCategoryClicked = { selectedCategoryType = it.type },
onKeyboardSettingsClicked = onKeyboardSettingsClicked,
+ selectedCategory = selectedCategoryType,
+ onCategoryClicked = { onCategorySelected(it.type) }
)
Spacer(modifier = Modifier.width(24.dp))
- EndSidePanel(Modifier.fillMaxSize(), selectedCategory)
+ EndSidePanel(searchQuery, Modifier.fillMaxSize(), selectedCategory)
}
}
}
@Composable
-private fun EndSidePanel(modifier: Modifier, category: ShortcutCategory) {
+private fun EndSidePanel(searchQuery: String, modifier: Modifier, category: ShortcutCategory?) {
+ if (category == null) {
+ // TODO(b/353953351) - Show a "no results" UI?
+ return
+ }
LazyColumn(modifier.nestedScroll(rememberNestedScrollInteropConnection())) {
items(items = category.subCategories, key = { item -> item.label }) {
- SubCategoryContainerDualPane(it)
+ SubCategoryContainerDualPane(searchQuery, it)
Spacer(modifier = Modifier.height(8.dp))
}
}
}
@Composable
-private fun SubCategoryContainerDualPane(subCategory: ShortcutSubCategory) {
+private fun SubCategoryContainerDualPane(searchQuery: String, subCategory: ShortcutSubCategory) {
Surface(
modifier = Modifier.fillMaxWidth(),
shape = RoundedCornerShape(28.dp),
@@ -405,7 +454,7 @@ private fun SubCategoryContainerDualPane(subCategory: ShortcutSubCategory) {
if (index > 0) {
HorizontalDivider()
}
- ShortcutViewDualPane(shortcut)
+ ShortcutViewDualPane(searchQuery, shortcut)
}
}
}
@@ -421,7 +470,7 @@ private fun SubCategoryTitle(title: String) {
}
@Composable
-private fun ShortcutViewDualPane(shortcut: Shortcut) {
+private fun ShortcutViewDualPane(searchQuery: String, shortcut: Shortcut) {
Row(Modifier.padding(vertical = 16.dp)) {
Row(
modifier = Modifier.width(160.dp).align(Alignment.CenterVertically),
@@ -435,6 +484,7 @@ private fun ShortcutViewDualPane(shortcut: Shortcut) {
)
}
ShortcutDescriptionText(
+ searchQuery = searchQuery,
shortcut = shortcut,
)
}
@@ -544,27 +594,53 @@ private fun FlowRowScope.ShortcutOrSeparator(spacing: Dp) {
@Composable
private fun ShortcutDescriptionText(
+ searchQuery: String,
shortcut: Shortcut,
modifier: Modifier = Modifier,
) {
Text(
modifier = modifier,
- text = shortcut.label,
+ text = textWithHighlightedSearchQuery(shortcut.label, searchQuery),
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onSurface,
)
}
@Composable
+private fun textWithHighlightedSearchQuery(text: String, searchValue: String) =
+ buildAnnotatedString {
+ val searchIndex = text.lowercase().indexOf(searchValue.trim().lowercase())
+ val postSearchIndex = searchIndex + searchValue.trim().length
+
+ if (searchIndex > 0) {
+ val preSearchText = text.substring(0, searchIndex)
+ append(preSearchText)
+ }
+ if (searchIndex >= 0) {
+ val searchText = text.substring(searchIndex, postSearchIndex)
+ withStyle(style = SpanStyle(background = MaterialTheme.colorScheme.primaryContainer)) {
+ append(searchText)
+ }
+ if (postSearchIndex < text.length) {
+ val postSearchText = text.substring(postSearchIndex)
+ append(postSearchText)
+ }
+ } else {
+ append(text)
+ }
+ }
+
+@Composable
private fun StartSidePanel(
+ onSearchQueryChanged: (String) -> Unit,
modifier: Modifier,
categories: List<ShortcutCategory>,
onKeyboardSettingsClicked: () -> Unit,
- selectedCategory: ShortcutCategoryType,
+ selectedCategory: ShortcutCategoryType?,
onCategoryClicked: (ShortcutCategory) -> Unit,
) {
Column(modifier) {
- ShortcutsSearchBar()
+ ShortcutsSearchBar(onSearchQueryChanged)
Spacer(modifier = Modifier.heightIn(16.dp))
CategoriesPanelTwoPane(categories, selectedCategory, onCategoryClicked)
Spacer(modifier = Modifier.weight(1f))
@@ -575,7 +651,7 @@ private fun StartSidePanel(
@Composable
private fun CategoriesPanelTwoPane(
categories: List<ShortcutCategory>,
- selectedCategory: ShortcutCategoryType,
+ selectedCategory: ShortcutCategoryType?,
onCategoryClicked: (ShortcutCategory) -> Unit
) {
Column {
@@ -643,17 +719,23 @@ private fun TitleBar() {
@Composable
@OptIn(ExperimentalMaterial3Api::class)
-private fun ShortcutsSearchBar() {
- var query by remember { mutableStateOf("") }
+private fun ShortcutsSearchBar(onQueryChange: (String) -> Unit) {
+ // Using an "internal query" to make sure the SearchBar is immediately updated, otherwise
+ // the cursor moves to the wrong position sometimes, when waiting for the query to come back
+ // from the ViewModel.
+ var queryInternal by remember { mutableStateOf("") }
val focusRequester = remember { FocusRequester() }
LaunchedEffect(Unit) { focusRequester.requestFocus() }
SearchBar(
modifier = Modifier.fillMaxWidth().focusRequester(focusRequester),
colors = SearchBarDefaults.colors(containerColor = MaterialTheme.colorScheme.surfaceBright),
- query = query,
+ query = queryInternal,
active = false,
onActiveChange = {},
- onQueryChange = { query = it },
+ onQueryChange = {
+ queryInternal = it
+ onQueryChange(it)
+ },
onSearch = {},
leadingIcon = { Icon(Icons.Default.Search, contentDescription = null) },
placeholder = { Text(text = stringResource(R.string.shortcut_helper_search_placeholder)) },
@@ -701,6 +783,10 @@ object ShortcutHelper {
bottomStart = Dimensions.SinglePaneCategoryCornerRadius,
bottomEnd = Dimensions.SinglePaneCategoryCornerRadius
)
+ val singlePaneSingleCategory =
+ RoundedCornerShape(
+ size = Dimensions.SinglePaneCategoryCornerRadius,
+ )
val singlePaneCategory = RectangleShape
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/model/ShortcutsUiState.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/model/ShortcutsUiState.kt
index daafc3f53147..d2122b3f173a 100644
--- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/model/ShortcutsUiState.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/model/ShortcutsUiState.kt
@@ -22,8 +22,9 @@ import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCategoryType
sealed interface ShortcutsUiState {
data class Active(
+ val searchQuery: String,
val shortcutCategories: List<ShortcutCategory>,
- val defaultSelectedCategory: ShortcutCategoryType,
+ val defaultSelectedCategory: ShortcutCategoryType?,
) : ShortcutsUiState
data object Inactive : ShortcutsUiState
diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/view/ShortcutHelperActivity.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/view/ShortcutHelperActivity.kt
index d0e3ab40f8d3..b8d0c23e6c29 100644
--- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/view/ShortcutHelperActivity.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/view/ShortcutHelperActivity.kt
@@ -84,6 +84,7 @@ constructor(
ShortcutHelper(
shortcutsUiState = shortcutsUiState,
onKeyboardSettingsClicked = ::onKeyboardSettingsClicked,
+ onSearchQueryChanged = { viewModel.onSearchQueryChanged(it) },
)
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/viewmodel/ShortcutHelperViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/viewmodel/ShortcutHelperViewModel.kt
index 25574ea551b4..e64cc807ab25 100644
--- a/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/viewmodel/ShortcutHelperViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyboard/shortcut/ui/viewmodel/ShortcutHelperViewModel.kt
@@ -19,14 +19,18 @@ package com.android.systemui.keyboard.shortcut.ui.viewmodel
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.keyboard.shortcut.domain.interactor.ShortcutHelperCategoriesInteractor
import com.android.systemui.keyboard.shortcut.domain.interactor.ShortcutHelperStateInteractor
+import com.android.systemui.keyboard.shortcut.shared.model.Shortcut
import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCategory
import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCategoryType
import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCategoryType.CurrentApp
+import com.android.systemui.keyboard.shortcut.shared.model.ShortcutSubCategory
import com.android.systemui.keyboard.shortcut.ui.model.ShortcutsUiState
import javax.inject.Inject
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.map
@@ -41,6 +45,8 @@ constructor(
categoriesInteractor: ShortcutHelperCategoriesInteractor,
) {
+ private val searchQuery = MutableStateFlow("")
+
val shouldShow =
categoriesInteractor.shortcutCategories
.map { it.isNotEmpty() }
@@ -48,14 +54,15 @@ constructor(
.flowOn(backgroundDispatcher)
val shortcutsUiState =
- categoriesInteractor.shortcutCategories
- .map {
- if (it.isEmpty()) {
+ combine(searchQuery, categoriesInteractor.shortcutCategories) { query, categories ->
+ if (categories.isEmpty()) {
ShortcutsUiState.Inactive
} else {
+ val filteredCategories = filterCategoriesBySearchQuery(query, categories)
ShortcutsUiState.Active(
- shortcutCategories = it,
- defaultSelectedCategory = getDefaultSelectedCategory(it),
+ searchQuery = query,
+ shortcutCategories = filteredCategories,
+ defaultSelectedCategory = getDefaultSelectedCategory(filteredCategories),
)
}
}
@@ -67,11 +74,47 @@ constructor(
private fun getDefaultSelectedCategory(
categories: List<ShortcutCategory>
- ): ShortcutCategoryType {
+ ): ShortcutCategoryType? {
val currentAppShortcuts = categories.firstOrNull { it.type is CurrentApp }
- return currentAppShortcuts?.type ?: categories.first().type
+ return currentAppShortcuts?.type ?: categories.firstOrNull()?.type
+ }
+
+ private fun filterCategoriesBySearchQuery(
+ query: String,
+ categories: List<ShortcutCategory>
+ ): List<ShortcutCategory> {
+ val lowerCaseTrimmedQuery = query.trim().lowercase()
+ if (lowerCaseTrimmedQuery.isEmpty()) {
+ return categories
+ }
+ return categories
+ .map { category ->
+ category.copy(
+ subCategories =
+ filterSubCategoriesBySearchQuery(
+ subCategories = category.subCategories,
+ query = lowerCaseTrimmedQuery,
+ )
+ )
+ }
+ .filter { it.subCategories.isNotEmpty() }
}
+ private fun filterSubCategoriesBySearchQuery(
+ subCategories: List<ShortcutSubCategory>,
+ query: String
+ ) =
+ subCategories
+ .map { subCategory ->
+ subCategory.copy(
+ shortcuts = filterShortcutsBySearchQuery(subCategory.shortcuts, query)
+ )
+ }
+ .filter { it.shortcuts.isNotEmpty() }
+
+ private fun filterShortcutsBySearchQuery(shortcuts: List<Shortcut>, query: String) =
+ shortcuts.filter { shortcut -> shortcut.label.trim().lowercase().contains(query) }
+
fun onViewClosed() {
stateInteractor.onViewClosed()
}
@@ -79,4 +122,8 @@ constructor(
fun onViewOpened() {
stateInteractor.onViewOpened()
}
+
+ fun onSearchQueryChanged(query: String) {
+ searchQuery.value = query
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt
index f4d82659971d..1152d7040a38 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt
@@ -19,12 +19,15 @@ package com.android.systemui.keyguard.domain.interactor
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
+import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor
import com.android.systemui.keyguard.data.repository.KeyguardRepository
import com.android.systemui.keyguard.shared.model.DismissAction
import com.android.systemui.keyguard.shared.model.KeyguardDone
import com.android.systemui.keyguard.shared.model.KeyguardState.ALTERNATE_BOUNCER
import com.android.systemui.keyguard.shared.model.KeyguardState.GONE
import com.android.systemui.keyguard.shared.model.KeyguardState.PRIMARY_BOUNCER
+import com.android.systemui.scene.domain.interactor.SceneInteractor
+import com.android.systemui.scene.shared.flag.SceneContainerFlag
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.util.kotlin.Utils.Companion.sampleFilter
import com.android.systemui.util.kotlin.sample
@@ -35,6 +38,7 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.filterNot
import kotlinx.coroutines.flow.map
@@ -51,6 +55,8 @@ constructor(
transitionInteractor: KeyguardTransitionInteractor,
val dismissInteractor: KeyguardDismissInteractor,
@Application private val applicationScope: CoroutineScope,
+ sceneInteractor: SceneInteractor,
+ deviceEntryInteractor: DeviceEntryInteractor,
) {
val dismissAction: Flow<DismissAction> = repository.dismissAction
@@ -80,9 +86,26 @@ constructor(
.filter { it }
.map {}
+ /**
+ * True if the any variation of the notification shade or quick settings is showing AND the
+ * device is unlocked. Else, false.
+ */
+ private val isOnShadeWhileUnlocked: Flow<Boolean> =
+ combine(
+ sceneInteractor.currentScene,
+ deviceEntryInteractor.isUnlocked,
+ ) { scene, isUnlocked ->
+ isUnlocked &&
+ (scene == Scenes.Shade ||
+ scene == Scenes.NotificationsShade ||
+ scene == Scenes.QuickSettings ||
+ scene == Scenes.QuickSettingsShade)
+ }
+ .distinctUntilChanged()
val executeDismissAction: Flow<() -> KeyguardDone> =
merge(
finishedTransitionToGone,
+ isOnShadeWhileUnlocked.filter { it }.map {},
dismissInteractor.dismissKeyguardRequestWithImmediateDismissAction
)
.sample(dismissAction)
@@ -99,9 +122,10 @@ constructor(
scene = Scenes.Bouncer,
stateWithoutSceneContainer = PRIMARY_BOUNCER
),
- transitionInteractor.isFinishedIn(state = ALTERNATE_BOUNCER)
- ) { isOnGone, isOnBouncer, isOnAltBouncer ->
- !isOnGone && !isOnBouncer && !isOnAltBouncer
+ transitionInteractor.isFinishedIn(state = ALTERNATE_BOUNCER),
+ isOnShadeWhileUnlocked,
+ ) { isOnGone, isOnBouncer, isOnAltBouncer, isOnShadeWhileUnlocked ->
+ !isOnGone && !isOnBouncer && !isOnAltBouncer && !isOnShadeWhileUnlocked
}
.filter { it }
.sampleFilter(dismissAction) { it !is DismissAction.None }
@@ -112,6 +136,7 @@ constructor(
}
fun runAfterKeyguardGone(runnable: Runnable) {
+ if (SceneContainerFlag.isUnexpectedlyInLegacyMode()) return
setDismissAction(
DismissAction.RunAfterKeyguardGone(
dismissAction = { runnable.run() },
@@ -123,15 +148,18 @@ constructor(
}
fun setDismissAction(dismissAction: DismissAction) {
+ if (SceneContainerFlag.isUnexpectedlyInLegacyMode()) return
repository.dismissAction.value.onCancelAction.run()
repository.setDismissAction(dismissAction)
}
fun handleDismissAction() {
+ if (SceneContainerFlag.isUnexpectedlyInLegacyMode()) return
repository.setDismissAction(DismissAction.None)
}
suspend fun setKeyguardDone(keyguardDoneTiming: KeyguardDone) {
+ if (SceneContainerFlag.isUnexpectedlyInLegacyMode()) return
dismissInteractor.setKeyguardDone(keyguardDoneTiming)
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardDismissActionBinder.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardDismissActionBinder.kt
index b29302721253..74a7262d7889 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardDismissActionBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/binder/KeyguardDismissActionBinder.kt
@@ -23,6 +23,7 @@ import com.android.systemui.keyguard.domain.interactor.KeyguardDismissActionInte
import com.android.systemui.log.core.LogLevel
import com.android.systemui.scene.shared.flag.SceneContainerFlag
import com.android.systemui.util.kotlin.sample
+import dagger.Lazy
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -34,7 +35,7 @@ import kotlinx.coroutines.launch
class KeyguardDismissActionBinder
@Inject
constructor(
- private val interactor: KeyguardDismissActionInteractor,
+ private val interactorLazy: Lazy<KeyguardDismissActionInteractor>,
@Application private val scope: CoroutineScope,
private val keyguardLogger: KeyguardLogger,
) : CoreStartable {
@@ -44,6 +45,7 @@ constructor(
return
}
+ val interactor = interactorLazy.get()
scope.launch {
interactor.executeDismissAction.collect {
log("executeDismissAction")
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java
index 69a157f19ea1..addb0147889f 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java
@@ -19,6 +19,7 @@ package com.android.systemui.media.controls.ui.controller;
import static android.provider.Settings.ACTION_MEDIA_CONTROLS_SETTINGS;
import static com.android.settingslib.flags.Flags.legacyLeAudioSharing;
+import static com.android.systemui.Flags.communalHub;
import static com.android.systemui.Flags.mediaLockscreenLaunchAnimation;
import static com.android.systemui.media.controls.shared.model.SmartspaceMediaDataKt.NUM_REQUIRED_RECOMMENDATIONS;
@@ -90,6 +91,8 @@ import com.android.systemui.animation.ActivityTransitionAnimator;
import com.android.systemui.animation.GhostedViewTransitionAnimatorController;
import com.android.systemui.bluetooth.BroadcastDialogController;
import com.android.systemui.broadcast.BroadcastSender;
+import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor;
+import com.android.systemui.communal.widgets.CommunalTransitionAnimatorController;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.media.controls.domain.pipeline.MediaDataManager;
@@ -202,10 +205,12 @@ public class MediaControlPanel {
);
// Time in millis for playing turbulence noise that is played after a touch ripple.
- @VisibleForTesting static final long TURBULENCE_NOISE_PLAY_DURATION = 7500L;
+ @VisibleForTesting
+ static final long TURBULENCE_NOISE_PLAY_DURATION = 7500L;
private final SeekBarViewModel mSeekBarViewModel;
private final MediaFlags mMediaFlags;
+ private final CommunalSceneInteractor mCommunalSceneInteractor;
private SeekBarObserver mSeekBarObserver;
protected final Executor mBackgroundExecutor;
private final DelayableExecutor mMainExecutor;
@@ -293,8 +298,9 @@ public class MediaControlPanel {
* Initialize a new control panel
*
* @param backgroundExecutor background executor, used for processing artwork
- * @param mainExecutor main thread executor, used if we receive callbacks on the background
- * thread that then trigger UI changes.
+ * @param mainExecutor main thread executor, used if we receive callbacks on the
+ * background
+ * thread that then trigger UI changes.
* @param activityStarter activity starter
*/
@Inject
@@ -314,6 +320,7 @@ public class MediaControlPanel {
MediaUiEventLogger logger,
KeyguardStateController keyguardStateController,
ActivityIntentHelper activityIntentHelper,
+ CommunalSceneInteractor communalSceneInteractor,
NotificationLockscreenUserManager lockscreenUserManager,
BroadcastDialogController broadcastDialogController,
GlobalSettings globalSettings,
@@ -337,6 +344,7 @@ public class MediaControlPanel {
mLockscreenUserManager = lockscreenUserManager;
mBroadcastDialogController = broadcastDialogController;
mMediaFlags = mediaFlags;
+ mCommunalSceneInteractor = communalSceneInteractor;
mSeekBarViewModel.setLogSeek(() -> {
if (mPackageName != null && mInstanceId != null) {
@@ -375,6 +383,7 @@ public class MediaControlPanel {
/**
* Get the recommendation view holder used to display Smartspace media recs.
+ *
* @return the recommendation view holder
*/
@Nullable
@@ -693,7 +702,7 @@ public class MediaControlPanel {
// TODO(b/233698402): Use the package name instead of app label to avoid the
// unexpected result.
mIsCurrentBroadcastedApp = device != null
- && TextUtils.equals(device.getName(),
+ && TextUtils.equals(device.getName(),
mContext.getString(R.string.broadcasting_description_is_broadcasting));
useDisabledAlpha = !mIsCurrentBroadcastedApp;
// Always be enabled if the broadcast button is shown
@@ -764,7 +773,7 @@ public class MediaControlPanel {
PendingIntent deviceIntent = device.getIntent();
boolean showOverLockscreen = mKeyguardStateController.isShowing()
&& mActivityIntentHelper.wouldPendingShowOverLockscreen(
- deviceIntent, mLockscreenUserManager.getCurrentUserId());
+ deviceIntent, mLockscreenUserManager.getCurrentUserId());
if (deviceIntent.isActivity()) {
if (!showOverLockscreen) {
mActivityStarter.postStartActivityDismissingKeyguard(
@@ -825,24 +834,26 @@ public class MediaControlPanel {
ConstraintSet expandedSet = mMediaViewController.getExpandedLayout();
ConstraintSet collapsedSet = mMediaViewController.getCollapsedLayout();
return mMetadataAnimationHandler.setNext(
- new Triple(data.getSong(), data.getArtist(), data.isExplicit()),
- () -> {
- titleText.setText(data.getSong());
- artistText.setText(data.getArtist());
- setVisibleAndAlpha(expandedSet, R.id.media_explicit_indicator, data.isExplicit());
- setVisibleAndAlpha(collapsedSet, R.id.media_explicit_indicator, data.isExplicit());
-
- // refreshState is required here to resize the text views (and prevent ellipsis)
- mMediaViewController.refreshState();
- return Unit.INSTANCE;
- },
- () -> {
- // After finishing the enter animation, we refresh state. This could pop if
- // something is incorrectly bound, but needs to be run if other elements were
- // updated while the enter animation was running
- mMediaViewController.refreshState();
- return Unit.INSTANCE;
- });
+ new Triple(data.getSong(), data.getArtist(), data.isExplicit()),
+ () -> {
+ titleText.setText(data.getSong());
+ artistText.setText(data.getArtist());
+ setVisibleAndAlpha(expandedSet, R.id.media_explicit_indicator,
+ data.isExplicit());
+ setVisibleAndAlpha(collapsedSet, R.id.media_explicit_indicator,
+ data.isExplicit());
+
+ // refreshState is required here to resize the text views (and prevent ellipsis)
+ mMediaViewController.refreshState();
+ return Unit.INSTANCE;
+ },
+ () -> {
+ // After finishing the enter animation, we refresh state. This could pop if
+ // something is incorrectly bound, but needs to be run if other elements were
+ // updated while the enter animation was running
+ mMediaViewController.refreshState();
+ return Unit.INSTANCE;
+ });
}
// We may want to look into unifying this with bindRecommendationContentDescription if/when we
@@ -1105,7 +1116,7 @@ public class MediaControlPanel {
private LayerDrawable setupGradientColorOnDrawable(Drawable albumArt, GradientDrawable gradient,
ColorScheme mutableColorScheme, float startAlpha, float endAlpha) {
- gradient.setColors(new int[] {
+ gradient.setColors(new int[]{
ColorUtilKt.getColorWithAlpha(
MediaColorSchemesKt.backgroundStartFromScheme(mutableColorScheme),
startAlpha),
@@ -1113,7 +1124,7 @@ public class MediaControlPanel {
MediaColorSchemesKt.backgroundEndFromScheme(mutableColorScheme),
endAlpha),
});
- return new LayerDrawable(new Drawable[] { albumArt, gradient });
+ return new LayerDrawable(new Drawable[]{albumArt, gradient});
}
private void scaleTransitionDrawableLayer(TransitionDrawable transitionDrawable, int layer,
@@ -1143,7 +1154,7 @@ public class MediaControlPanel {
ConstraintSet collapsedSet = mMediaViewController.getCollapsedLayout();
if (semanticActions != null) {
// Hide all the generic buttons
- for (ImageButton b: genericButtons) {
+ for (ImageButton b : genericButtons) {
setVisibleAndAlpha(collapsedSet, b.getId(), false);
setVisibleAndAlpha(expandedSet, b.getId(), false);
}
@@ -1346,6 +1357,7 @@ public class MediaControlPanel {
/* shouldInverseNoiseLuminosity= */ false
);
}
+
private void clearButton(final ImageButton button) {
button.setImageDrawable(null);
button.setContentDescription(null);
@@ -1421,19 +1433,33 @@ public class MediaControlPanel {
// TODO(b/174236650): Make sure that the carousel indicator also fades out.
// TODO(b/174236650): Instrument the animation to measure jank.
- return new GhostedViewTransitionAnimatorController(player,
- InteractionJankMonitor.CUJ_SHADE_APP_LAUNCH_FROM_MEDIA_PLAYER) {
- @Override
- protected float getCurrentTopCornerRadius() {
- return mContext.getResources().getDimension(R.dimen.notification_corner_radius);
- }
+ final ActivityTransitionAnimator.Controller controller =
+ new GhostedViewTransitionAnimatorController(player,
+ InteractionJankMonitor.CUJ_SHADE_APP_LAUNCH_FROM_MEDIA_PLAYER) {
+ @Override
+ protected float getCurrentTopCornerRadius() {
+ return mContext.getResources().getDimension(
+ R.dimen.notification_corner_radius);
+ }
- @Override
- protected float getCurrentBottomCornerRadius() {
- // TODO(b/184121838): Make IlluminationDrawable support top and bottom radius.
- return getCurrentTopCornerRadius();
- }
- };
+ @Override
+ protected float getCurrentBottomCornerRadius() {
+ // TODO(b/184121838): Make IlluminationDrawable support top and bottom
+ // radius.
+ return getCurrentTopCornerRadius();
+ }
+ };
+
+ // When on the hub, wrap in the communal animation controller to ensure we exit the hub
+ // at the proper stage of the animation.
+ if (communalHub()
+ && mMediaViewController.getCurrentEndLocation()
+ == MediaHierarchyManager.LOCATION_COMMUNAL_HUB) {
+ mCommunalSceneInteractor.setIsLaunchingWidget(true);
+ return new CommunalTransitionAnimatorController(controller,
+ mCommunalSceneInteractor);
+ }
+ return controller;
}
/** Bind this recommendation view based on the given data. */
@@ -1934,6 +1960,7 @@ public class MediaControlPanel {
/**
* Get the surface given the current end location for MediaViewController
+ *
* @return surface used for Smartspace logging
*/
protected int getSurfaceForSmartspaceLogging() {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/DragAndDropState.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/DragAndDropState.kt
index 782fb2ad25a0..71deeb61b9e9 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/DragAndDropState.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/DragAndDropState.kt
@@ -14,12 +14,9 @@
* limitations under the License.
*/
-@file:OptIn(ExperimentalFoundationApi::class)
-
package com.android.systemui.qs.panels.ui.compose
import android.content.ClipData
-import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.draganddrop.dragAndDropSource
import androidx.compose.foundation.draganddrop.dragAndDropTarget
import androidx.compose.foundation.gestures.detectTapGestures
@@ -32,11 +29,12 @@ import androidx.compose.ui.draganddrop.DragAndDropEvent
import androidx.compose.ui.draganddrop.DragAndDropTarget
import androidx.compose.ui.draganddrop.DragAndDropTransferData
import androidx.compose.ui.draganddrop.mimeTypes
+import com.android.systemui.qs.panels.ui.viewmodel.EditTileViewModel
import com.android.systemui.qs.pipeline.shared.TileSpec
@Composable
fun rememberDragAndDropState(listState: EditTileListState): DragAndDropState {
- val sourceSpec: MutableState<TileSpec?> = remember { mutableStateOf(null) }
+ val sourceSpec: MutableState<EditTileViewModel?> = remember { mutableStateOf(null) }
return remember(listState) { DragAndDropState(sourceSpec, listState) }
}
@@ -45,7 +43,7 @@ fun rememberDragAndDropState(listState: EditTileListState): DragAndDropState {
* drop events.
*/
class DragAndDropState(
- val sourceSpec: MutableState<TileSpec?>,
+ val sourceSpec: MutableState<EditTileViewModel?>,
private val listState: EditTileListState
) {
val dragInProgress: Boolean
@@ -53,15 +51,15 @@ class DragAndDropState(
/** Returns index of the dragged tile if it's present in the list. Returns -1 if not. */
fun currentPosition(): Int {
- return sourceSpec.value?.let { listState.indexOf(it) } ?: -1
+ return sourceSpec.value?.let { listState.indexOf(it.tileSpec) } ?: -1
}
fun isMoving(tileSpec: TileSpec): Boolean {
- return sourceSpec.value?.let { it == tileSpec } ?: false
+ return sourceSpec.value?.let { it.tileSpec == tileSpec } ?: false
}
- fun onStarted(spec: TileSpec) {
- sourceSpec.value = spec
+ fun onStarted(tile: EditTileViewModel) {
+ sourceSpec.value = tile
}
fun onMoved(targetSpec: TileSpec) {
@@ -71,7 +69,7 @@ class DragAndDropState(
fun movedOutOfBounds() {
// Removing the tiles from the current tile grid if it moves out of bounds. This clears
// the spacer and makes it apparent that dropping the tile at that point would remove it.
- sourceSpec.value?.let { listState.removeFromCurrent(it) }
+ sourceSpec.value?.let { listState.remove(it.tileSpec) }
}
fun onDrop() {
@@ -100,7 +98,7 @@ fun Modifier.dragAndDropTile(
object : DragAndDropTarget {
override fun onDrop(event: DragAndDropEvent): Boolean {
return dragAndDropState.sourceSpec.value?.let {
- onDrop(it, dragAndDropState.currentPosition())
+ onDrop(it.tileSpec, dragAndDropState.currentPosition())
dragAndDropState.onDrop()
true
} ?: false
@@ -114,7 +112,7 @@ fun Modifier.dragAndDropTile(
return dragAndDropTarget(
shouldStartDragAndDrop = { event ->
event.mimeTypes().contains(QsDragAndDrop.TILESPEC_MIME_TYPE) &&
- dragAndDropState.sourceSpec.value?.let { acceptDrops(it) } ?: false
+ dragAndDropState.sourceSpec.value?.let { acceptDrops(it.tileSpec) } ?: false
},
target = target,
)
@@ -137,7 +135,7 @@ fun Modifier.dragAndDropRemoveZone(
object : DragAndDropTarget {
override fun onDrop(event: DragAndDropEvent): Boolean {
return dragAndDropState.sourceSpec.value?.let {
- onDrop(it)
+ onDrop(it.tileSpec)
dragAndDropState.onDrop()
true
} ?: false
@@ -179,7 +177,7 @@ fun Modifier.dragAndDropTileList(
override fun onDrop(event: DragAndDropEvent): Boolean {
return dragAndDropState.sourceSpec.value?.let {
- onDrop(it, dragAndDropState.currentPosition())
+ onDrop(it.tileSpec, dragAndDropState.currentPosition())
dragAndDropState.onDrop()
true
} ?: false
@@ -190,23 +188,23 @@ fun Modifier.dragAndDropTileList(
target = target,
shouldStartDragAndDrop = { event ->
event.mimeTypes().contains(QsDragAndDrop.TILESPEC_MIME_TYPE) &&
- dragAndDropState.sourceSpec.value?.let { acceptDrops(it) } ?: false
+ dragAndDropState.sourceSpec.value?.let { acceptDrops(it.tileSpec) } ?: false
},
)
}
fun Modifier.dragAndDropTileSource(
- tileSpec: TileSpec,
+ tile: EditTileViewModel,
onTap: (TileSpec) -> Unit,
onDoubleTap: (TileSpec) -> Unit,
dragAndDropState: DragAndDropState
): Modifier {
return dragAndDropSource {
detectTapGestures(
- onTap = { onTap(tileSpec) },
- onDoubleTap = { onDoubleTap(tileSpec) },
+ onTap = { onTap(tile.tileSpec) },
+ onDoubleTap = { onDoubleTap(tile.tileSpec) },
onLongPress = {
- dragAndDropState.onStarted(tileSpec)
+ dragAndDropState.onStarted(tile)
// The tilespec from the ClipData transferred isn't actually needed as we're moving
// a tile within the same application. We're using a custom MIME type to limit the
@@ -216,7 +214,7 @@ fun Modifier.dragAndDropTileSource(
ClipData(
QsDragAndDrop.CLIPDATA_LABEL,
arrayOf(QsDragAndDrop.TILESPEC_MIME_TYPE),
- ClipData.Item(tileSpec.spec)
+ ClipData.Item(tile.tileSpec.spec)
)
)
)
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/EditTileListState.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/EditTileListState.kt
index 34876c4cf7f3..e0fed2885799 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/EditTileListState.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/EditTileListState.kt
@@ -34,28 +34,25 @@ fun rememberEditListState(
class EditTileListState(tiles: List<EditTileViewModel>) {
val tiles: SnapshotStateList<EditTileViewModel> = tiles.toMutableStateList()
- fun move(tileSpec: TileSpec, target: TileSpec) {
- val fromIndex = indexOf(tileSpec)
+ fun move(tile: EditTileViewModel, target: TileSpec) {
+ val fromIndex = indexOf(tile.tileSpec)
val toIndex = indexOf(target)
- if (fromIndex == -1 || toIndex == -1 || fromIndex == toIndex) {
+ if (toIndex == -1 || fromIndex == toIndex) {
return
}
- val isMovingToCurrent = tiles[toIndex].isCurrent
- tiles.apply { add(toIndex, removeAt(fromIndex).copy(isCurrent = isMovingToCurrent)) }
+ if (fromIndex == -1) {
+ // If tile isn't in the list, simply insert it
+ tiles.add(toIndex, tile)
+ } else {
+ // If tile is present in the list, move it
+ tiles.apply { add(toIndex, removeAt(fromIndex)) }
+ }
}
- /**
- * Sets the [TileSpec] as a non-current tile. Use this when a tile is dragged out of the current
- * tile grid.
- */
- fun removeFromCurrent(tileSpec: TileSpec) {
- val fromIndex = indexOf(tileSpec)
- if (fromIndex >= 0 && fromIndex < tiles.size) {
- // Mark the moving tile as non-current
- tiles[fromIndex] = tiles[fromIndex].copy(isCurrent = false)
- }
+ fun remove(tileSpec: TileSpec) {
+ tiles.removeIf { it.tileSpec == tileSpec }
}
fun indexOf(tileSpec: TileSpec): Int {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/Tile.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/Tile.kt
index bd7956d7d3e1..cb9d0f6a790e 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/Tile.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/Tile.kt
@@ -294,9 +294,9 @@ fun DefaultEditTileGrid(
onRemoveTile: (TileSpec) -> Unit,
onResize: (TileSpec, Boolean) -> Unit,
) {
- val currentListState = rememberEditListState(tiles)
+ val (currentTiles, otherTiles) = tiles.partition { it.isCurrent }
+ val currentListState = rememberEditListState(currentTiles)
val dragAndDropState = rememberDragAndDropState(currentListState)
- val (currentTiles, otherTiles) = currentListState.tiles.partition { it.isCurrent }
val addTileToEnd: (TileSpec) -> Unit by rememberUpdatedState {
onAddTile(it, CurrentTilesInteractor.POSITION_AT_END)
@@ -329,7 +329,7 @@ fun DefaultEditTileGrid(
}
CurrentTilesGrid(
- currentTiles,
+ currentListState.tiles,
columns,
tilePadding,
isIconOnly,
@@ -480,16 +480,13 @@ private fun AvailableTileGrid(
onClick: (TileSpec) -> Unit,
dragAndDropState: DragAndDropState,
) {
- val (otherTilesStock, otherTilesCustom) =
- tiles.filter { !dragAndDropState.isMoving(it.tileSpec) }.partition { it.appName == null }
+ val (otherTilesStock, otherTilesCustom) = tiles.partition { it.appName == null }
val availableTileHeight = tileHeight(true)
val availableGridHeight = gridHeight(tiles.size, availableTileHeight, columns, tilePadding)
// Available tiles
TileLazyGrid(
- modifier =
- Modifier.height(availableGridHeight)
- .dragAndDropTileList(dragAndDropState, { false }, { _, _ -> }),
+ modifier = Modifier.height(availableGridHeight),
columns = GridCells.Fixed(columns)
) {
editTiles(
@@ -594,7 +591,7 @@ fun LazyGridScope.editTiles(
}
.dragAndDropTile(dragAndDropState, viewModel.tileSpec, acceptDrops, onDrop)
.dragAndDropTileSource(
- viewModel.tileSpec,
+ viewModel,
onClick,
onDoubleTap,
dragAndDropState,
diff --git a/packages/SystemUI/src/com/android/systemui/recordissue/CustomTraceSettingsDialogDelegate.kt b/packages/SystemUI/src/com/android/systemui/recordissue/CustomTraceSettingsDialogDelegate.kt
new file mode 100644
index 000000000000..56270cef7afd
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/recordissue/CustomTraceSettingsDialogDelegate.kt
@@ -0,0 +1,236 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.recordissue
+
+import android.annotation.SuppressLint
+import android.app.AlertDialog
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.widget.Switch
+import android.widget.TextView
+import com.android.systemui.recordissue.IssueRecordingState.Companion.TAG_TITLE_DELIMITER
+import com.android.systemui.res.R
+import com.android.systemui.statusbar.phone.SystemUIDialog
+import com.android.traceur.PresetTraceConfigs
+import com.android.traceur.TraceConfig
+import com.android.traceur.res.R as T
+import java.util.function.Consumer
+
+class CustomTraceSettingsDialogDelegate(
+ private val factory: SystemUIDialog.Factory,
+ private val customTraceState: CustomTraceState,
+ private val tagTitles: Set<String>,
+ private val onSave: Runnable,
+) : SystemUIDialog.Delegate {
+
+ private val builder = TraceConfig.Builder(customTraceState.traceConfig)
+
+ override fun createDialog(): SystemUIDialog = factory.create(this)
+
+ override fun beforeCreate(dialog: SystemUIDialog?, savedInstanceState: Bundle?) {
+ super.beforeCreate(dialog, savedInstanceState)
+
+ dialog?.apply {
+ setTitle(R.string.custom_trace_settings_dialog_title)
+ setView(
+ LayoutInflater.from(context).inflate(R.layout.custom_trace_settings_dialog, null)
+ )
+ setPositiveButton(R.string.save) { _, _ ->
+ onSave.run()
+ customTraceState.traceConfig = builder.build()
+ }
+ setNegativeButton(R.string.cancel) { _, _ -> }
+ }
+ }
+
+ @SuppressLint("SetTextI18n")
+ override fun onCreate(dialog: SystemUIDialog?, savedInstanceState: Bundle?) {
+ super.onCreate(dialog, savedInstanceState)
+
+ dialog?.apply {
+ requireViewById<TextView>(R.id.categories).apply {
+ text =
+ context.getString(T.string.categories) +
+ "\n" +
+ if (
+ builder.tags == null ||
+ builder.tags!! == PresetTraceConfigs.getDefaultConfig().tags
+ ) {
+ context.getString(R.string.notification_alert_title)
+ } else {
+ tagTitles
+ .filter {
+ builder.tags!!.contains(it.substringBefore(TAG_TITLE_DELIMITER))
+ }
+ .joinToString()
+ }
+ setOnClickListener { showCategorySelector(this) }
+ }
+ requireViewById<Switch>(R.id.attach_to_bugreport_switch).apply {
+ isChecked = builder.attachToBugreport
+ setOnCheckedChangeListener { _, isChecked -> builder.attachToBugreport = isChecked }
+ }
+ requireViewById<TextView>(R.id.cpu_buffer_size).setupSingleChoiceText(
+ T.array.buffer_size_values,
+ T.array.buffer_size_names,
+ builder.bufferSizeKb,
+ T.string.buffer_size,
+ ) {
+ builder.bufferSizeKb = it
+ }
+ val longTraceSizeText: TextView =
+ requireViewById<TextView>(R.id.long_trace_size).setupSingleChoiceText(
+ T.array.long_trace_size_values,
+ T.array.long_trace_size_names,
+ builder.maxLongTraceSizeMb,
+ T.string.max_long_trace_size,
+ ) {
+ builder.maxLongTraceSizeMb = it
+ }
+ val longTraceDurationText: TextView =
+ requireViewById<TextView>(R.id.long_trace_duration).setupSingleChoiceText(
+ T.array.long_trace_duration_values,
+ T.array.long_trace_duration_names,
+ builder.maxLongTraceDurationMinutes,
+ T.string.max_long_trace_duration,
+ ) {
+ builder.maxLongTraceDurationMinutes = it
+ }
+ requireViewById<Switch>(R.id.long_traces_switch).apply {
+ isChecked = builder.longTrace
+ val disabledAlpha by lazy { getDisabledAlpha(context) }
+ val alpha = if (isChecked) 1f else disabledAlpha
+ longTraceDurationText.alpha = alpha
+ longTraceSizeText.alpha = alpha
+
+ setOnCheckedChangeListener { _, isChecked ->
+ builder.longTrace = isChecked
+ longTraceDurationText.isEnabled = isChecked
+ longTraceSizeText.isEnabled = isChecked
+
+ val newAlpha = if (isChecked) 1f else disabledAlpha
+ longTraceDurationText.alpha = newAlpha
+ longTraceSizeText.alpha = newAlpha
+ }
+ }
+ requireViewById<Switch>(R.id.winscope_switch).apply {
+ isChecked = builder.winscope
+ setOnCheckedChangeListener { _, isChecked -> builder.winscope = isChecked }
+ }
+ requireViewById<Switch>(R.id.trace_debuggable_apps_switch).apply {
+ isChecked = builder.apps
+ setOnCheckedChangeListener { _, isChecked -> builder.apps = isChecked }
+ }
+ requireViewById<TextView>(R.id.long_traces_switch_label).text =
+ context.getString(T.string.long_traces)
+ requireViewById<TextView>(R.id.debuggable_apps_switch_label).text =
+ context.getString(T.string.trace_debuggable_applications)
+ requireViewById<TextView>(R.id.winscope_switch_label).text =
+ context.getString(T.string.winscope_tracing)
+ requireViewById<TextView>(R.id.attach_to_bugreport_switch_label).text =
+ context.getString(T.string.attach_to_bug_report)
+ }
+ }
+
+ @SuppressLint("SetTextI18n")
+ private fun showCategorySelector(root: TextView) {
+ showDialog(root.context) {
+ val tags = builder.tags ?: PresetTraceConfigs.getDefaultConfig().tags
+ val titlesToCheckmarks =
+ tagTitles.associateBy(
+ { it },
+ { tags.contains(it.substringBefore(TAG_TITLE_DELIMITER)) }
+ )
+ val titles = titlesToCheckmarks.keys.toTypedArray()
+ val checkmarks = titlesToCheckmarks.values.toBooleanArray()
+ val checkedTitleSuffixes =
+ titlesToCheckmarks.entries
+ .filter { it.value }
+ .map { it.key.substringAfter(TAG_TITLE_DELIMITER) }
+ .toMutableSet()
+
+ val newTags = tags.toMutableSet()
+ setMultiChoiceItems(titles, checkmarks) { _, i, isChecked ->
+ val tag = titles[i].substringBefore(TAG_TITLE_DELIMITER)
+ val titleSuffix = titles[i].substringAfter(TAG_TITLE_DELIMITER)
+ if (isChecked) {
+ newTags.add(tag)
+ checkedTitleSuffixes.add(titleSuffix)
+ } else {
+ newTags.remove(tag)
+ checkedTitleSuffixes.remove(titleSuffix)
+ }
+ }
+ setPositiveButton(R.string.save) { _, _ ->
+ root.text =
+ root.context.resources.getString(T.string.categories) +
+ "\n" +
+ checkedTitleSuffixes.joinToString()
+ builder.tags = newTags
+ }
+ setNeutralButton(R.string.restore_default) { _, _ ->
+ root.text =
+ context.getString(T.string.categories) +
+ "\n" +
+ context.getString(R.string.notification_alert_title)
+ builder.tags = null
+ }
+ setNegativeButton(R.string.cancel) { _, _ -> }
+ }
+ }
+
+ @SuppressLint("SetTextI18n")
+ private fun TextView.setupSingleChoiceText(
+ resValues: Int,
+ resNames: Int,
+ startingValue: Int,
+ alertTitleRes: Int,
+ onChosen: Consumer<Int>,
+ ): TextView {
+ val values = resources.getStringArray(resValues).map { Integer.parseInt(it) }
+ val names = resources.getStringArray(resNames)
+ val startingIndex = values.indexOf(startingValue)
+ text = resources.getString(alertTitleRes) + "\n${names[startingIndex]}"
+
+ setOnClickListener {
+ showDialog(context) {
+ setTitle(alertTitleRes)
+ setSingleChoiceItems(names, startingIndex) { d, i ->
+ text = resources.getString(alertTitleRes) + "\n${names[i]}"
+ onChosen.accept(values[i])
+ d.dismiss()
+ }
+ }
+ }
+ return this
+ }
+
+ private fun showDialog(context: Context, onBuilder: AlertDialog.Builder.() -> Unit) =
+ AlertDialog.Builder(context, R.style.Theme_SystemUI_Dialog_Alert)
+ .apply { onBuilder() }
+ .create()
+ .also { SystemUIDialog.applyFlags(it) }
+ .show()
+
+ private fun getDisabledAlpha(context: Context): Float {
+ val ta = context.obtainStyledAttributes(intArrayOf(android.R.attr.disabledAlpha))
+ val alpha = ta.getFloat(0, 0f)
+ ta.recycle()
+ return alpha
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/recordissue/CustomTraceState.kt b/packages/SystemUI/src/com/android/systemui/recordissue/CustomTraceState.kt
new file mode 100644
index 000000000000..14dfcc59f603
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/recordissue/CustomTraceState.kt
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.recordissue
+
+import android.content.SharedPreferences
+import com.android.traceur.PresetTraceConfigs.TraceOptions
+import com.android.traceur.PresetTraceConfigs.getDefaultConfig
+import com.android.traceur.TraceConfig
+
+class CustomTraceState(private val prefs: SharedPreferences) {
+
+ private var enabledTags: Set<String>?
+ get() = prefs.getStringSet(KEY_TAGS, getDefaultConfig().tags) ?: getDefaultConfig().tags
+ set(value) = prefs.edit().putStringSet(KEY_TAGS, value).apply()
+
+ var traceConfig: TraceConfig
+ get() = TraceConfig(options, enabledTags)
+ set(value) {
+ enabledTags = value.tags
+ options = value.options
+ }
+
+ private var options: TraceOptions
+ get() =
+ TraceOptions(
+ prefs.getInt(KEY_CUSTOM_BUFFER_SIZE_KB, getDefaultConfig().bufferSizeKb),
+ prefs.getBoolean(KEY_WINSCOPE, getDefaultConfig().winscope),
+ prefs.getBoolean(KEY_APPS, getDefaultConfig().apps),
+ prefs.getBoolean(KEY_LONG_TRACE, getDefaultConfig().longTrace),
+ prefs.getBoolean(KEY_ATTACH_TO_BUGREPORT, getDefaultConfig().attachToBugreport),
+ prefs.getInt(KEY_LONG_TRACE_SIZE_MB, getDefaultConfig().maxLongTraceSizeMb),
+ prefs.getInt(
+ KEY_LONG_TRACE_DURATION_MINUTES,
+ getDefaultConfig().maxLongTraceDurationMinutes
+ ),
+ )
+ set(value) {
+ prefs
+ .edit()
+ .putInt(KEY_CUSTOM_BUFFER_SIZE_KB, value.bufferSizeKb)
+ .putBoolean(KEY_WINSCOPE, value.winscope)
+ .putBoolean(KEY_APPS, value.apps)
+ .putBoolean(KEY_LONG_TRACE, value.longTrace)
+ .putBoolean(KEY_ATTACH_TO_BUGREPORT, value.attachToBugreport)
+ .putInt(KEY_LONG_TRACE_SIZE_MB, value.maxLongTraceSizeMb)
+ .putInt(KEY_LONG_TRACE_DURATION_MINUTES, value.maxLongTraceDurationMinutes)
+ .apply()
+ }
+
+ companion object {
+ private const val KEY_CUSTOM_BUFFER_SIZE_KB = "key_bufferSizeKb"
+ private const val KEY_WINSCOPE = "key_winscope"
+ private const val KEY_APPS = "key_apps"
+ private const val KEY_LONG_TRACE = "key_longTrace"
+ private const val KEY_ATTACH_TO_BUGREPORT = "key_attachToBugReport"
+ private const val KEY_LONG_TRACE_SIZE_MB = "key_maxLongTraceSizeMb"
+ private const val KEY_LONG_TRACE_DURATION_MINUTES = "key_maxLongTraceDurationInMinutes"
+ private const val KEY_TAGS = "key_tags"
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/recordissue/IssueRecordingState.kt b/packages/SystemUI/src/com/android/systemui/recordissue/IssueRecordingState.kt
index 761290071177..16642ab880cf 100644
--- a/packages/SystemUI/src/com/android/systemui/recordissue/IssueRecordingState.kt
+++ b/packages/SystemUI/src/com/android/systemui/recordissue/IssueRecordingState.kt
@@ -38,6 +38,8 @@ constructor(
private val prefs =
userFileManager.getSharedPreferences(TILE_SPEC, Context.MODE_PRIVATE, userTracker.userId)
+ val customTraceState = CustomTraceState(prefs)
+
var takeBugreport
get() = prefs.getBoolean(KEY_TAKE_BUG_REPORT, false)
set(value) = prefs.edit().putBoolean(KEY_TAKE_BUG_REPORT, value).apply()
@@ -55,7 +57,12 @@ constructor(
set(value) = prefs.edit().putInt(KEY_ISSUE_TYPE_RES, value).apply()
val traceConfig: TraceConfig
- get() = ALL_ISSUE_TYPES[issueTypeRes] ?: PresetTraceConfigs.getDefaultConfig()
+ get() = ALL_ISSUE_TYPES[issueTypeRes] ?: customTraceState.traceConfig
+
+ // The 1st part of the title before the ": " is the tag, and the 2nd part is the description
+ var tagTitles: Set<String>
+ get() = prefs.getStringSet(KEY_TAG_TITLES, emptySet()) ?: emptySet()
+ set(value) = prefs.edit().putStringSet(KEY_TAG_TITLES, value).apply()
private val listeners = CopyOnWriteArrayList<Runnable>()
@@ -81,8 +88,10 @@ constructor(
private const val KEY_TAKE_BUG_REPORT = "key_takeBugReport"
private const val HAS_APPROVED_SCREEN_RECORDING = "HasApprovedScreenRecord"
private const val KEY_RECORD_SCREEN = "key_recordScreen"
+ private const val KEY_TAG_TITLES = "key_tagTitles"
const val KEY_ISSUE_TYPE_RES = "key_issueTypeRes"
const val ISSUE_TYPE_NOT_SET = -1
+ const val TAG_TITLE_DELIMITER = ": "
val ALL_ISSUE_TYPES: Map<Int, TraceConfig?> =
hashMapOf(
@@ -90,6 +99,7 @@ constructor(
Pair(R.string.user_interface, PresetTraceConfigs.getUiConfig()),
Pair(R.string.battery, PresetTraceConfigs.getBatteryConfig()),
Pair(R.string.thermal, PresetTraceConfigs.getThermalConfig()),
+ Pair(R.string.custom, null),
)
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/recordissue/RecordIssueDialogDelegate.kt b/packages/SystemUI/src/com/android/systemui/recordissue/RecordIssueDialogDelegate.kt
index 8a51ad4cbd71..dd2dbf338e40 100644
--- a/packages/SystemUI/src/com/android/systemui/recordissue/RecordIssueDialogDelegate.kt
+++ b/packages/SystemUI/src/com/android/systemui/recordissue/RecordIssueDialogDelegate.kt
@@ -88,7 +88,7 @@ constructor(
setPositiveButton(R.string.qs_record_issue_start) { _, _ -> onStarted.run() }
}
bgExecutor.execute {
- traceurMessageSender.onBoundToTraceur.add { traceurMessageSender.getTags() }
+ traceurMessageSender.onBoundToTraceur.add { traceurMessageSender.getTags(state) }
traceurMessageSender.bindToTraceur(dialog.context)
}
}
@@ -170,7 +170,15 @@ constructor(
@MainThread
private fun onIssueTypeClicked(context: Context, onIssueTypeSelected: Runnable) {
val popupMenu = PopupMenu(context, issueTypeButton)
-
+ val onMenuItemClickListener =
+ PopupMenu.OnMenuItemClickListener {
+ issueTypeButton.text = it.title
+ state.issueTypeRes =
+ it.intent?.getIntExtra(KEY_ISSUE_TYPE_RES, ISSUE_TYPE_NOT_SET)
+ ?: ISSUE_TYPE_NOT_SET
+ onIssueTypeSelected.run()
+ true
+ }
ALL_ISSUE_TYPES.keys.forEach {
popupMenu.menu.add(it).apply {
setIcon(R.drawable.arrow_pointing_down)
@@ -178,17 +186,25 @@ constructor(
iconTintList = ColorStateList.valueOf(Color.TRANSPARENT)
}
intent = Intent().putExtra(KEY_ISSUE_TYPE_RES, it)
+
+ if (it == R.string.custom) {
+ setOnMenuItemClickListener {
+ CustomTraceSettingsDialogDelegate(
+ factory,
+ state.customTraceState,
+ state.tagTitles
+ ) {
+ onMenuItemClickListener.onMenuItemClick(it)
+ }
+ .createDialog()
+ .show()
+ true
+ }
+ }
}
}
popupMenu.apply {
- setOnMenuItemClickListener {
- issueTypeButton.text = it.title
- state.issueTypeRes =
- it.intent?.getIntExtra(KEY_ISSUE_TYPE_RES, ISSUE_TYPE_NOT_SET)
- ?: ISSUE_TYPE_NOT_SET
- onIssueTypeSelected.run()
- true
- }
+ setOnMenuItemClickListener(onMenuItemClickListener)
setForceShowIcon(true)
show()
}
diff --git a/packages/SystemUI/src/com/android/systemui/recordissue/TraceurMessageSender.kt b/packages/SystemUI/src/com/android/systemui/recordissue/TraceurMessageSender.kt
index a31a9ef26b16..8bfd14a68811 100644
--- a/packages/SystemUI/src/com/android/systemui/recordissue/TraceurMessageSender.kt
+++ b/packages/SystemUI/src/com/android/systemui/recordissue/TraceurMessageSender.kt
@@ -33,6 +33,7 @@ import android.util.Log
import androidx.annotation.WorkerThread
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Background
+import com.android.systemui.recordissue.IssueRecordingState.Companion.TAG_TITLE_DELIMITER
import com.android.traceur.FileSender
import com.android.traceur.MessageConstants
import com.android.traceur.TraceConfig
@@ -112,8 +113,8 @@ class TraceurMessageSender @Inject constructor(@Background private val backgroun
}
@WorkerThread
- fun getTags() {
- val replyHandler = Messenger(TagsHandler(backgroundLooper))
+ fun getTags(state: IssueRecordingState) {
+ val replyHandler = Messenger(TagsHandler(backgroundLooper, state))
notifyTraceur(MessageConstants.TAGS_WHAT, replyTo = replyHandler)
}
@@ -165,7 +166,8 @@ class TraceurMessageSender @Inject constructor(@Background private val backgroun
}
}
- private class TagsHandler(looper: Looper) : Handler(looper) {
+ private class TagsHandler(looper: Looper, private val state: IssueRecordingState) :
+ Handler(looper) {
override fun handleMessage(msg: Message) {
if (MessageConstants.TAGS_WHAT == msg.what) {
@@ -174,16 +176,11 @@ class TraceurMessageSender @Inject constructor(@Background private val backgroun
msg.data.getStringArrayList(MessageConstants.BUNDLE_KEY_TAG_DESCRIPTIONS)
if (keys == null || values == null) {
throw IllegalArgumentException(
- "Neither keys: $keys, nor values: $values can " + "be null"
+ "Neither keys: $keys, nor values: $values can be null"
)
}
-
- val tags = keys.zip(values).map { "${it.first}: ${it.second}" }.toSet()
- Log.e(
- TAG,
- "These tags: $tags will be saved and used for the Custom Trace" +
- " Config dialog in a future CL. This log will be removed."
- )
+ state.tagTitles =
+ keys.zip(values).map { it.first + TAG_TITLE_DELIMITER + it.second }.toSet()
} else {
throw IllegalArgumentException("received unknown msg.what: " + msg.what)
}
diff --git a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt
index 72f37fc98e17..3fca84efdd05 100644
--- a/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt
+++ b/packages/SystemUI/src/com/android/systemui/scene/domain/startable/SceneContainerStartable.kt
@@ -60,6 +60,7 @@ import com.android.systemui.scene.shared.logger.SceneLogger
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.shade.domain.interactor.ShadeInteractor
import com.android.systemui.statusbar.NotificationShadeWindowController
+import com.android.systemui.statusbar.SysuiStatusBarStateController
import com.android.systemui.statusbar.notification.domain.interactor.HeadsUpNotificationInteractor
import com.android.systemui.statusbar.phone.CentralSurfaces
import com.android.systemui.statusbar.policy.domain.interactor.DeviceProvisioningInteractor
@@ -130,6 +131,7 @@ constructor(
private val windowMgrLockscreenVisInteractor: WindowManagerLockscreenVisibilityInteractor,
private val keyguardEnabledInteractor: KeyguardEnabledInteractor,
private val dismissCallbackRegistry: DismissCallbackRegistry,
+ private val statusBarStateController: SysuiStatusBarStateController,
) : CoreStartable {
private val centralSurfaces: CentralSurfaces?
get() = centralSurfacesOptLazy.get().getOrNull()
@@ -356,8 +358,13 @@ constructor(
isOnBouncer ->
// When the device becomes unlocked in Bouncer, go to previous scene,
// or Gone.
- if (previousScene.value == Scenes.Lockscreen) {
- Scenes.Gone to "device was unlocked in Bouncer scene"
+ if (
+ previousScene.value == Scenes.Lockscreen ||
+ !statusBarStateController.leaveOpenOnKeyguardHide()
+ ) {
+ Scenes.Gone to
+ "device was unlocked in Bouncer scene and shade" +
+ " didn't need to be left open"
} else {
val prevScene = previousScene.value
(prevScene ?: Scenes.Gone) to
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/policy/WorkProfilePolicy.kt b/packages/SystemUI/src/com/android/systemui/screenshot/policy/WorkProfilePolicy.kt
index fdf16aa9d081..3fe3162cf17d 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/policy/WorkProfilePolicy.kt
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/policy/WorkProfilePolicy.kt
@@ -18,6 +18,7 @@ package com.android.systemui.screenshot.policy
import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
import android.app.WindowConfiguration.WINDOWING_MODE_PINNED
+import android.content.Context
import android.os.UserHandle
import com.android.systemui.screenshot.data.model.DisplayContentModel
import com.android.systemui.screenshot.data.model.ProfileType
@@ -25,7 +26,7 @@ import com.android.systemui.screenshot.data.repository.ProfileTypeRepository
import com.android.systemui.screenshot.policy.CapturePolicy.PolicyResult
import com.android.systemui.screenshot.policy.CapturePolicy.PolicyResult.NotMatched
import com.android.systemui.screenshot.policy.CaptureType.IsolatedTask
-import com.android.window.flags.Flags
+import com.android.wm.shell.shared.desktopmode.DesktopModeFlags
import javax.inject.Inject
import kotlinx.coroutines.flow.first
@@ -38,6 +39,7 @@ class WorkProfilePolicy
@Inject
constructor(
private val profileTypes: ProfileTypeRepository,
+ private val context: Context,
) : CapturePolicy {
override suspend fun check(content: DisplayContentModel): PolicyResult {
@@ -46,7 +48,7 @@ constructor(
return NotMatched(policy = NAME, reason = SHADE_EXPANDED)
}
- if (Flags.enableDesktopWindowingMode()) {
+ if (DesktopModeFlags.DESKTOP_WINDOWING_MODE.isEnabled(context)) {
content.rootTasks.firstOrNull()?.also {
if (it.windowingMode == WINDOWING_MODE_FREEFORM) {
return NotMatched(policy = NAME, reason = DESKTOP_MODE_ENABLED)
diff --git a/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java b/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java
index bd0868530cba..67032f7c097d 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsControllerImpl.java
@@ -789,6 +789,9 @@ public class QuickSettingsControllerImpl implements QuickSettingsController, Dum
/** update Qs height state */
void setExpansionHeight(float height) {
+ if (mExpansionHeight == height) {
+ return;
+ }
int maxHeight = getMaxExpansionHeight();
height = Math.min(Math.max(
height, getMinExpansionHeight()), maxHeight);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt
index 59fd0ca4513e..0e3f77543eec 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/chips/call/ui/viewmodel/CallChipViewModel.kt
@@ -105,6 +105,8 @@ constructor(
}
companion object {
+ // TODO(b/354930838): Use the icon from the call notification instead of hard-coding the
+ // icon to always be a phone.
private val phoneIcon =
Icon.Resource(
com.android.internal.R.drawable.ic_phone,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarModule.kt b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarModule.kt
index 85f4c366b370..ecb6d7fd7be4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarModule.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarModule.kt
@@ -17,12 +17,17 @@
package com.android.systemui.statusbar.dagger
import com.android.systemui.CoreStartable
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.log.LogBuffer
+import com.android.systemui.log.LogBufferFactory
import com.android.systemui.statusbar.data.StatusBarDataLayerModule
import com.android.systemui.statusbar.phone.LightBarController
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController
+import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallLog
import com.android.systemui.statusbar.ui.SystemBarUtilsProxyImpl
import dagger.Binds
import dagger.Module
+import dagger.Provides
import dagger.multibindings.ClassKey
import dagger.multibindings.IntoMap
@@ -45,4 +50,13 @@ abstract class StatusBarModule {
@IntoMap
@ClassKey(LightBarController::class)
abstract fun bindLightBarController(impl: LightBarController): CoreStartable
+
+ companion object {
+ @Provides
+ @SysUISingleton
+ @OngoingCallLog
+ fun provideOngoingCallLogBuffer(factory: LogBufferFactory): LogBuffer {
+ return factory.create("OngoingCall", 75)
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinator.kt
index 5b25b117c761..0103fffeb725 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/OriginalUnseenKeyguardCoordinator.kt
@@ -28,6 +28,8 @@ import com.android.systemui.keyguard.data.repository.KeyguardRepository
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.plugins.statusbar.StatusBarStateController
+import com.android.systemui.scene.domain.interactor.SceneInteractor
+import com.android.systemui.scene.shared.flag.SceneContainerFlag
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.statusbar.expansionChanges
import com.android.systemui.statusbar.notification.collection.NotifPipeline
@@ -87,6 +89,7 @@ constructor(
private val secureSettings: SecureSettings,
private val seenNotificationsInteractor: SeenNotificationsInteractor,
private val statusBarStateController: StatusBarStateController,
+ private val sceneInteractor: SceneInteractor,
) : Coordinator, Dumpable {
private val unseenNotifications = mutableSetOf<NotificationEntry>()
@@ -106,12 +109,15 @@ constructor(
// Whether or not keyguard is visible (or occluded).
@Suppress("DEPRECATION")
val isKeyguardPresentFlow: Flow<Boolean> =
- keyguardTransitionInteractor
- .transitionValue(
- scene = Scenes.Gone,
- stateWithoutSceneContainer = KeyguardState.GONE,
- )
- .map { it == 0f }
+ if (SceneContainerFlag.isEnabled) {
+ sceneInteractor.transitionState.map {
+ !it.isTransitioning(to = Scenes.Gone) && !it.isIdle(Scenes.Gone)
+ }
+ } else {
+ keyguardTransitionInteractor.transitions.map { step ->
+ step.to != KeyguardState.GONE
+ }
+ }
.distinctUntilChanged()
.onEach { trackingUnseen -> logger.logTrackingUnseen(trackingUnseen) }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java
index 0f6f03ae8334..3a2f95e5ebc4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/VisualStabilityCoordinator.java
@@ -263,7 +263,8 @@ public class VisualStabilityCoordinator implements Coordinator, Dumpable {
private boolean isReorderingAllowed() {
final boolean sleepyAndDozed = mFullyDozed && mSleepy;
- final boolean stackShowing = mPanelExpanded || mLockscreenShowing;
+ final boolean stackShowing = mPanelExpanded
+ || (SceneContainerFlag.isEnabled() && mLockscreenShowing);
return (sleepyAndDozed || !stackShowing || mCommunalShowing) && !mPulsing;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconManager.kt
index 331d3cc4c21b..a39c48772f1b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconManager.kt
@@ -123,6 +123,8 @@ constructor(
// Construct the status bar icon view.
val sbIcon = iconBuilder.createIconView(entry)
sbIcon.scaleType = ImageView.ScaleType.CENTER_INSIDE
+ val sbChipIcon = iconBuilder.createIconView(entry)
+ sbChipIcon.scaleType = ImageView.ScaleType.CENTER_INSIDE
// Construct the shelf icon view.
val shelfIcon = iconBuilder.createIconView(entry)
@@ -139,9 +141,17 @@ constructor(
try {
setIcon(entry, normalIconDescriptor, sbIcon)
+ setIcon(entry, normalIconDescriptor, sbChipIcon)
setIcon(entry, sensitiveIconDescriptor, shelfIcon)
setIcon(entry, sensitiveIconDescriptor, aodIcon)
- entry.icons = IconPack.buildPack(sbIcon, shelfIcon, aodIcon, entry.icons)
+ entry.icons =
+ IconPack.buildPack(
+ sbIcon,
+ sbChipIcon,
+ shelfIcon,
+ aodIcon,
+ entry.icons,
+ )
} catch (e: InflationException) {
entry.icons = IconPack.buildEmptyPack(entry.icons)
throw e
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconPack.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconPack.java
index d029ce722af9..82bb5ef7a448 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconPack.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/IconPack.java
@@ -29,6 +29,7 @@ public final class IconPack {
private final boolean mAreIconsAvailable;
@Nullable private final StatusBarIconView mStatusBarIcon;
+ @Nullable private final StatusBarIconView mStatusBarChipIcon;
@Nullable private final StatusBarIconView mShelfIcon;
@Nullable private final StatusBarIconView mAodIcon;
@@ -43,7 +44,7 @@ public final class IconPack {
* haven't been inflated yet or there was an error while inflating them).
*/
public static IconPack buildEmptyPack(@Nullable IconPack fromSource) {
- return new IconPack(false, null, null, null, fromSource);
+ return new IconPack(false, null, null, null, null, fromSource);
}
/**
@@ -51,20 +52,24 @@ public final class IconPack {
*/
public static IconPack buildPack(
@NonNull StatusBarIconView statusBarIcon,
+ @NonNull StatusBarIconView statusBarChipIcon,
@NonNull StatusBarIconView shelfIcon,
@NonNull StatusBarIconView aodIcon,
@Nullable IconPack source) {
- return new IconPack(true, statusBarIcon, shelfIcon, aodIcon, source);
+ return new IconPack(
+ true, statusBarIcon, statusBarChipIcon, shelfIcon, aodIcon, source);
}
private IconPack(
boolean areIconsAvailable,
@Nullable StatusBarIconView statusBarIcon,
+ @Nullable StatusBarIconView statusBarChipIcon,
@Nullable StatusBarIconView shelfIcon,
@Nullable StatusBarIconView aodIcon,
@Nullable IconPack source) {
mAreIconsAvailable = areIconsAvailable;
mStatusBarIcon = statusBarIcon;
+ mStatusBarChipIcon = statusBarChipIcon;
mShelfIcon = shelfIcon;
mAodIcon = aodIcon;
if (source != null) {
@@ -79,6 +84,17 @@ public final class IconPack {
}
/**
+ * The version of the notification icon that appears inside a chip within the status bar.
+ *
+ * Separate from {@link #getStatusBarIcon()} so that we don't have to worry about detaching and
+ * re-attaching the same view when the chip appears and hides.
+ */
+ @Nullable
+ public StatusBarIconView getStatusBarChipIcon() {
+ return mStatusBarChipIcon;
+ }
+
+ /**
* The version of the icon that appears in the "shelf" at the bottom of the notification shade.
* In general, this icon also appears somewhere on the notification and is "sucked" into the
* shelf as the scrolls beyond it.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
index 1cbb16e3983a..06af980010be 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
@@ -68,6 +68,7 @@ import androidx.annotation.Nullable;
import com.android.app.animation.Interpolators;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.util.ContrastColorUtil;
@@ -1873,7 +1874,8 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
SmartReplyConstants smartReplyConstants,
SmartReplyController smartReplyController,
FeatureFlags featureFlags,
- IStatusBarService statusBarService) {
+ IStatusBarService statusBarService,
+ UiEventLogger uiEventLogger) {
mEntry = entry;
mAppName = appName;
if (mMenuRow == null) {
@@ -1901,7 +1903,9 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
rivSubcomponentFactory,
smartReplyConstants,
smartReplyController,
- statusBarService);
+ statusBarService,
+ uiEventLogger
+ );
}
mOnUserInteractionCallback = onUserInteractionCallback;
mBubblesManagerOptional = bubblesManagerOptional;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java
index e59829bf3c99..4c76e3284dbe 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java
@@ -33,6 +33,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.UiEventLogger;
import com.android.internal.statusbar.IStatusBarService;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
@@ -112,6 +113,7 @@ public class ExpandableNotificationRowController implements NotifViewController
private final ExpandableNotificationRowDragController mDragController;
private final NotificationDismissibilityProvider mDismissibilityProvider;
private final IStatusBarService mStatusBarService;
+ private final UiEventLogger mUiEventLogger;
private final NotificationSettingsController mSettingsController;
@@ -230,7 +232,8 @@ public class ExpandableNotificationRowController implements NotifViewController
NotificationSettingsController settingsController,
ExpandableNotificationRowDragController dragController,
NotificationDismissibilityProvider dismissibilityProvider,
- IStatusBarService statusBarService) {
+ IStatusBarService statusBarService,
+ UiEventLogger uiEventLogger) {
mView = view;
mListContainer = listContainer;
mRemoteInputViewSubcomponentFactory = rivSubcomponentFactory;
@@ -265,6 +268,7 @@ public class ExpandableNotificationRowController implements NotifViewController
mSmartReplyController = smartReplyController;
mDismissibilityProvider = dismissibilityProvider;
mStatusBarService = statusBarService;
+ mUiEventLogger = uiEventLogger;
}
/**
@@ -298,7 +302,8 @@ public class ExpandableNotificationRowController implements NotifViewController
mSmartReplyConstants,
mSmartReplyController,
mFeatureFlags,
- mStatusBarService
+ mStatusBarService,
+ mUiEventLogger
);
mView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
if (mAllowLongPress) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationCompactHeadsUpEvent.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationCompactHeadsUpEvent.kt
new file mode 100644
index 000000000000..ab5731c181dc
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationCompactHeadsUpEvent.kt
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row
+
+import com.android.internal.logging.UiEvent
+import com.android.internal.logging.UiEventLogger
+
+enum class NotificationCompactHeadsUpEvent(val eventId: Int) : UiEventLogger.UiEventEnum {
+ @UiEvent(doc = "Minimal HUN is shown to the user") NOTIFICATION_COMPACT_HUN_SHOWN(1857);
+
+ override fun getId(): Int = eventId
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java
index 646d0b11221b..3f4690282771 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification.row;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.app.Flags;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
@@ -45,6 +46,7 @@ import android.widget.LinearLayout;
import androidx.annotation.MainThread;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.logging.UiEventLogger;
import com.android.internal.statusbar.IStatusBarService;
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
import com.android.systemui.res.R;
@@ -58,6 +60,7 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager;
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
import com.android.systemui.statusbar.notification.row.shared.AsyncHybridViewInflation;
+import com.android.systemui.statusbar.notification.row.wrapper.NotificationCompactHeadsUpTemplateViewWrapper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationCustomViewWrapper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationHeaderViewWrapper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper;
@@ -205,6 +208,7 @@ public class NotificationContentView extends FrameLayout implements Notification
private int mUnrestrictedContentHeight;
private boolean mContentAnimating;
+ private UiEventLogger mUiEventLogger;
public NotificationContentView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -217,12 +221,14 @@ public class NotificationContentView extends FrameLayout implements Notification
RemoteInputViewSubcomponent.Factory rivSubcomponentFactory,
SmartReplyConstants smartReplyConstants,
SmartReplyController smartReplyController,
- IStatusBarService statusBarService) {
+ IStatusBarService statusBarService,
+ UiEventLogger uiEventLogger) {
mPeopleIdentifier = peopleNotificationIdentifier;
mRemoteInputSubcomponentFactory = rivSubcomponentFactory;
mSmartReplyConstants = smartReplyConstants;
mSmartReplyController = smartReplyController;
mStatusBarService = statusBarService;
+ mUiEventLogger = uiEventLogger;
// We set root namespace so that we avoid searching children for id. Notification might
// contain custom view and their ids may clash with ids already existing in shade or
// notification panel
@@ -552,6 +558,12 @@ public class NotificationContentView extends FrameLayout implements Notification
mHeadsUpChild = child;
mHeadsUpWrapper = NotificationViewWrapper.wrap(getContext(), child,
mContainingNotification);
+
+ if (Flags.compactHeadsUpNotification()
+ && mHeadsUpWrapper instanceof NotificationCompactHeadsUpTemplateViewWrapper) {
+ logCompactHUNShownEvent();
+ }
+
if (mContainingNotification != null) {
applySystemActions(mHeadsUpChild, mContainingNotification.getEntry());
}
@@ -559,6 +571,15 @@ public class NotificationContentView extends FrameLayout implements Notification
updateShownWrapper(mVisibleType);
}
+ private void logCompactHUNShownEvent() {
+ if (mUiEventLogger == null) {
+ return;
+ }
+
+ mUiEventLogger.log(
+ NotificationCompactHeadsUpEvent.NOTIFICATION_COMPACT_HUN_SHOWN);
+ }
+
/**
* Sets the single-line view. Child may be null to remove the view.
* @param child single-line content view to set
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 b801e5d89b84..aee1d3e08256 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
@@ -16,6 +16,8 @@
package com.android.systemui.statusbar.notification.stack;
+import static androidx.core.math.MathUtils.clamp;
+
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
@@ -899,11 +901,33 @@ public class StackScrollAlgorithm {
if (shouldHunBeVisibleWhenScrolled(row.mustStayOnScreen(),
childState.headsUpIsVisible, row.showingPulsing(),
ambientState.isOnKeyguard(), row.getEntry().isStickyAndNotDemoted())) {
+ // the height of this child before clamping it to the top
+ float unmodifiedChildHeight = childState.height;
clampHunToTop(
/* headsUpTop = */ headsUpTranslation,
/* collapsedHeight = */ row.getCollapsedHeight(),
/* viewState = */ childState
);
+ float baseZ = ambientState.getBaseZHeight();
+ if (headsUpTranslation < ambientState.getStackTop()) {
+ // HUN displayed above the stack top, it needs a fix shadow
+ childState.setZTranslation(baseZ + mPinnedZTranslationExtra);
+ } else {
+ // HUN displayed within the stack, add a shadow if it overlaps with
+ // other elements.
+ //
+ // Views stack vertically from the top. Add the HUN's original height
+ // (before clamping) to the stack top, to determine the starting
+ // point for the remaining content.
+ float scrollingContentTop =
+ ambientState.getStackTop() + unmodifiedChildHeight;
+ updateZTranslationForHunInStack(
+ /* scrollingContentTop = */ scrollingContentTop,
+ /* scrollingContentTopPadding = */ mGapHeight,
+ /* baseZ = */ baseZ,
+ /* viewState = */ childState
+ );
+ }
if (isTopEntry && row.isAboveShelf()) {
clampHunToMaxTranslation(
/* headsUpTop = */ headsUpTranslation,
@@ -1040,8 +1064,30 @@ public class StackScrollAlgorithm {
// Transition from collapsed pinned state to fully expanded state
// when the pinned HUN approaches its actual location (when scrolling back to top).
final float distToRealY = newTranslation - viewState.getYTranslation();
- viewState.height = (int) Math.max(viewState.height - distToRealY, collapsedHeight);
+ final float availableHeight = viewState.height - distToRealY;
+
viewState.setYTranslation(newTranslation);
+ viewState.height = (int) Math.max(availableHeight, collapsedHeight);
+ }
+
+ @VisibleForTesting
+ void updateZTranslationForHunInStack(float scrollingContentTop,
+ float scrollingContentTopPadding, float baseZ, ExpandableViewState viewState) {
+ if (SceneContainerFlag.isUnexpectedlyInLegacyMode()) return;
+ float hunBottom = viewState.getYTranslation() + viewState.height;
+ float overlap = Math.max(0f, hunBottom - scrollingContentTop);
+
+ float shadowFraction = 1f;
+ if (scrollingContentTopPadding > 0f) {
+ // scrollingContentTopPadding makes a gap between the bottom of the HUN and the top
+ // of the scrolling content. Use this to animate to the full shadow.
+ shadowFraction = clamp(overlap / scrollingContentTopPadding, 0f, 1f);
+ }
+
+ if (overlap > 0.0f) {
+ // add a shadow to this HUN, because it overlaps with the scrolling stack
+ viewState.setZTranslation(baseZ + shadowFraction * mPinnedZTranslationExtra);
+ }
}
// Pin HUN to bottom of expanded QS
@@ -1066,7 +1112,7 @@ public class StackScrollAlgorithm {
private void clampHunToMaxTranslation(float headsUpTop, float headsUpBottom,
ExpandableViewState viewState) {
if (SceneContainerFlag.isUnexpectedlyInLegacyMode()) return;
- final float maxHeight = headsUpTop - headsUpBottom;
+ final float maxHeight = Math.max(0f, headsUpBottom - headsUpTop);
viewState.setYTranslation(Math.min(headsUpTop, viewState.getYTranslation()));
viewState.height = (int) Math.min(maxHeight, viewState.height);
}
@@ -1151,53 +1197,65 @@ public class StackScrollAlgorithm {
ExpandableViewState childViewState = child.getViewState();
float baseZ = ambientState.getBaseZHeight();
- if (child.mustStayOnScreen() && !childViewState.headsUpIsVisible
- && !ambientState.isDozingAndNotPulsing(child)
- && childViewState.getYTranslation() < ambientState.getTopPadding()
- + ambientState.getStackTranslation()) {
-
- if (childrenOnTop != 0.0f) {
- // To elevate the later HUN over previous HUN when multiple HUNs exist
- childrenOnTop++;
+ if (SceneContainerFlag.isEnabled()) {
+ // SceneContainer flags off this logic, and just sets the baseZ because:
+ // - there are no overlapping HUNs anymore, no need for multiplying their shadows
+ // - shadows for HUNs overlapping with the stack are now set from updateHeadsUpStates
+ // - shadows for HUNs overlapping with the shelf are NOT set anymore, because it only
+ // happens on AOD/Pulsing, where they're displayed on a black background so a shadow
+ // wouldn't be visible.
+ childViewState.setZTranslation(baseZ);
+ } else {
+ if (child.mustStayOnScreen() && !childViewState.headsUpIsVisible
+ && !ambientState.isDozingAndNotPulsing(child)
+ && childViewState.getYTranslation() < ambientState.getTopPadding()
+ + ambientState.getStackTranslation()) {
+
+ if (childrenOnTop != 0.0f) {
+ // 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 Notif 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
+ childrenOnTop += Math.min(
+ 1.0f,
+ overlap / childViewState.height
+ );
+ }
+ childViewState.setZTranslation(baseZ
+ + childrenOnTop * mPinnedZTranslationExtra);
+ } else if (isTopHun) {
+ // In case this is a new view that has never been measured before, we don't want to
+ // elevate if we are currently expanded more than the notification
+ int shelfHeight = ambientState.getShelf() == null ? 0 :
+ ambientState.getShelf().getIntrinsicHeight();
+ float shelfStart = ambientState.getInnerHeight()
+ - shelfHeight + ambientState.getTopPadding()
+ + ambientState.getStackTranslation();
+ float notificationEnd =
+ childViewState.getYTranslation() + child.getIntrinsicHeight()
+ + mPaddingBetweenElements;
+ if (shelfStart > notificationEnd) {
+ // When the notification doesn't overlap with Notification Shelf,
+ // there's no shadow
+ childViewState.setZTranslation(baseZ);
+ } else {
+ // Give shadow to the notification if it overlaps with Notification Shelf
+ float factor = (notificationEnd - shelfStart) / shelfHeight;
+ if (Float.isNaN(factor)) { // Avoid problems when the above is 0/0.
+ factor = 1.0f;
+ }
+ factor = Math.min(factor, 1.0f);
+ childViewState.setZTranslation(baseZ + factor * mPinnedZTranslationExtra);
+ }
} 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
- childrenOnTop += Math.min(
- 1.0f,
- overlap / childViewState.height
- );
- }
- childViewState.setZTranslation(baseZ
- + childrenOnTop * mPinnedZTranslationExtra);
- } else if (isTopHun) {
- // In case this is a new view that has never been measured before, we don't want to
- // elevate if we are currently expanded more than the notification
- int shelfHeight = ambientState.getShelf() == null ? 0 :
- ambientState.getShelf().getIntrinsicHeight();
- float shelfStart = ambientState.getInnerHeight()
- - shelfHeight + ambientState.getTopPadding()
- + ambientState.getStackTranslation();
- float notificationEnd = childViewState.getYTranslation() + child.getIntrinsicHeight()
- + mPaddingBetweenElements;
- if (shelfStart > notificationEnd) {
- // When the notification doesn't overlap with Notification Shelf, there's no shadow
childViewState.setZTranslation(baseZ);
- } else {
- // Give shadow to the notification if it overlaps with Notification Shelf
- float factor = (notificationEnd - shelfStart) / shelfHeight;
- if (Float.isNaN(factor)) { // Avoid problems when the above is 0/0.
- factor = 1.0f;
- }
- factor = Math.min(factor, 1.0f);
- childViewState.setZTranslation(baseZ + factor * mPinnedZTranslationExtra);
}
- } else {
- childViewState.setZTranslation(baseZ);
}
// While HUN is showing and Shade is closed: headerVisibleAmount stays 0, shadow stays.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java
index e01556f91fac..c04616847ebe 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SystemUIDialog.java
@@ -341,6 +341,7 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
mSysUiState.setFlag(QuickStepContract.SYSUI_STATE_DIALOG_SHOWING, true)
.commitUpdate(mContext.getDisplayId());
+ mDelegate.onStart(this);
start();
}
@@ -349,7 +350,8 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
* should override this method instead.
*/
protected void start() {
- mDelegate.onStart(this);
+ // IMPORTANT: Please do not add anything here, since subclasses are likely to override this.
+ // Instead, add things to onStop above.
}
@Override
@@ -365,6 +367,7 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
mSysUiState.setFlag(QuickStepContract.SYSUI_STATE_DIALOG_SHOWING, false)
.commitUpdate(mContext.getDisplayId());
+ mDelegate.onStop(this);
stop();
}
@@ -373,7 +376,8 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
* should override this method instead.
*/
protected void stop() {
- mDelegate.onStop(this);
+ // IMPORTANT: Please do not add anything here, since subclasses are likely to override this.
+ // Instead, add things to onStop above.
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragment.java
index 0320a7ae103b..07c190d89393 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragment.java
@@ -661,9 +661,6 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
} else {
hideOngoingActivityChip(animate);
}
- if (!Flags.statusBarScreenSharingChips()) {
- mOngoingCallController.notifyChipVisibilityChanged(showOngoingActivityChip);
- }
}
private boolean shouldHideStatusBar() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt
index 9f98b54093c2..2ea8da8ed908 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt
@@ -23,10 +23,13 @@ import android.app.Notification.CallStyle.CALL_TYPE_ONGOING
import android.app.PendingIntent
import android.app.UidObserver
import android.content.Context
-import android.util.Log
import android.view.View
+import android.view.ViewGroup
+import android.widget.FrameLayout
+import androidx.annotation.IdRes
import androidx.annotation.VisibleForTesting
import com.android.internal.jank.InteractionJankMonitor
+import com.android.settingslib.Utils
import com.android.systemui.CoreStartable
import com.android.systemui.Dumpable
import com.android.systemui.Flags
@@ -35,8 +38,11 @@ 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.log.LogBuffer
+import com.android.systemui.log.core.LogLevel
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.res.R
+import com.android.systemui.statusbar.StatusBarIconView
import com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer
import com.android.systemui.statusbar.chips.ui.view.ChipChronometer
import com.android.systemui.statusbar.data.repository.StatusBarModeRepositoryStore
@@ -68,11 +74,11 @@ constructor(
private val activityStarter: ActivityStarter,
@Main private val mainExecutor: Executor,
private val iActivityManager: IActivityManager,
- private val logger: OngoingCallLogger,
private val dumpManager: DumpManager,
private val statusBarWindowController: StatusBarWindowController,
private val swipeStatusBarAwayGestureHandler: SwipeStatusBarAwayGestureHandler,
private val statusBarModeRepository: StatusBarModeRepositoryStore,
+ @OngoingCallLog private val logger: LogBuffer,
) : CallbackController<OngoingCallListener>, Dumpable, CoreStartable {
private var isFullscreen: Boolean = false
/** Non-null if there's an active call notification. */
@@ -114,6 +120,7 @@ constructor(
Notification.EXTRA_CALL_TYPE,
-1
) == CALL_TYPE_ONGOING,
+ entry.icons.statusBarChipIcon,
statusBarSwipedAway = callNotificationInfo?.statusBarSwipedAway ?: false
)
if (newOngoingCallInfo == callNotificationInfo) {
@@ -122,8 +129,20 @@ constructor(
callNotificationInfo = newOngoingCallInfo
if (newOngoingCallInfo.isOngoing) {
+ logger.log(
+ TAG,
+ LogLevel.DEBUG,
+ { str1 = newOngoingCallInfo.key },
+ { "Call notif *is* ongoing -> showing chip. key=$str1" },
+ )
updateChip()
} else {
+ logger.log(
+ TAG,
+ LogLevel.DEBUG,
+ { str1 = newOngoingCallInfo.key },
+ { "Call notif not ongoing -> hiding chip. key=$str1" },
+ )
removeChip()
}
}
@@ -131,6 +150,12 @@ constructor(
override fun onEntryRemoved(entry: NotificationEntry, reason: Int) {
if (entry.sbn.key == callNotificationInfo?.key) {
+ logger.log(
+ TAG,
+ LogLevel.DEBUG,
+ { str1 = entry.sbn.key },
+ { "Call notif removed -> hiding chip. key=$str1" },
+ )
removeChip()
}
}
@@ -151,13 +176,13 @@ constructor(
/**
* Sets the chip view that will contain ongoing call information.
*
- * Should only be called from [CollapsedStatusBarFragment].
+ * Should only be called from
+ * [com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment].
*/
fun setChipView(chipView: View) {
tearDownChipView()
this.chipView = chipView
- val backgroundView: ChipBackgroundContainer? =
- chipView.findViewById(R.id.ongoing_activity_chip_background)
+ val backgroundView: ChipBackgroundContainer? = chipView.getBackgroundView()
backgroundView?.maxHeightFetcher = { statusBarWindowController.statusBarHeight }
if (hasOngoingCall()) {
updateChip()
@@ -165,15 +190,6 @@ constructor(
}
/**
- * Called when the chip's visibility may have changed.
- *
- * Should only be called from [CollapsedStatusBarFragment].
- */
- fun notifyChipVisibilityChanged(chipIsVisible: Boolean) {
- logger.logChipVisibilityChanged(chipIsVisible)
- }
-
- /**
* Returns true if there's an active ongoing call that should be displayed in a status bar chip.
*/
fun hasOngoingCall(): Boolean {
@@ -236,6 +252,8 @@ constructor(
timeView.setShouldHideText(true)
timeView.stop()
}
+
+ updateChipIcon(currentCallNotificationInfo, currentChipView)
updateChipClickListener()
}
@@ -250,17 +268,47 @@ constructor(
// If we failed to update the chip, don't store the call info. Then [hasOngoingCall]
// will return false and we fall back to typical notification handling.
callNotificationInfo = null
+ logger.log(
+ TAG,
+ LogLevel.WARNING,
+ {},
+ { "Ongoing call chip view could not be found; Not displaying chip in status bar" },
+ )
+ }
+ }
- if (DEBUG) {
- Log.w(
- TAG,
- "Ongoing call chip view could not be found; " +
- "Not displaying chip in status bar"
- )
- }
+ private fun updateChipIcon(callInfo: CallNotificationInfo, currentChipView: View) {
+ val backgroundView = currentChipView.getBackgroundView() ?: return
+ backgroundView.removeView(currentChipView.getIconView())
+
+ val iconView = callInfo.iconView ?: return
+ with(iconView) {
+ id = ICON_ID
+ imageTintList = Utils.getColorAttr(context, android.R.attr.colorPrimary)
+ // TODO(b/354930838): Update the content description to not include "phone".
+ contentDescription =
+ context.resources.getString(R.string.ongoing_phone_call_content_description)
+ }
+
+ val currentParent = iconView.parent as? ViewGroup
+ // If we're reinflating the view, we may need to detach the icon view from the
+ // old chip before we reattach it to the new one.
+ // See also: NotificationIconContainerViewBinder#bindIcons.
+ if (currentParent != null && currentParent != backgroundView) {
+ currentParent.removeView(iconView)
+ currentParent.removeTransientView(iconView)
}
+ backgroundView.addView(iconView, /* index= */ 0, generateIconLayoutParams())
}
+ private fun generateIconLayoutParams(): FrameLayout.LayoutParams {
+ return FrameLayout.LayoutParams(iconSize, iconSize)
+ }
+
+ private val iconSize: Int
+ get() =
+ context.resources.getDimensionPixelSize(R.dimen.ongoing_activity_chip_notif_icon_size)
+
private fun updateChipClickListener() {
if (Flags.statusBarScreenSharingChips()) {
return
@@ -270,12 +318,10 @@ constructor(
return
}
val currentChipView = chipView
- val backgroundView =
- currentChipView?.findViewById<View>(R.id.ongoing_activity_chip_background)
+ val backgroundView = currentChipView?.getBackgroundView()
val intent = callNotificationInfo?.intent
if (currentChipView != null && backgroundView != null && intent != null) {
currentChipView.setOnClickListener {
- logger.logChipClicked()
activityStarter.postStartActivityDismissingKeyguard(
intent,
ActivityTransitionAnimator.Controller.fromView(
@@ -324,6 +370,14 @@ constructor(
return this.findViewById(R.id.ongoing_activity_chip_time)
}
+ private fun View.getBackgroundView(): ChipBackgroundContainer? {
+ return this.findViewById(R.id.ongoing_activity_chip_background)
+ }
+
+ private fun View.getIconView(): View? {
+ return this.findViewById(ICON_ID)
+ }
+
/**
* If there's an active ongoing call, then we will force the status bar to always show, even if
* the user is in immersive mode. However, we also want to give users the ability to swipe away
@@ -333,9 +387,7 @@ constructor(
* detected.
*/
private fun onSwipeAwayGestureDetected() {
- if (DEBUG) {
- Log.d(TAG, "Swipe away gesture detected")
- }
+ logger.log(TAG, LogLevel.DEBUG, {}, { "Swipe away gesture detected" })
callNotificationInfo = callNotificationInfo?.copy(statusBarSwipedAway = true)
statusBarWindowController.setOngoingProcessRequiresStatusBarVisible(false)
swipeStatusBarAwayGestureHandler.removeOnGestureDetectedCallback(TAG)
@@ -353,6 +405,8 @@ constructor(
val uid: Int,
/** True if the call is currently ongoing (as opposed to incoming, screening, etc.). */
val isOngoing: Boolean,
+ /** The view that contains the icon to display in the chip. */
+ val iconView: StatusBarIconView?,
/** True if the user has swiped away the status bar while in this phone call. */
val statusBarSwipedAway: Boolean
) {
@@ -368,7 +422,10 @@ constructor(
pw.println("Call app visible: ${uidObserver.isCallAppVisible}")
}
- /** Our implementation of a [IUidObserver]. */
+ /**
+ * Observer to tell us when the app that posted the ongoing call notification is visible so that
+ * we don't show the call chip at the same time (since the timers could be out-of-sync).
+ */
inner class CallAppUidObserver : UidObserver() {
/** True if the application managing the call is visible to the user. */
var isCallAppVisible: Boolean = false
@@ -395,6 +452,12 @@ constructor(
isProcessVisibleToUser(
iActivityManager.getUidProcessState(uid, context.opPackageName)
)
+ logger.log(
+ TAG,
+ LogLevel.DEBUG,
+ { bool1 = isCallAppVisible },
+ { "On uid observer registration, isCallAppVisible=$bool1" },
+ )
if (isRegistered) {
return
}
@@ -406,7 +469,13 @@ constructor(
)
isRegistered = true
} catch (se: SecurityException) {
- Log.e(TAG, "Security exception when trying to set up uid observer: $se")
+ logger.log(
+ TAG,
+ LogLevel.ERROR,
+ {},
+ { "Security exception when trying to set up uid observer" },
+ se,
+ )
}
}
@@ -431,17 +500,26 @@ constructor(
val oldIsCallAppVisible = isCallAppVisible
isCallAppVisible = isProcessVisibleToUser(procState)
if (oldIsCallAppVisible != isCallAppVisible) {
+ logger.log(
+ TAG,
+ LogLevel.DEBUG,
+ { bool1 = isCallAppVisible },
+ { "#onUidStateChanged. isCallAppVisible=$bool1" },
+ )
// Animations may be run as a result of the call's state change, so ensure
// the listener is notified on the main thread.
mainExecutor.execute { sendStateChangeEvent() }
}
}
}
+
+ companion object {
+ @IdRes private val ICON_ID = R.id.ongoing_activity_chip_icon
+ }
}
private fun isCallNotification(entry: NotificationEntry): Boolean {
return entry.sbn.notification.isStyle(Notification.CallStyle::class.java)
}
-private const val TAG = "OngoingCallController"
-private val DEBUG = Log.isLoggable(TAG, Log.DEBUG)
+private const val TAG = OngoingCallRepository.TAG
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLog.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLog.kt
new file mode 100644
index 000000000000..5f53f87edb33
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLog.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.phone.ongoingcall
+
+import javax.inject.Qualifier
+
+/**
+ * Logs for events related to ongoing call notifications and their corresponding status bar chip.
+ */
+@Qualifier
+@MustBeDocumented
+@Retention(AnnotationRetention.RUNTIME)
+annotation class OngoingCallLog
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLogger.kt
deleted file mode 100644
index 177f21537ec9..000000000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLogger.kt
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.phone.ongoingcall
-
-import androidx.annotation.VisibleForTesting
-import com.android.internal.logging.UiEvent
-import com.android.internal.logging.UiEventLogger
-import com.android.systemui.dagger.SysUISingleton
-import javax.inject.Inject
-
-/** A class to log events for the ongoing call chip. */
-@SysUISingleton
-class OngoingCallLogger @Inject constructor(private val logger: UiEventLogger) {
-
- private var chipIsVisible: Boolean = false
-
- /** Logs that the ongoing call chip was clicked. */
- fun logChipClicked() {
- logger.log(OngoingCallEvents.ONGOING_CALL_CLICKED)
- }
-
- /**
- * If needed, logs that the ongoing call chip's visibility has changed.
- *
- * For now, only logs when the chip changes from not visible to visible.
- */
- fun logChipVisibilityChanged(chipIsVisible: Boolean) {
- if (chipIsVisible && chipIsVisible != this.chipIsVisible) {
- logger.log(OngoingCallEvents.ONGOING_CALL_VISIBLE)
- }
- this.chipIsVisible = chipIsVisible
- }
-
- @VisibleForTesting
- enum class OngoingCallEvents(val metricId: Int) : UiEventLogger.UiEventEnum {
- @UiEvent(doc = "The ongoing call chip became visible")
- ONGOING_CALL_VISIBLE(813),
-
- @UiEvent(doc = "The ongoing call chip was clicked")
- ONGOING_CALL_CLICKED(814);
-
- override fun getId() = metricId
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepository.kt
index 9317ebe51a71..f16371ae7e21 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepository.kt
@@ -17,6 +17,9 @@
package com.android.systemui.statusbar.phone.ongoingcall.data.repository
import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.log.LogBuffer
+import com.android.systemui.log.core.LogLevel
+import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallLog
import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
import javax.inject.Inject
import kotlinx.coroutines.flow.MutableStateFlow
@@ -32,7 +35,11 @@ import kotlinx.coroutines.flow.asStateFlow
* classes both refer to this repository.
*/
@SysUISingleton
-class OngoingCallRepository @Inject constructor() {
+class OngoingCallRepository
+@Inject
+constructor(
+ @OngoingCallLog private val logger: LogBuffer,
+) {
private val _ongoingCallState = MutableStateFlow<OngoingCallModel>(OngoingCallModel.NoCall)
/** The current ongoing call state. */
val ongoingCallState: StateFlow<OngoingCallModel> = _ongoingCallState.asStateFlow()
@@ -42,6 +49,16 @@ class OngoingCallRepository @Inject constructor() {
* [com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController].
*/
fun setOngoingCallState(state: OngoingCallModel) {
+ logger.log(
+ TAG,
+ LogLevel.DEBUG,
+ { str1 = state::class.simpleName },
+ { "Repo#setOngoingCallState: $str1" },
+ )
_ongoingCallState.value = state
}
+
+ companion object {
+ const val TAG = "OngoingCall"
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallModel.kt
index f81b952ee3b2..2c4848776b66 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/shared/model/OngoingCallModel.kt
@@ -18,13 +18,7 @@ package com.android.systemui.statusbar.phone.ongoingcall.shared.model
import android.app.PendingIntent
-/**
- * Represents the state of any ongoing calls.
- *
- * TODO(b/332662551): If there's an ongoing call but the user has the call app open, then we use the
- * NoCall model, *not* the InCall model, which is confusing when looking at the logs. We may want
- * to make that more clear, either with better logging or different models.
- */
+/** Represents the state of any ongoing calls. */
sealed interface OngoingCallModel {
/** There is no ongoing call. */
data object NoCall : OngoingCallModel
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/NetworkNameModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/NetworkNameModel.kt
index 99ed2d99c749..cd442cf4ec9c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/NetworkNameModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/model/NetworkNameModel.kt
@@ -21,6 +21,7 @@ import android.telephony.TelephonyManager.EXTRA_DATA_SPN
import android.telephony.TelephonyManager.EXTRA_PLMN
import android.telephony.TelephonyManager.EXTRA_SHOW_PLMN
import android.telephony.TelephonyManager.EXTRA_SHOW_SPN
+import android.telephony.TelephonyManager.EXTRA_SPN
import com.android.systemui.log.table.Diffable
import com.android.systemui.log.table.TableRowLogger
@@ -96,7 +97,8 @@ sealed interface NetworkNameModel : Diffable<NetworkNameModel> {
fun Intent.toNetworkNameModel(separator: String): NetworkNameModel? {
val showSpn = getBooleanExtra(EXTRA_SHOW_SPN, false)
- val spn = getStringExtra(EXTRA_DATA_SPN)
+ val spn = getStringExtra(EXTRA_SPN)
+ val dataSpn = getStringExtra(EXTRA_DATA_SPN)
val showPlmn = getBooleanExtra(EXTRA_SHOW_PLMN, false)
val plmn = getStringExtra(EXTRA_PLMN)
@@ -112,6 +114,12 @@ fun Intent.toNetworkNameModel(separator: String): NetworkNameModel? {
}
str.append(spn)
}
+ if (showSpn && dataSpn != null) {
+ if (str.isNotEmpty()) {
+ str.append(separator)
+ }
+ str.append(dataSpn)
+ }
return if (str.isNotEmpty()) NetworkNameModel.IntentDerived(str.toString()) else null
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java
index 65171358b050..dcd9caec0be3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java
@@ -852,6 +852,8 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager {
}
public boolean isStickyForSomeTime() {
+ if (mEntry == null) return false;
+
return mEntry.isStickyAndNotDemoted();
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastControllerImpl.java
index 7b82b565fc4d..a115baad257d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/CastControllerImpl.java
@@ -185,7 +185,6 @@ public class CastControllerImpl implements CastController {
@Override
public void stopCasting(CastDevice device) {
- // TODO(b/332662551): Convert Logcat to LogBuffer.
final boolean isProjection = device.getTag() instanceof MediaProjectionInfo;
mLogger.logStopCasting(isProjection);
if (isProjection) {
diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/BackGestureTutorialScreen.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/BackGestureTutorialScreen.kt
index 396c6b82639e..8721b69f438d 100644
--- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/BackGestureTutorialScreen.kt
+++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/BackGestureTutorialScreen.kt
@@ -16,9 +16,11 @@
package com.android.systemui.touchpad.tutorial.ui.composable
+import android.graphics.ColorFilter
+import android.graphics.PorterDuff
+import android.graphics.PorterDuffColorFilter
import androidx.activity.compose.BackHandler
import androidx.annotation.StringRes
-import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@@ -37,31 +39,46 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
-import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.input.pointer.pointerInteropFilter
import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
+import com.airbnb.lottie.LottieProperty
+import com.airbnb.lottie.compose.LottieAnimation
+import com.airbnb.lottie.compose.LottieCompositionSpec
+import com.airbnb.lottie.compose.LottieConstants
+import com.airbnb.lottie.compose.LottieDynamicProperties
+import com.airbnb.lottie.compose.LottieDynamicProperty
+import com.airbnb.lottie.compose.animateLottieCompositionAsState
+import com.airbnb.lottie.compose.rememberLottieComposition
+import com.airbnb.lottie.compose.rememberLottieDynamicProperties
+import com.airbnb.lottie.compose.rememberLottieDynamicProperty
+import com.android.compose.theme.LocalAndroidColorScheme
import com.android.systemui.res.R
import com.android.systemui.touchpad.tutorial.ui.gesture.TouchpadGesture.BACK
import com.android.systemui.touchpad.tutorial.ui.gesture.TouchpadGestureHandler
-@OptIn(ExperimentalComposeUiApi::class)
+data class TutorialScreenColors(
+ val backgroundColor: Color,
+ val titleColor: Color,
+ val animationProperties: LottieDynamicProperties
+)
+
@Composable
fun BackGestureTutorialScreen(
onDoneButtonClicked: () -> Unit,
onBack: () -> Unit,
) {
+ val screenColors = rememberScreenColors()
BackHandler(onBack = onBack)
var gestureDone by remember { mutableStateOf(false) }
val swipeDistanceThresholdPx =
- with(LocalContext.current) {
- resources.getDimensionPixelSize(
- com.android.internal.R.dimen.system_gestures_distance_threshold
- )
- }
+ LocalContext.current.resources.getDimensionPixelSize(
+ com.android.internal.R.dimen.system_gestures_distance_threshold
+ )
val gestureHandler =
remember(swipeDistanceThresholdPx) {
TouchpadGestureHandler(BACK, swipeDistanceThresholdPx, onDone = { gestureDone = true })
@@ -73,17 +90,45 @@ fun BackGestureTutorialScreen(
// only available in MotionEvent
.pointerInteropFilter(onTouchEvent = gestureHandler::onMotionEvent)
) {
- GestureTutorialContent(gestureDone, onDoneButtonClicked)
+ GestureTutorialContent(gestureDone, onDoneButtonClicked, screenColors)
}
}
@Composable
-private fun GestureTutorialContent(gestureDone: Boolean, onDoneButtonClicked: () -> Unit) {
+private fun rememberScreenColors(): TutorialScreenColors {
+ val onTertiary = LocalAndroidColorScheme.current.onTertiary
+ val onTertiaryFixed = LocalAndroidColorScheme.current.onTertiaryFixed
+ val onTertiaryFixedVariant = LocalAndroidColorScheme.current.onTertiaryFixedVariant
+ val tertiaryFixedDim = LocalAndroidColorScheme.current.tertiaryFixedDim
+ val dynamicProperties =
+ rememberLottieDynamicProperties(
+ rememberColorFilterProperty(".tertiaryFixedDim", tertiaryFixedDim),
+ rememberColorFilterProperty(".onTertiaryFixed", onTertiaryFixed),
+ rememberColorFilterProperty(".onTertiary", onTertiary),
+ rememberColorFilterProperty(".onTertiaryFixedVariant", onTertiaryFixedVariant)
+ )
+ val screenColors =
+ remember(onTertiaryFixed, tertiaryFixedDim, dynamicProperties) {
+ TutorialScreenColors(
+ backgroundColor = onTertiaryFixed,
+ titleColor = tertiaryFixedDim,
+ animationProperties = dynamicProperties,
+ )
+ }
+ return screenColors
+}
+
+@Composable
+private fun GestureTutorialContent(
+ gestureDone: Boolean,
+ onDoneButtonClicked: () -> Unit,
+ screenColors: TutorialScreenColors
+) {
Column(
verticalArrangement = Arrangement.Center,
modifier =
Modifier.fillMaxSize()
- .background(color = MaterialTheme.colorScheme.surfaceContainer)
+ .background(color = screenColors.backgroundColor)
.padding(start = 48.dp, top = 124.dp, end = 48.dp, bottom = 48.dp)
) {
Row(modifier = Modifier.fillMaxWidth().weight(1f)) {
@@ -91,11 +136,15 @@ private fun GestureTutorialContent(gestureDone: Boolean, onDoneButtonClicked: ()
titleTextId =
if (gestureDone) R.string.touchpad_tutorial_gesture_done
else R.string.touchpad_back_gesture_action_title,
+ titleColor = screenColors.titleColor,
bodyTextId = R.string.touchpad_back_gesture_guidance,
modifier = Modifier.weight(1f)
)
Spacer(modifier = Modifier.width(76.dp))
- TutorialAnimation(modifier = Modifier.weight(1f).padding(top = 24.dp))
+ TutorialAnimation(
+ screenColors.animationProperties,
+ modifier = Modifier.weight(1f).padding(top = 8.dp)
+ )
}
DoneButton(onDoneButtonClicked = onDoneButtonClicked)
}
@@ -104,34 +153,53 @@ private fun GestureTutorialContent(gestureDone: Boolean, onDoneButtonClicked: ()
@Composable
fun TutorialDescription(
@StringRes titleTextId: Int,
+ titleColor: Color,
@StringRes bodyTextId: Int,
modifier: Modifier = Modifier
) {
Column(verticalArrangement = Arrangement.Top, modifier = modifier) {
- Text(text = stringResource(id = titleTextId), style = MaterialTheme.typography.displayLarge)
+ Text(
+ text = stringResource(id = titleTextId),
+ style = MaterialTheme.typography.displayLarge,
+ color = titleColor
+ )
Spacer(modifier = Modifier.height(16.dp))
- Text(text = stringResource(id = bodyTextId), style = MaterialTheme.typography.bodyLarge)
+ Text(
+ text = stringResource(id = bodyTextId),
+ style = MaterialTheme.typography.bodyLarge,
+ color = Color.White
+ )
}
}
@Composable
-fun TutorialAnimation(modifier: Modifier = Modifier) {
- // below are just placeholder images, will be substituted by animations soon
+fun TutorialAnimation(animationProperties: LottieDynamicProperties, modifier: Modifier = Modifier) {
Column(modifier = modifier.fillMaxWidth()) {
- Image(
- painter = painterResource(id = R.drawable.placeholder_touchpad_tablet_back_gesture),
- contentDescription =
- stringResource(
- id = R.string.touchpad_back_gesture_screen_animation_content_description
- ),
- modifier = Modifier.fillMaxWidth()
- )
- Spacer(modifier = Modifier.height(24.dp))
- Image(
- painter = painterResource(id = R.drawable.placeholder_touchpad_back_gesture),
- contentDescription =
- stringResource(id = R.string.touchpad_back_gesture_animation_content_description),
- modifier = Modifier.fillMaxWidth()
+ val composition by
+ rememberLottieComposition(LottieCompositionSpec.RawRes(R.raw.trackpad_back_edu))
+ val progress by
+ animateLottieCompositionAsState(
+ composition,
+ iterations = LottieConstants.IterateForever
+ )
+ LottieAnimation(
+ composition = composition,
+ progress = { progress },
+ dynamicProperties = animationProperties
)
}
}
+
+@Composable
+fun rememberColorFilterProperty(
+ layerName: String,
+ color: Color
+): LottieDynamicProperty<ColorFilter> {
+ return rememberLottieDynamicProperty(
+ LottieProperty.COLOR_FILTER,
+ value = PorterDuffColorFilter(color.toArgb(), PorterDuff.Mode.SRC_ATOP),
+ // "**" below means match zero or more layers, so ** layerName ** means find layer with that
+ // name at any depth
+ keyPath = arrayOf("**", layerName, "**")
+ )
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerWindowlessMagnifierTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerWindowlessMagnifierTest.java
index e01366a9e594..6ff1b811ce95 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerWindowlessMagnifierTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerWindowlessMagnifierTest.java
@@ -27,14 +27,8 @@ import static android.view.accessibility.AccessibilityNodeInfo.AccessibilityActi
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_MAGNIFICATION_OVERLAP;
-import static org.hamcrest.Matchers.containsString;
-import static org.hamcrest.Matchers.hasItems;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.AdditionalAnswers.returnsSecondArg;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyFloat;
@@ -53,6 +47,8 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import static java.util.Arrays.asList;
+
import android.animation.ValueAnimator;
import android.annotation.IdRes;
import android.annotation.Nullable;
@@ -72,7 +68,6 @@ import android.platform.test.annotations.EnableFlags;
import android.provider.Settings;
import android.testing.TestableLooper;
import android.testing.TestableResources;
-import android.text.TextUtils;
import android.util.Size;
import android.view.AttachedSurfaceControl;
import android.view.Display;
@@ -274,7 +269,7 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
verify(mSecureSettings).getIntForUser(
eq(Settings.Secure.ACCESSIBILITY_ALLOW_DIAGONAL_SCROLLING),
/* def */ eq(1), /* userHandle= */ anyInt());
- assertTrue(mWindowMagnificationController.isDiagonalScrollingEnabled());
+ assertThat(mWindowMagnificationController.isDiagonalScrollingEnabled()).isTrue();
}
@Test
@@ -340,10 +335,10 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
final ArgumentCaptor<Rect> sourceBoundsCaptor = ArgumentCaptor.forClass(Rect.class);
verify(mWindowMagnifierCallback, atLeast(2)).onSourceBoundsChanged(
(eq(mContext.getDisplayId())), sourceBoundsCaptor.capture());
- assertEquals(mWindowMagnificationController.getCenterX(),
- sourceBoundsCaptor.getValue().exactCenterX(), 0);
- assertEquals(mWindowMagnificationController.getCenterY(),
- sourceBoundsCaptor.getValue().exactCenterY(), 0);
+ assertThat(mWindowMagnificationController.getCenterX())
+ .isEqualTo(sourceBoundsCaptor.getValue().exactCenterX());
+ assertThat(mWindowMagnificationController.getCenterY())
+ .isEqualTo(sourceBoundsCaptor.getValue().exactCenterY());
}
@Test
@@ -356,7 +351,7 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
waitForIdleSync();
List<Rect> rects = mSurfaceControlViewHost.getView().getSystemGestureExclusionRects();
- assertFalse(rects.isEmpty());
+ assertThat(rects).isNotEmpty();
}
@Ignore("The default window size should be constrained after fixing b/288056772")
@@ -374,8 +369,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
ViewGroup.LayoutParams params = mSurfaceControlViewHost.getView().getLayoutParams();
// The frame size should be the half of smaller value of window height/width unless it
//exceed the max frame size.
- assertTrue(params.width < halfScreenSize);
- assertTrue(params.height < halfScreenSize);
+ assertThat(params.width).isLessThan(halfScreenSize);
+ assertThat(params.height).isLessThan(halfScreenSize);
}
@Test
@@ -409,7 +404,7 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
});
verify(mMirrorWindowControl).destroyControl();
- assertFalse(hasMagnificationOverlapFlag());
+ assertThat(hasMagnificationOverlapFlag()).isFalse();
}
@Test
@@ -468,12 +463,12 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
verify(mAnimationCallback, never()).onResult(eq(false));
verify(mWindowMagnifierCallback, timeout(LAYOUT_CHANGE_TIMEOUT_MS))
.onSourceBoundsChanged((eq(mContext.getDisplayId())), sourceBoundsCaptor.capture());
- assertEquals(mWindowMagnificationController.getCenterX(),
- sourceBoundsCaptor.getValue().exactCenterX(), 0);
- assertEquals(mWindowMagnificationController.getCenterY(),
- sourceBoundsCaptor.getValue().exactCenterY(), 0);
- assertEquals(mWindowMagnificationController.getCenterX(), targetCenterX, 0);
- assertEquals(mWindowMagnificationController.getCenterY(), targetCenterY, 0);
+ assertThat(mWindowMagnificationController.getCenterX())
+ .isEqualTo(sourceBoundsCaptor.getValue().exactCenterX());
+ assertThat(mWindowMagnificationController.getCenterY())
+ .isEqualTo(sourceBoundsCaptor.getValue().exactCenterY());
+ assertThat(mWindowMagnificationController.getCenterX()).isEqualTo(targetCenterX);
+ assertThat(mWindowMagnificationController.getCenterY()).isEqualTo(targetCenterY);
}
@Test
@@ -509,12 +504,12 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
verify(mAnimationCallback, times(3)).onResult(eq(false));
verify(mWindowMagnifierCallback, timeout(LAYOUT_CHANGE_TIMEOUT_MS))
.onSourceBoundsChanged((eq(mContext.getDisplayId())), sourceBoundsCaptor.capture());
- assertEquals(mWindowMagnificationController.getCenterX(),
- sourceBoundsCaptor.getValue().exactCenterX(), 0);
- assertEquals(mWindowMagnificationController.getCenterY(),
- sourceBoundsCaptor.getValue().exactCenterY(), 0);
- assertEquals(mWindowMagnificationController.getCenterX(), centerX + 40, 0);
- assertEquals(mWindowMagnificationController.getCenterY(), centerY + 40, 0);
+ assertThat(mWindowMagnificationController.getCenterX())
+ .isEqualTo(sourceBoundsCaptor.getValue().exactCenterX());
+ assertThat(mWindowMagnificationController.getCenterY())
+ .isEqualTo(sourceBoundsCaptor.getValue().exactCenterY());
+ assertThat(mWindowMagnificationController.getCenterX()).isEqualTo(centerX + 40);
+ assertThat(mWindowMagnificationController.getCenterY()).isEqualTo(centerY + 40);
}
@Test
@@ -525,10 +520,10 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
mInstrumentation.runOnMainSync(() -> mWindowMagnificationController.setScale(3.0f));
- assertEquals(3.0f, mWindowMagnificationController.getScale(), 0);
+ assertThat(mWindowMagnificationController.getScale()).isEqualTo(3.0f);
final View mirrorView = mSurfaceControlViewHost.getView();
- assertNotNull(mirrorView);
- assertThat(mirrorView.getStateDescription().toString(), containsString("300"));
+ assertThat(mirrorView).isNotNull();
+ assertThat(mirrorView.getStateDescription().toString()).contains("300");
}
@Test
@@ -567,12 +562,12 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
mInstrumentation.runOnMainSync(() -> mWindowMagnificationController.onConfigurationChanged(
ActivityInfo.CONFIG_ORIENTATION));
- assertEquals(newRotation, mWindowMagnificationController.mRotation);
+ assertThat(mWindowMagnificationController.mRotation).isEqualTo(newRotation);
final PointF expectedCenter = new PointF(magnifiedCenter.y,
displayWidth - magnifiedCenter.x);
final PointF actualCenter = new PointF(mWindowMagnificationController.getCenterX(),
mWindowMagnificationController.getCenterY());
- assertEquals(expectedCenter, actualCenter);
+ assertThat(actualCenter).isEqualTo(expectedCenter);
}
@Test
@@ -587,7 +582,7 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
mInstrumentation.runOnMainSync(() -> mWindowMagnificationController.onConfigurationChanged(
ActivityInfo.CONFIG_ORIENTATION));
- assertEquals(newRotation, mWindowMagnificationController.mRotation);
+ assertThat(mWindowMagnificationController.mRotation).isEqualTo(newRotation);
}
@Test
@@ -614,12 +609,10 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
});
// The ratio of center to window size should be the same.
- assertEquals(expectedRatio,
- mWindowMagnificationController.getCenterX() / testWindowBounds.width(),
- 0);
- assertEquals(expectedRatio,
- mWindowMagnificationController.getCenterY() / testWindowBounds.height(),
- 0);
+ assertThat(mWindowMagnificationController.getCenterX() / testWindowBounds.width())
+ .isEqualTo(expectedRatio);
+ assertThat(mWindowMagnificationController.getCenterY() / testWindowBounds.height())
+ .isEqualTo(expectedRatio);
}
@DisableFlags(Flags.FLAG_SAVE_AND_RESTORE_MAGNIFICATION_SETTINGS_BUTTONS)
@@ -657,8 +650,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
final int mirrorSurfaceMargin = mResources.getDimensionPixelSize(
R.dimen.magnification_mirror_surface_margin);
// The width and height of the view include the magnification frame and the margins.
- assertTrue(params.width == (windowFrameSize + 2 * mirrorSurfaceMargin));
- assertTrue(params.height == (windowFrameSize + 2 * mirrorSurfaceMargin));
+ assertThat(params.width).isEqualTo(windowFrameSize + 2 * mirrorSurfaceMargin);
+ assertThat(params.height).isEqualTo(windowFrameSize + 2 * mirrorSurfaceMargin);
}
@EnableFlags(Flags.FLAG_SAVE_AND_RESTORE_MAGNIFICATION_SETTINGS_BUTTONS)
@@ -701,8 +694,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
final int mirrorSurfaceMargin = mResources.getDimensionPixelSize(
R.dimen.magnification_mirror_surface_margin);
// The width and height of the view include the magnification frame and the margins.
- assertTrue(params.width == (windowFrameSize + 2 * mirrorSurfaceMargin));
- assertTrue(params.height == (windowFrameSize + 2 * mirrorSurfaceMargin));
+ assertThat(params.width).isEqualTo(windowFrameSize + 2 * mirrorSurfaceMargin);
+ assertThat(params.height).isEqualTo(windowFrameSize + 2 * mirrorSurfaceMargin);
}
@Test
@@ -726,8 +719,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
WindowMagnificationSettings.MagnificationSize.MEDIUM);
ViewGroup.LayoutParams params = mSurfaceControlViewHost.getView().getLayoutParams();
- assertTrue(params.width == defaultWindowSize);
- assertTrue(params.height == defaultWindowSize);
+ assertThat(params.width).isEqualTo(defaultWindowSize);
+ assertThat(params.height).isEqualTo(defaultWindowSize);
}
@Test
@@ -766,20 +759,29 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
Float.NaN);
});
final View mirrorView = mSurfaceControlViewHost.getView();
- assertNotNull(mirrorView);
+ assertThat(mirrorView).isNotNull();
final AccessibilityNodeInfo nodeInfo = new AccessibilityNodeInfo();
mirrorView.onInitializeAccessibilityNodeInfo(nodeInfo);
- assertNotNull(nodeInfo.getContentDescription());
- assertThat(nodeInfo.getStateDescription().toString(), containsString("250"));
- assertThat(nodeInfo.getActionList(),
- hasItems(new AccessibilityAction(R.id.accessibility_action_zoom_in, null),
- new AccessibilityAction(R.id.accessibility_action_zoom_out, null),
- new AccessibilityAction(R.id.accessibility_action_move_right, null),
- new AccessibilityAction(R.id.accessibility_action_move_left, null),
- new AccessibilityAction(R.id.accessibility_action_move_down, null),
- new AccessibilityAction(R.id.accessibility_action_move_up, null)));
+ assertThat(nodeInfo.getContentDescription()).isNotNull();
+ assertThat(nodeInfo.getStateDescription().toString()).contains("250");
+ assertThat(nodeInfo.getActionList()).containsExactlyElementsIn(asList(
+ new AccessibilityAction(AccessibilityAction.ACTION_CLICK.getId(),
+ mContext.getResources().getString(
+ R.string.magnification_open_settings_click_label)),
+ new AccessibilityAction(R.id.accessibility_action_zoom_in,
+ mContext.getString(R.string.accessibility_control_zoom_in)),
+ new AccessibilityAction(R.id.accessibility_action_zoom_out,
+ mContext.getString(R.string.accessibility_control_zoom_out)),
+ new AccessibilityAction(R.id.accessibility_action_move_right,
+ mContext.getString(R.string.accessibility_control_move_right)),
+ new AccessibilityAction(R.id.accessibility_action_move_left,
+ mContext.getString(R.string.accessibility_control_move_left)),
+ new AccessibilityAction(R.id.accessibility_action_move_down,
+ mContext.getString(R.string.accessibility_control_move_down)),
+ new AccessibilityAction(R.id.accessibility_action_move_up,
+ mContext.getString(R.string.accessibility_control_move_up))));
}
@Test
@@ -791,28 +793,33 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
});
final View mirrorView = mSurfaceControlViewHost.getView();
- assertTrue(
- mirrorView.performAccessibilityAction(R.id.accessibility_action_zoom_out, null));
+ assertThat(mirrorView.performAccessibilityAction(R.id.accessibility_action_zoom_out, null))
+ .isTrue();
// Minimum scale is 1.0.
verify(mWindowMagnifierCallback).onPerformScaleAction(
eq(displayId), /* scale= */ eq(1.0f), /* updatePersistence= */ eq(true));
- assertTrue(mirrorView.performAccessibilityAction(R.id.accessibility_action_zoom_in, null));
+ assertThat(mirrorView.performAccessibilityAction(R.id.accessibility_action_zoom_in, null))
+ .isTrue();
verify(mWindowMagnifierCallback).onPerformScaleAction(
eq(displayId), /* scale= */ eq(2.5f), /* updatePersistence= */ eq(true));
// TODO: Verify the final state when the mirror surface is visible.
- assertTrue(mirrorView.performAccessibilityAction(R.id.accessibility_action_move_up, null));
- assertTrue(
- mirrorView.performAccessibilityAction(R.id.accessibility_action_move_down, null));
- assertTrue(
- mirrorView.performAccessibilityAction(R.id.accessibility_action_move_right, null));
- assertTrue(
- mirrorView.performAccessibilityAction(R.id.accessibility_action_move_left, null));
+ assertThat(mirrorView.performAccessibilityAction(R.id.accessibility_action_move_up, null))
+ .isTrue();
+ assertThat(
+ mirrorView.performAccessibilityAction(R.id.accessibility_action_move_down, null))
+ .isTrue();
+ assertThat(
+ mirrorView.performAccessibilityAction(R.id.accessibility_action_move_right, null))
+ .isTrue();
+ assertThat(
+ mirrorView.performAccessibilityAction(R.id.accessibility_action_move_left, null))
+ .isTrue();
verify(mWindowMagnifierCallback, times(4)).onMove(eq(displayId));
- assertTrue(mirrorView.performAccessibilityAction(
- AccessibilityAction.ACTION_CLICK.getId(), null));
+ assertThat(mirrorView.performAccessibilityAction(
+ AccessibilityAction.ACTION_CLICK.getId(), null)).isTrue();
verify(mWindowMagnifierCallback).onClickSettingsButton(eq(displayId));
}
@@ -844,22 +851,22 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
View topRightCorner = getInternalView(R.id.top_right_corner);
View topLeftCorner = getInternalView(R.id.top_left_corner);
- assertEquals(View.VISIBLE, closeButton.getVisibility());
- assertEquals(View.VISIBLE, bottomRightCorner.getVisibility());
- assertEquals(View.VISIBLE, bottomLeftCorner.getVisibility());
- assertEquals(View.VISIBLE, topRightCorner.getVisibility());
- assertEquals(View.VISIBLE, topLeftCorner.getVisibility());
+ assertThat(closeButton.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(bottomRightCorner.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(bottomLeftCorner.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(topRightCorner.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(topLeftCorner.getVisibility()).isEqualTo(View.VISIBLE);
final View mirrorView = mSurfaceControlViewHost.getView();
mInstrumentation.runOnMainSync(() ->
mirrorView.performAccessibilityAction(AccessibilityAction.ACTION_CLICK.getId(),
null));
- assertEquals(View.GONE, closeButton.getVisibility());
- assertEquals(View.GONE, bottomRightCorner.getVisibility());
- assertEquals(View.GONE, bottomLeftCorner.getVisibility());
- assertEquals(View.GONE, topRightCorner.getVisibility());
- assertEquals(View.GONE, topLeftCorner.getVisibility());
+ assertThat(closeButton.getVisibility()).isEqualTo(View.GONE);
+ assertThat(bottomRightCorner.getVisibility()).isEqualTo(View.GONE);
+ assertThat(bottomLeftCorner.getVisibility()).isEqualTo(View.GONE);
+ assertThat(topRightCorner.getVisibility()).isEqualTo(View.GONE);
+ assertThat(topLeftCorner.getVisibility()).isEqualTo(View.GONE);
}
@Test
@@ -901,8 +908,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
int newWindowWidth =
(int) ((startingWidth - 2 * mirrorSurfaceMargin) * (1 + changeWindowSizeAmount))
+ 2 * mirrorSurfaceMargin;
- assertEquals(newWindowWidth, actualWindowWidth.get());
- assertEquals(startingHeight, actualWindowHeight.get());
+ assertThat(actualWindowWidth.get()).isEqualTo(newWindowWidth);
+ assertThat(actualWindowHeight.get()).isEqualTo(startingHeight);
}
@Test
@@ -943,8 +950,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
int newWindowHeight =
(int) ((startingHeight - 2 * mirrorSurfaceMargin) * (1 + changeWindowSizeAmount))
+ 2 * mirrorSurfaceMargin;
- assertEquals(startingWidth, actualWindowWidth.get());
- assertEquals(newWindowHeight, actualWindowHeight.get());
+ assertThat(actualWindowWidth.get()).isEqualTo(startingWidth);
+ assertThat(actualWindowHeight.get()).isEqualTo(newWindowHeight);
}
@Test
@@ -963,8 +970,11 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
final View mirrorView = mSurfaceControlViewHost.getView();
final AccessibilityNodeInfo accessibilityNodeInfo =
mirrorView.createAccessibilityNodeInfo();
- assertFalse(accessibilityNodeInfo.getActionList().contains(
- new AccessibilityAction(R.id.accessibility_action_increase_window_width, null)));
+ assertThat(accessibilityNodeInfo.getActionList()).doesNotContain(
+ new AccessibilityAction(
+ R.id.accessibility_action_increase_window_width,
+ mContext.getString(
+ R.string.accessibility_control_increase_window_width)));
}
@Test
@@ -983,8 +993,9 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
final View mirrorView = mSurfaceControlViewHost.getView();
final AccessibilityNodeInfo accessibilityNodeInfo =
mirrorView.createAccessibilityNodeInfo();
- assertFalse(accessibilityNodeInfo.getActionList().contains(
- new AccessibilityAction(R.id.accessibility_action_increase_window_height, null)));
+ assertThat(accessibilityNodeInfo.getActionList()).doesNotContain(
+ new AccessibilityAction(
+ R.id.accessibility_action_increase_window_height, null));
}
@Test
@@ -1024,8 +1035,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
int newWindowWidth =
(int) ((startingSize - 2 * mirrorSurfaceMargin) * (1 - changeWindowSizeAmount))
+ 2 * mirrorSurfaceMargin;
- assertEquals(newWindowWidth, actualWindowWidth.get());
- assertEquals(startingSize, actualWindowHeight.get());
+ assertThat(actualWindowWidth.get()).isEqualTo(newWindowWidth);
+ assertThat(actualWindowHeight.get()).isEqualTo(startingSize);
}
@Test
@@ -1066,8 +1077,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
int newWindowHeight =
(int) ((startingSize - 2 * mirrorSurfaceMargin) * (1 - changeWindowSizeAmount))
+ 2 * mirrorSurfaceMargin;
- assertEquals(startingSize, actualWindowWidth.get());
- assertEquals(newWindowHeight, actualWindowHeight.get());
+ assertThat(actualWindowWidth.get()).isEqualTo(startingSize);
+ assertThat(actualWindowHeight.get()).isEqualTo(newWindowHeight);
}
@Test
@@ -1086,8 +1097,9 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
final View mirrorView = mSurfaceControlViewHost.getView();
final AccessibilityNodeInfo accessibilityNodeInfo =
mirrorView.createAccessibilityNodeInfo();
- assertFalse(accessibilityNodeInfo.getActionList().contains(
- new AccessibilityAction(R.id.accessibility_action_decrease_window_width, null)));
+ assertThat(accessibilityNodeInfo.getActionList()).doesNotContain(
+ new AccessibilityAction(
+ R.id.accessibility_action_decrease_window_width, null));
}
@Test
@@ -1106,8 +1118,9 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
final View mirrorView = mSurfaceControlViewHost.getView();
final AccessibilityNodeInfo accessibilityNodeInfo =
mirrorView.createAccessibilityNodeInfo();
- assertFalse(accessibilityNodeInfo.getActionList().contains(
- new AccessibilityAction(R.id.accessibility_action_decrease_window_height, null)));
+ assertThat(accessibilityNodeInfo.getActionList()).doesNotContain(
+ new AccessibilityAction(
+ R.id.accessibility_action_decrease_window_height, null));
}
@Test
@@ -1117,8 +1130,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
Float.NaN);
});
- assertEquals(getContext().getResources().getString(
- com.android.internal.R.string.android_system_label), getAccessibilityWindowTitle());
+ assertThat(getAccessibilityWindowTitle()).isEqualTo(getContext().getResources().getString(
+ com.android.internal.R.string.android_system_label));
}
@Test
@@ -1133,14 +1146,14 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
Float.NaN);
});
- assertEquals(Float.NaN, mWindowMagnificationController.getScale(), 0);
+ assertThat(mWindowMagnificationController.getScale()).isEqualTo(Float.NaN);
}
@Test
public void enableWindowMagnification_rotationIsChanged_updateRotationValue() {
// the config orientation should not be undefined, since it would cause config.diff
// returning 0 and thus the orientation changed would not be detected
- assertNotEquals(ORIENTATION_UNDEFINED, mResources.getConfiguration().orientation);
+ assertThat(mResources.getConfiguration().orientation).isNotEqualTo(ORIENTATION_UNDEFINED);
final Configuration config = mResources.getConfiguration();
config.orientation = config.orientation == ORIENTATION_LANDSCAPE ? ORIENTATION_PORTRAIT
@@ -1151,7 +1164,7 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
() -> mWindowMagnificationController.updateWindowMagnificationInternal(Float.NaN,
Float.NaN, Float.NaN));
- assertEquals(newRotation, mWindowMagnificationController.mRotation);
+ assertThat(mWindowMagnificationController.mRotation).isEqualTo(newRotation);
}
@Test
@@ -1179,7 +1192,7 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
mWindowMagnificationController.onConfigurationChanged(ActivityInfo.CONFIG_LOCALE);
});
- assertTrue(TextUtils.equals(newA11yWindowTitle, getAccessibilityWindowTitle()));
+ assertThat(getAccessibilityWindowTitle()).isEqualTo(newA11yWindowTitle);
}
@Ignore("it's flaky in presubmit but works in abtd, filter for now. b/305654925")
@@ -1202,10 +1215,10 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
// maxScaleX.getAndAccumulate(mirrorView.getScaleX(), Math::max);
final double oldMax = maxScaleX.get();
final double newMax = Math.max(mirrorView.getScaleX(), oldMax);
- assertTrue(maxScaleX.compareAndSet(oldMax, newMax));
+ assertThat(maxScaleX.compareAndSet(oldMax, newMax)).isTrue();
});
- assertTrue(maxScaleX.get() > 1.0);
+ assertThat(maxScaleX.get()).isGreaterThan(1.0);
}
@Test
@@ -1250,7 +1263,7 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
View dragButton = getInternalView(R.id.drag_handle);
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) dragButton.getLayoutParams();
- assertEquals(Gravity.BOTTOM | Gravity.LEFT, params.gravity);
+ assertThat(params.gravity).isEqualTo(Gravity.BOTTOM | Gravity.LEFT);
}
@Test
@@ -1279,7 +1292,7 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
View dragButton = getInternalView(R.id.drag_handle);
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) dragButton.getLayoutParams();
- assertEquals(Gravity.BOTTOM | Gravity.RIGHT, params.gravity);
+ assertThat(params.gravity).isEqualTo(Gravity.BOTTOM | Gravity.RIGHT);
}
@Test
@@ -1301,8 +1314,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
});
- assertEquals(expectedWindowHeight, actualWindowHeight.get());
- assertEquals(expectedWindowWidth, actualWindowWidth.get());
+ assertThat(actualWindowHeight.get()).isEqualTo(expectedWindowHeight);
+ assertThat(actualWindowWidth.get()).isEqualTo(expectedWindowWidth);
}
@Test
@@ -1322,8 +1335,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
actualWindowWidth.set(mSurfaceControlViewHost.getView().getLayoutParams().width);
});
- assertEquals(expectedWindowHeight, actualWindowHeight.get());
- assertEquals(expectedWindowWidth, actualWindowWidth.get());
+ assertThat(actualWindowHeight.get()).isEqualTo(expectedWindowHeight);
+ assertThat(actualWindowWidth.get()).isEqualTo(expectedWindowWidth);
}
@Test
@@ -1343,8 +1356,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
actualWindowWidth.set(mSurfaceControlViewHost.getView().getLayoutParams().width);
});
- assertEquals(minimumWindowSize, actualWindowHeight.get());
- assertEquals(minimumWindowSize, actualWindowWidth.get());
+ assertThat(actualWindowHeight.get()).isEqualTo(minimumWindowSize);
+ assertThat(actualWindowWidth.get()).isEqualTo(minimumWindowSize);
}
@Test
@@ -1362,8 +1375,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
actualWindowWidth.set(mSurfaceControlViewHost.getView().getLayoutParams().width);
});
- assertEquals(bounds.height(), actualWindowHeight.get());
- assertEquals(bounds.width(), actualWindowWidth.get());
+ assertThat(actualWindowHeight.get()).isEqualTo(bounds.height());
+ assertThat(actualWindowWidth.get()).isEqualTo(bounds.width());
}
@Test
@@ -1395,8 +1408,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
mSurfaceControlViewHost.getView().getLayoutParams().width);
});
- assertEquals(expectedWindowHeight, actualWindowHeight.get());
- assertEquals(expectedWindowWidth, actualWindowWidth.get());
+ assertThat(actualWindowHeight.get()).isEqualTo(expectedWindowHeight);
+ assertThat(actualWindowWidth.get()).isEqualTo(expectedWindowWidth);
}
@Test
@@ -1431,8 +1444,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
mSurfaceControlViewHost.getView().getLayoutParams().width);
});
- assertEquals(startingSize + 1, actualWindowHeight.get());
- assertEquals(startingSize + 2, actualWindowWidth.get());
+ assertThat(actualWindowHeight.get()).isEqualTo(startingSize + 1);
+ assertThat(actualWindowWidth.get()).isEqualTo(startingSize + 2);
}
@Test
@@ -1460,8 +1473,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
actualWindowWidth.set(
mSurfaceControlViewHost.getView().getLayoutParams().width);
});
- assertEquals(startingSize + 1, actualWindowHeight.get());
- assertEquals(startingSize, actualWindowWidth.get());
+ assertThat(actualWindowHeight.get()).isEqualTo(startingSize + 1);
+ assertThat(actualWindowWidth.get()).isEqualTo(startingSize);
}
@Test
@@ -1483,8 +1496,8 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
magnificationCenterY.set((int) mWindowMagnificationController.getCenterY());
});
- assertTrue(magnificationCenterX.get() < bounds.right);
- assertTrue(magnificationCenterY.get() < bounds.bottom);
+ assertThat(magnificationCenterX.get()).isLessThan(bounds.right);
+ assertThat(magnificationCenterY.get()).isLessThan(bounds.bottom);
}
@Test
@@ -1510,7 +1523,7 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
private <T extends View> T getInternalView(@IdRes int idRes) {
View mirrorView = mSurfaceControlViewHost.getView();
T view = mirrorView.findViewById(idRes);
- assertNotNull(view);
+ assertThat(view).isNotNull();
return view;
}
@@ -1519,14 +1532,14 @@ public class WindowMagnificationControllerWindowlessMagnifierTest extends SysuiT
return mMotionEventHelper.obtainMotionEvent(downTime, eventTime, action, x, y);
}
- private CharSequence getAccessibilityWindowTitle() {
+ private String getAccessibilityWindowTitle() {
final View mirrorView = mSurfaceControlViewHost.getView();
if (mirrorView == null) {
return null;
}
WindowManager.LayoutParams layoutParams =
(WindowManager.LayoutParams) mirrorView.getLayoutParams();
- return layoutParams.accessibilityTitle;
+ return layoutParams.accessibilityTitle.toString();
}
private boolean hasMagnificationOverlapFlag() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperCategoriesRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperCategoriesRepositoryTest.kt
index 14837f219862..6e883c24b5d2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperCategoriesRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperCategoriesRepositoryTest.kt
@@ -16,12 +16,28 @@
package com.android.systemui.keyboard.shortcut.data.repository
+import android.hardware.input.fakeInputManager
+import android.view.KeyEvent.KEYCODE_A
+import android.view.KeyEvent.KEYCODE_B
+import android.view.KeyEvent.KEYCODE_C
+import android.view.KeyEvent.KEYCODE_D
+import android.view.KeyEvent.KEYCODE_E
+import android.view.KeyEvent.KEYCODE_F
+import android.view.KeyEvent.KEYCODE_G
+import android.view.KeyboardShortcutGroup
+import android.view.KeyboardShortcutInfo
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.keyboard.shortcut.data.source.FakeKeyboardShortcutGroupsSource
import com.android.systemui.keyboard.shortcut.data.source.TestShortcuts
+import com.android.systemui.keyboard.shortcut.shared.model.Shortcut
+import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCategory
+import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCategoryType
+import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCommand
+import com.android.systemui.keyboard.shortcut.shared.model.ShortcutKey
+import com.android.systemui.keyboard.shortcut.shared.model.ShortcutSubCategory
import com.android.systemui.keyboard.shortcut.shortcutHelperAppCategoriesShortcutsSource
import com.android.systemui.keyboard.shortcut.shortcutHelperCategoriesRepository
import com.android.systemui.keyboard.shortcut.shortcutHelperCurrentAppShortcutsSource
@@ -47,13 +63,14 @@ class ShortcutHelperCategoriesRepositoryTest : SysuiTestCase() {
private val fakeSystemSource = FakeKeyboardShortcutGroupsSource()
private val fakeMultiTaskingSource = FakeKeyboardShortcutGroupsSource()
+ private val fakeAppCategoriesSource = FakeKeyboardShortcutGroupsSource()
private val kosmos =
testKosmos().also {
it.testDispatcher = UnconfinedTestDispatcher()
it.shortcutHelperSystemShortcutsSource = fakeSystemSource
it.shortcutHelperMultiTaskingShortcutsSource = fakeMultiTaskingSource
- it.shortcutHelperAppCategoriesShortcutsSource = FakeKeyboardShortcutGroupsSource()
+ it.shortcutHelperAppCategoriesShortcutsSource = fakeAppCategoriesSource
it.shortcutHelperInputShortcutsSource = FakeKeyboardShortcutGroupsSource()
it.shortcutHelperCurrentAppShortcutsSource = FakeKeyboardShortcutGroupsSource()
}
@@ -61,6 +78,7 @@ class ShortcutHelperCategoriesRepositoryTest : SysuiTestCase() {
private val repo = kosmos.shortcutHelperCategoriesRepository
private val helper = kosmos.shortcutHelperTestHelper
private val testScope = kosmos.testScope
+ private val fakeInputManager = kosmos.fakeInputManager
@Before
fun setUp() {
@@ -87,4 +105,74 @@ class ShortcutHelperCategoriesRepositoryTest : SysuiTestCase() {
// though fetching shortcuts again would have returned a new result.
assertThat(secondCategories).isEqualTo(firstCategories)
}
+
+ @Test
+ fun categories_filtersShortcutsWithUnsupportedKeyCodes() =
+ testScope.runTest {
+ fakeSystemSource.setGroups(
+ listOf(
+ simpleGroup(
+ simpleShortcutInfo(KEYCODE_A),
+ simpleShortcutInfo(KEYCODE_B),
+ ),
+ simpleGroup(
+ simpleShortcutInfo(KEYCODE_C),
+ ),
+ )
+ )
+ fakeMultiTaskingSource.setGroups(
+ listOf(
+ simpleGroup(
+ simpleShortcutInfo(KEYCODE_D),
+ ),
+ simpleGroup(
+ simpleShortcutInfo(KEYCODE_E),
+ simpleShortcutInfo(KEYCODE_F),
+ ),
+ )
+ )
+ fakeAppCategoriesSource.setGroups(listOf(simpleGroup(simpleShortcutInfo(KEYCODE_G))))
+
+ fakeInputManager.removeKeysFromKeyboard(deviceId = 123, KEYCODE_A, KEYCODE_D, KEYCODE_G)
+ helper.toggle(deviceId = 123)
+
+ val categories by collectLastValue(repo.categories)
+ assertThat(categories)
+ .containsExactly(
+ ShortcutCategory(
+ ShortcutCategoryType.System,
+ listOf(
+ simpleSubCategory(simpleShortcut("B")),
+ simpleSubCategory(simpleShortcut("C")),
+ )
+ ),
+ ShortcutCategory(
+ ShortcutCategoryType.MultiTasking,
+ listOf(
+ simpleSubCategory(
+ simpleShortcut("E"),
+ simpleShortcut("F"),
+ ),
+ )
+ ),
+ )
+ }
+
+ private fun simpleSubCategory(vararg shortcuts: Shortcut) =
+ ShortcutSubCategory(simpleGroupLabel, shortcuts.asList())
+
+ private fun simpleShortcut(vararg keys: String) =
+ Shortcut(
+ label = simpleShortcutLabel,
+ commands = listOf(ShortcutCommand(keys.map { ShortcutKey.Text(it) }))
+ )
+
+ private fun simpleGroup(vararg shortcuts: KeyboardShortcutInfo) =
+ KeyboardShortcutGroup(simpleGroupLabel, shortcuts.asList())
+
+ private fun simpleShortcutInfo(keyCode: Int = 0) =
+ KeyboardShortcutInfo(simpleShortcutLabel, keyCode, /* modifiers= */ 0)
+
+ private val simpleShortcutLabel = "shortcut label"
+ private val simpleGroupLabel = "group label"
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyboard/shortcut/ui/viewmodel/ShortcutHelperViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyboard/shortcut/ui/viewmodel/ShortcutHelperViewModelTest.kt
index 69fc463a576a..004317370c22 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyboard/shortcut/ui/viewmodel/ShortcutHelperViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyboard/shortcut/ui/viewmodel/ShortcutHelperViewModelTest.kt
@@ -16,6 +16,9 @@
package com.android.systemui.keyboard.shortcut.ui.viewmodel
+import android.view.KeyEvent
+import android.view.KeyboardShortcutGroup
+import android.view.KeyboardShortcutInfo
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
@@ -23,7 +26,12 @@ import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.coroutines.collectValues
import com.android.systemui.keyboard.shortcut.data.source.FakeKeyboardShortcutGroupsSource
import com.android.systemui.keyboard.shortcut.data.source.TestShortcuts
+import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCategory
import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCategoryType.CurrentApp
+import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCategoryType.MultiTasking
+import com.android.systemui.keyboard.shortcut.shared.model.ShortcutCategoryType.System
+import com.android.systemui.keyboard.shortcut.shared.model.ShortcutSubCategory
+import com.android.systemui.keyboard.shortcut.shared.model.shortcut
import com.android.systemui.keyboard.shortcut.shortcutHelperAppCategoriesShortcutsSource
import com.android.systemui.keyboard.shortcut.shortcutHelperCurrentAppShortcutsSource
import com.android.systemui.keyboard.shortcut.shortcutHelperInputShortcutsSource
@@ -231,4 +239,126 @@ class ShortcutHelperViewModelTest : SysuiTestCase() {
assertThat(activeUiState.defaultSelectedCategory)
.isEqualTo(CurrentApp(TestShortcuts.currentAppPackageName))
}
+
+ @Test
+ fun shortcutsUiState_userTypedQuery_filtersMatchingShortcutLabels() =
+ testScope.runTest {
+ fakeSystemSource.setGroups(
+ groupWithShortcutLabels("first Foo shortcut1", "first bar shortcut1"),
+ groupWithShortcutLabels("second foO shortcut2", "second bar shortcut2"),
+ )
+ fakeMultiTaskingSource.setGroups(
+ groupWithShortcutLabels("third FoO shortcut1", "third bar shortcut1")
+ )
+ val uiState by collectLastValue(viewModel.shortcutsUiState)
+
+ testHelper.showFromActivity()
+ viewModel.onSearchQueryChanged("foo")
+
+ val activeUiState = uiState as ShortcutsUiState.Active
+ assertThat(activeUiState.shortcutCategories)
+ .containsExactly(
+ ShortcutCategory(
+ System,
+ subCategoryWithShortcutLabels("first Foo shortcut1"),
+ subCategoryWithShortcutLabels("second foO shortcut2")
+ ),
+ ShortcutCategory(
+ MultiTasking,
+ subCategoryWithShortcutLabels("third FoO shortcut1")
+ )
+ )
+ }
+
+ @Test
+ fun shortcutsUiState_userTypedQuery_noMatch_returnsEmptyList() =
+ testScope.runTest {
+ fakeSystemSource.setGroups(
+ groupWithShortcutLabels("first Foo shortcut1", "first bar shortcut1"),
+ groupWithShortcutLabels("second foO shortcut2", "second bar shortcut2"),
+ )
+ fakeMultiTaskingSource.setGroups(
+ groupWithShortcutLabels("third FoO shortcut1", "third bar shortcut1")
+ )
+ val uiState by collectLastValue(viewModel.shortcutsUiState)
+
+ testHelper.showFromActivity()
+ viewModel.onSearchQueryChanged("unmatched query")
+
+ val activeUiState = uiState as ShortcutsUiState.Active
+ assertThat(activeUiState.shortcutCategories).isEmpty()
+ }
+
+ @Test
+ fun shortcutsUiState_userTypedQuery_noMatch_returnsNullDefaultSelectedCategory() =
+ testScope.runTest {
+ fakeSystemSource.setGroups(
+ groupWithShortcutLabels("first Foo shortcut1", "first bar shortcut1"),
+ groupWithShortcutLabels("second foO shortcut2", "second bar shortcut2"),
+ )
+ fakeMultiTaskingSource.setGroups(
+ groupWithShortcutLabels("third FoO shortcut1", "third bar shortcut1")
+ )
+ val uiState by collectLastValue(viewModel.shortcutsUiState)
+
+ testHelper.showFromActivity()
+ viewModel.onSearchQueryChanged("unmatched query")
+
+ val activeUiState = uiState as ShortcutsUiState.Active
+ assertThat(activeUiState.defaultSelectedCategory).isNull()
+ }
+
+ @Test
+ fun shortcutsUiState_userTypedQuery_changesDefaultSelectedCategoryToFirstMatchingCategory() =
+ testScope.runTest {
+ fakeSystemSource.setGroups(groupWithShortcutLabels("first shortcut"))
+ fakeMultiTaskingSource.setGroups(groupWithShortcutLabels("second shortcut"))
+ val uiState by collectLastValue(viewModel.shortcutsUiState)
+
+ testHelper.showFromActivity()
+ viewModel.onSearchQueryChanged("second")
+
+ val activeUiState = uiState as ShortcutsUiState.Active
+ assertThat(activeUiState.defaultSelectedCategory).isEqualTo(MultiTasking)
+ }
+
+ @Test
+ fun shortcutsUiState_userTypedQuery_multipleCategoriesMatch_currentAppIsDefaultSelected() =
+ testScope.runTest {
+ fakeSystemSource.setGroups(groupWithShortcutLabels("first shortcut"))
+ fakeMultiTaskingSource.setGroups(groupWithShortcutLabels("second shortcut"))
+ fakeCurrentAppsSource.setGroups(groupWithShortcutLabels("third shortcut"))
+ val uiState by collectLastValue(viewModel.shortcutsUiState)
+
+ testHelper.showFromActivity()
+ viewModel.onSearchQueryChanged("shortcut")
+
+ val activeUiState = uiState as ShortcutsUiState.Active
+ assertThat(activeUiState.defaultSelectedCategory).isInstanceOf(CurrentApp::class.java)
+ }
+
+ private fun groupWithShortcutLabels(vararg shortcutLabels: String) =
+ KeyboardShortcutGroup(SIMPLE_GROUP_LABEL, shortcutLabels.map { simpleShortcutInfo(it) })
+ .apply { packageName = "test.package.name" }
+
+ private fun simpleShortcutInfo(label: String) =
+ KeyboardShortcutInfo(label, KeyEvent.KEYCODE_A, KeyEvent.META_CTRL_ON)
+
+ private fun subCategoryWithShortcutLabels(vararg shortcutLabels: String) =
+ ShortcutSubCategory(
+ label = SIMPLE_GROUP_LABEL,
+ shortcuts = shortcutLabels.map { simpleShortcut(it) },
+ )
+
+ private fun simpleShortcut(label: String) =
+ shortcut(label) {
+ command {
+ key("Ctrl")
+ key("A")
+ }
+ }
+
+ companion object {
+ private const val SIMPLE_GROUP_LABEL = "simple group"
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt
index 8bc0a6040e12..a310520763e3 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt
@@ -20,21 +20,24 @@ package com.android.systemui.keyguard.domain.interactor
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
+import com.android.systemui.authentication.data.repository.fakeAuthenticationRepository
+import com.android.systemui.authentication.shared.model.AuthenticationMethodModel
import com.android.systemui.coroutines.collectLastValue
-import com.android.systemui.flags.DisableSceneContainer
+import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor
import com.android.systemui.flags.EnableSceneContainer
import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
-import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
import com.android.systemui.keyguard.shared.model.DismissAction
import com.android.systemui.keyguard.shared.model.KeyguardDone
-import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.kosmos.testScope
import com.android.systemui.scene.data.repository.Idle
+import com.android.systemui.scene.data.repository.Transition
import com.android.systemui.scene.data.repository.setSceneTransition
+import com.android.systemui.scene.domain.interactor.sceneInteractor
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.testKosmos
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Before
@@ -44,13 +47,12 @@ import org.mockito.MockitoAnnotations
@OptIn(ExperimentalCoroutinesApi::class)
@SmallTest
+@EnableSceneContainer
@RunWith(AndroidJUnit4::class)
class KeyguardDismissActionInteractorTest : SysuiTestCase() {
val kosmos = testKosmos()
private val keyguardRepository = kosmos.fakeKeyguardRepository
- private val transitionRepository = kosmos.fakeKeyguardTransitionRepository
-
private val testScope = kosmos.testScope
private lateinit var dismissInteractorWithDependencies:
@@ -74,6 +76,8 @@ class KeyguardDismissActionInteractorTest : SysuiTestCase() {
transitionInteractor = kosmos.keyguardTransitionInteractor,
dismissInteractor = dismissInteractorWithDependencies.interactor,
applicationScope = testScope.backgroundScope,
+ sceneInteractor = kosmos.sceneInteractor,
+ deviceEntryInteractor = kosmos.deviceEntryInteractor,
)
}
@@ -158,7 +162,6 @@ class KeyguardDismissActionInteractorTest : SysuiTestCase() {
}
@Test
- @DisableSceneContainer
fun executeDismissAction_dismissKeyguardRequestWithoutImmediateDismissAction() =
testScope.runTest {
val executeDismissAction by collectLastValue(underTest.executeDismissAction)
@@ -175,43 +178,37 @@ class KeyguardDismissActionInteractorTest : SysuiTestCase() {
)
assertThat(executeDismissAction).isNull()
- // WHEN the keyguard is GONE
- transitionRepository.sendTransitionSteps(
- from = KeyguardState.LOCKSCREEN,
- to = KeyguardState.GONE,
- testScope,
- )
+ kosmos.setSceneTransition(Idle(Scenes.Gone))
+
assertThat(executeDismissAction).isNotNull()
}
@Test
- @EnableSceneContainer
- fun executeDismissAction_dismissKeyguardRequestWithoutImmediateDismissAction_scene_container() =
+ fun resetDismissAction() =
testScope.runTest {
- val executeDismissAction by collectLastValue(underTest.executeDismissAction)
-
- // WHEN a keyguard action will run after the keyguard is gone
- val onDismissAction = {}
+ kosmos.setSceneTransition(Idle(Scenes.Bouncer))
+ val resetDismissAction by collectLastValue(underTest.resetDismissAction)
keyguardRepository.setDismissAction(
DismissAction.RunAfterKeyguardGone(
- dismissAction = onDismissAction,
+ dismissAction = {},
onCancelAction = {},
message = "message",
willAnimateOnLockscreen = true,
)
)
- assertThat(executeDismissAction).isNull()
-
- kosmos.setSceneTransition(Idle(Scenes.Gone))
-
- assertThat(executeDismissAction).isNotNull()
+ assertThat(resetDismissAction).isNull()
+ kosmos.setSceneTransition(Idle(Scenes.Lockscreen))
+ assertThat(resetDismissAction).isEqualTo(Unit)
}
@Test
- fun resetDismissAction() =
+ fun doNotResetDismissActionOnUnlockedShade() =
testScope.runTest {
+ kosmos.setSceneTransition(Idle(Scenes.Bouncer))
+ kosmos.fakeAuthenticationRepository.setAuthenticationMethod(
+ AuthenticationMethodModel.None
+ )
val resetDismissAction by collectLastValue(underTest.resetDismissAction)
-
keyguardRepository.setDismissAction(
DismissAction.RunAfterKeyguardGone(
dismissAction = {},
@@ -220,12 +217,16 @@ class KeyguardDismissActionInteractorTest : SysuiTestCase() {
willAnimateOnLockscreen = true,
)
)
- transitionRepository.sendTransitionSteps(
- from = KeyguardState.LOCKSCREEN,
- to = KeyguardState.AOD,
- testScope
+ assertThat(resetDismissAction).isNull()
+
+ kosmos.setSceneTransition(
+ Transition(
+ from = Scenes.Bouncer,
+ to = Scenes.NotificationsShade,
+ progress = flowOf(1f),
+ )
)
- assertThat(resetDismissAction).isEqualTo(Unit)
+ assertThat(resetDismissAction).isNull()
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaControlPanelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaControlPanelTest.kt
index fbfe41f57927..521aa5a7352b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaControlPanelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaControlPanelTest.kt
@@ -69,6 +69,7 @@ import com.android.systemui.Flags
import com.android.systemui.SysuiTestCase
import com.android.systemui.bluetooth.BroadcastDialogController
import com.android.systemui.broadcast.BroadcastSender
+import com.android.systemui.communal.domain.interactor.CommunalSceneInteractor
import com.android.systemui.media.controls.MediaTestUtils
import com.android.systemui.media.controls.domain.pipeline.EMPTY_SMARTSPACE_MEDIA_DATA
import com.android.systemui.media.controls.domain.pipeline.MediaDataManager
@@ -211,6 +212,8 @@ public class MediaControlPanelTest : SysuiTestCase() {
@Mock private lateinit var activityIntentHelper: ActivityIntentHelper
@Mock private lateinit var lockscreenUserManager: NotificationLockscreenUserManager
+ @Mock private lateinit var communalSceneInteractor: CommunalSceneInteractor
+
@Mock private lateinit var recommendationViewHolder: RecommendationViewHolder
@Mock private lateinit var smartspaceAction: SmartspaceAction
private lateinit var smartspaceData: SmartspaceMediaData
@@ -271,6 +274,7 @@ public class MediaControlPanelTest : SysuiTestCase() {
logger,
keyguardStateController,
activityIntentHelper,
+ communalSceneInteractor,
lockscreenUserManager,
broadcastDialogController,
globalSettings,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt b/packages/SystemUI/tests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt
index 8d217fc3ad25..a5fbfb539354 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/screenshot/policy/WorkProfilePolicyTest.kt
@@ -17,11 +17,12 @@
package com.android.systemui.screenshot.policy
import android.content.ComponentName
-import androidx.test.ext.junit.runners.AndroidJUnit4
+import android.content.Context
import android.os.UserHandle
import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.platform.test.flag.junit.SetFlagsRule
+import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.screenshot.data.model.DisplayContentModel
import com.android.systemui.screenshot.data.model.DisplayContentScenarios.ActivityNames.FILES
@@ -49,16 +50,30 @@ import com.android.systemui.screenshot.policy.WorkProfilePolicy.Companion.WORK_T
import com.android.window.flags.Flags
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.runTest
+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
+import org.mockito.junit.MockitoRule
@RunWith(AndroidJUnit4::class)
class WorkProfilePolicyTest {
- @JvmField @Rule val setFlagsRule = SetFlagsRule()
+
+ @JvmField @Rule(order = 1) val setFlagsRule = SetFlagsRule()
+
+ @JvmField @Rule(order = 2) val mockitoRule: MockitoRule = MockitoJUnit.rule()
+
+ @Mock lateinit var mContext: Context
private val kosmos = Kosmos()
- private val policy = WorkProfilePolicy(kosmos.profileTypeRepository)
+ private lateinit var policy: WorkProfilePolicy
+
+ @Before
+ fun setUp() {
+ policy = WorkProfilePolicy(kosmos.profileTypeRepository, mContext)
+ }
/**
* There is no guarantee that every RootTaskInfo contains a non-empty list of child tasks. Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerImplTest.java
index 9a6423d96d4b..7ab3e292d7b1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerImplTest.java
@@ -61,7 +61,7 @@ public class QuickSettingsControllerImplTest extends QuickSettingsControllerImpl
public void testCloseQsSideEffects() {
enableSplitShade(true);
mQsController.setExpandImmediate(true);
- mQsController.setExpanded(true);
+ mQsController.setExpansionHeight(800);
mQsController.closeQs();
assertThat(mQsController.getExpanded()).isEqualTo(false);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/data/repository/StatusBarModeRepositoryImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/data/repository/StatusBarModeRepositoryImplTest.kt
index 7f981eec7ee1..6a5976eccd3a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/data/repository/StatusBarModeRepositoryImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/data/repository/StatusBarModeRepositoryImplTest.kt
@@ -29,6 +29,7 @@ import com.android.internal.statusbar.LetterboxDetails
import com.android.internal.view.AppearanceRegion
import com.android.systemui.SysuiTestCase
import com.android.systemui.coroutines.collectLastValue
+import com.android.systemui.kosmos.Kosmos
import com.android.systemui.statusbar.CommandQueue
import com.android.systemui.statusbar.data.model.StatusBarMode
import com.android.systemui.statusbar.phone.BoundsPair
@@ -36,7 +37,7 @@ import com.android.systemui.statusbar.phone.LetterboxAppearance
import com.android.systemui.statusbar.phone.LetterboxAppearanceCalculator
import com.android.systemui.statusbar.phone.StatusBarBoundsProvider
import com.android.systemui.statusbar.phone.fragment.dagger.StatusBarFragmentComponent
-import com.android.systemui.statusbar.phone.ongoingcall.data.repository.OngoingCallRepository
+import com.android.systemui.statusbar.phone.ongoingcall.data.repository.ongoingCallRepository
import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.argumentCaptor
@@ -55,6 +56,7 @@ import org.mockito.Mockito.verify
@SmallTest
@RunWith(AndroidJUnit4::class)
class StatusBarModeRepositoryImplTest : SysuiTestCase() {
+ private val kosmos = Kosmos()
private val testScope = TestScope()
private val commandQueue = mock<CommandQueue>()
private val letterboxAppearanceCalculator = mock<LetterboxAppearanceCalculator>()
@@ -63,7 +65,7 @@ class StatusBarModeRepositoryImplTest : SysuiTestCase() {
mock<StatusBarFragmentComponent>().also {
whenever(it.boundsProvider).thenReturn(statusBarBoundsProvider)
}
- private val ongoingCallRepository = OngoingCallRepository()
+ private val ongoingCallRepository = kosmos.ongoingCallRepository
private val underTest =
StatusBarModePerDisplayRepositoryImpl(
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowControllerTest.kt
index e738b616d227..c0057431f536 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowControllerTest.kt
@@ -25,6 +25,7 @@ import android.testing.TestableLooper
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.internal.logging.MetricsLogger
+import com.android.internal.logging.UiEventLogger
import com.android.internal.statusbar.IStatusBarService
import com.android.systemui.SysuiTestCase
import com.android.systemui.flags.FeatureFlags
@@ -108,6 +109,7 @@ class ExpandableNotificationRowControllerTest : SysuiTestCase() {
private val dragController: ExpandableNotificationRowDragController = mock()
private val dismissibilityProvider: NotificationDismissibilityProvider = mock()
private val statusBarService: IStatusBarService = mock()
+ private val uiEventLogger: UiEventLogger = mock()
private lateinit var controller: ExpandableNotificationRowController
@Before
@@ -147,7 +149,8 @@ class ExpandableNotificationRowControllerTest : SysuiTestCase() {
settingsController,
dragController,
dismissibilityProvider,
- statusBarService
+ statusBarService,
+ uiEventLogger
)
whenever(view.childrenContainer).thenReturn(childrenContainer)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentViewTest.kt
index 2bb610ac4449..699e8c30afde 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentViewTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentViewTest.kt
@@ -642,7 +642,7 @@ class NotificationContentViewTest : SysuiTestCase() {
return spy(NotificationContentView(mContext, /* attrs= */ null))
.apply {
- initialize(mPeopleNotificationIdentifier, mock(), mock(), mock(), mock())
+ initialize(mPeopleNotificationIdentifier, mock(), mock(), mock(), mock(), mock())
setContainingNotification(row)
setHeights(
/* smallHeight= */ contractedHeight,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
index c74a04f1c3e0..d7fdce2958f7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
@@ -54,6 +54,7 @@ import android.widget.RemoteViews;
import androidx.annotation.NonNull;
import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.UiEventLogger;
import com.android.internal.statusbar.IStatusBarService;
import com.android.keyguard.TestScopeProvider;
import com.android.systemui.TestableDependency;
@@ -671,7 +672,8 @@ public class NotificationTestHelper {
mock(SmartReplyConstants.class),
mock(SmartReplyController.class),
mFeatureFlags,
- mock(IStatusBarService.class));
+ mock(IStatusBarService.class),
+ mock(UiEventLogger.class));
row.setAboveShelfChangedListener(aboveShelf -> { });
mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmTest.kt
index b7ebebec7ca7..ad029d7e7ef2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithmTest.kt
@@ -92,9 +92,12 @@ class StackScrollAlgorithmTest : SysuiTestCase() {
private fun px(@DimenRes id: Int): Float =
testableResources.resources.getDimensionPixelSize(id).toFloat()
- private val bigGap = px(R.dimen.notification_section_divider_height)
- private val smallGap = px(R.dimen.notification_section_divider_height_lockscreen)
+ private val notifSectionDividerGap = px(R.dimen.notification_section_divider_height)
private val scrimPadding = px(R.dimen.notification_side_paddings)
+ private val baseZ by lazy { ambientState.baseZHeight }
+ private val headsUpZ = px(R.dimen.heads_up_pinned_elevation)
+ private val bigGap = notifSectionDividerGap
+ private val smallGap = px(R.dimen.notification_section_divider_height_lockscreen)
@Before
fun setUp() {
@@ -219,6 +222,8 @@ class StackScrollAlgorithmTest : SysuiTestCase() {
// Then: HUN is at the headsUpTop
assertThat(notificationRow.viewState.yTranslation).isEqualTo(headsUpTop)
+ // And: HUN is not elevated
+ assertThat(notificationRow.viewState.zTranslation).isEqualTo(baseZ)
// And: HUN has its full height
assertThat(notificationRow.viewState.height).isEqualTo(intrinsicHeight)
}
@@ -243,6 +248,8 @@ class StackScrollAlgorithmTest : SysuiTestCase() {
// Then: HUN is translated to the headsUpTop
assertThat(notificationRow.viewState.yTranslation).isEqualTo(headsUpTop)
+ // And: HUN is not elevated
+ assertThat(notificationRow.viewState.zTranslation).isEqualTo(baseZ)
// And: HUN is clipped to the available space
// newTranslation = max(150, -25)
// distToReal = 150 - (-25)
@@ -270,6 +277,8 @@ class StackScrollAlgorithmTest : SysuiTestCase() {
// Then: HUN is translated to the headsUpTop
assertThat(notificationRow.viewState.yTranslation).isEqualTo(headsUpTop)
+ // And: HUN fully elevated to baseZ + headsUpZ
+ assertThat(notificationRow.viewState.zTranslation).isEqualTo(baseZ + headsUpZ)
// And: HUN is clipped to its collapsed height
assertThat(notificationRow.viewState.height).isEqualTo(collapsedHeight)
}
@@ -279,16 +288,100 @@ class StackScrollAlgorithmTest : SysuiTestCase() {
fun resetViewStates_defaultHun_showingQS_hunTranslatedToHeadsUpTop() {
// Given: the shade is open and scrolled to the bottom to show the QuickSettings
val headsUpTop = 2000f
+ val intrinsicHunHeight = 300
fakeHunInShade(
headsUpTop = headsUpTop,
stackTop = 2600f, // stack scrolled below the screen
stackCutoff = 4000f,
collapsedHeight = 100,
- intrinsicHeight = 300
+ intrinsicHeight = intrinsicHunHeight,
)
whenever(notificationRow.isAboveShelf).thenReturn(true)
- resetViewStates_hunYTranslationIs(headsUpTop)
+ // When
+ stackScrollAlgorithm.resetViewStates(ambientState, 0)
+
+ // Then: HUN is translated to the headsUpTop
+ assertThat(notificationRow.viewState.yTranslation).isEqualTo(headsUpTop)
+ // And: HUN is elevated to baseZ + headsUpZ
+ assertThat(notificationRow.viewState.zTranslation).isEqualTo(baseZ + headsUpZ)
+ // And: HUN maintained its full height
+ assertThat(notificationRow.viewState.height).isEqualTo(intrinsicHunHeight)
+ }
+
+ @Test
+ @EnableSceneContainer
+ fun updateZTranslationForHunInStack_fullOverlap_hunHasFullElevation() {
+ // Given: the overlap equals to the top content padding
+ val contentTop = 280f
+ val contentTopPadding = 20f
+ val viewState =
+ ExpandableViewState().apply {
+ height = 100
+ yTranslation = 200f
+ }
+
+ // When
+ stackScrollAlgorithm.updateZTranslationForHunInStack(
+ /* scrollingContentTop = */ contentTop,
+ /* scrollingContentTopPadding */ contentTopPadding,
+ /* baseZ = */ 0f,
+ /* viewState = */ viewState,
+ )
+
+ // Then: HUN is fully elevated to baseZ + headsUpZ
+ assertThat(viewState.zTranslation).isEqualTo(headsUpZ)
+ }
+
+ @Test
+ @EnableSceneContainer
+ fun updateZTranslationForHunInStack_someOverlap_hunIsPartlyElevated() {
+ // Given: the overlap is bigger than zero, but less than the top content padding
+ val contentTop = 290f
+ val contentTopPadding = 20f
+ val viewState =
+ ExpandableViewState().apply {
+ height = 100
+ yTranslation = 200f
+ }
+
+ // When
+ stackScrollAlgorithm.updateZTranslationForHunInStack(
+ /* scrollingContentTop = */ contentTop,
+ /* scrollingContentTopPadding */ contentTopPadding,
+ /* baseZ = */ 0f,
+ /* viewState = */ viewState,
+ )
+
+ // Then: HUN is partly elevated
+ assertThat(viewState.zTranslation).apply {
+ isGreaterThan(0f)
+ isLessThan(headsUpZ)
+ }
+ }
+
+ @Test
+ @EnableSceneContainer
+ fun updateZTranslationForHunInStack_noOverlap_hunIsNotElevated() {
+ // Given: no overlap between the content and the HUN
+ val contentTop = 300f
+ val contentTopPadding = 20f
+ val viewState =
+ ExpandableViewState().apply {
+ height = 100
+ yTranslation = 200f
+ }
+
+ // When
+ stackScrollAlgorithm.updateZTranslationForHunInStack(
+ /* scrollingContentTop = */ contentTop,
+ /* scrollingContentTopPadding */ contentTopPadding,
+ /* baseZ = */ 0f,
+ /* viewState = */ viewState,
+ )
+
+ // Then: HUN is not elevated
+ assertThat(viewState.zTranslation).isEqualTo(0f)
}
@Test
@@ -964,6 +1057,7 @@ class StackScrollAlgorithmTest : SysuiTestCase() {
}
@Test
+ @DisableSceneContainer
fun shadeOpened_hunFullyOverlapsQqsPanel_hunShouldHaveFullShadow() {
// Given: shade is opened, yTranslation of HUN is 0,
// the height of HUN equals to the height of QQS Panel,
@@ -989,6 +1083,7 @@ class StackScrollAlgorithmTest : SysuiTestCase() {
}
@Test
+ @DisableSceneContainer
fun shadeOpened_hunPartiallyOverlapsQQS_hunShouldHavePartialShadow() {
// Given: shade is opened, yTranslation of HUN is greater than 0,
// the height of HUN is equal to the height of QQS Panel,
@@ -1419,14 +1514,16 @@ class StackScrollAlgorithmTest : SysuiTestCase() {
/** fakes the notification row under test, to be a HUN in a fully opened shade */
private fun fakeHunInShade(
- headsUpTop: Float,
collapsedHeight: Int,
intrinsicHeight: Int,
+ headsUpTop: Float,
+ headsUpBottom: Float = headsUpTop + intrinsicHeight, // assume all the space available
stackTop: Float,
stackCutoff: Float = 2000f,
fullStackHeight: Float = 3000f
) {
ambientState.headsUpTop = headsUpTop
+ ambientState.headsUpBottom = headsUpBottom
ambientState.stackTop = stackTop
ambientState.stackCutoff = stackCutoff
@@ -1438,6 +1535,7 @@ class StackScrollAlgorithmTest : SysuiTestCase() {
}
stackScrollAlgorithm.setIsExpanded(true)
+ whenever(notificationRow.headerVisibleAmount).thenReturn(1.0f)
whenever(notificationRow.mustStayOnScreen()).thenReturn(true)
whenever(notificationRow.isHeadsUp).thenReturn(true)
whenever(notificationRow.collapsedHeight).thenReturn(collapsedHeight)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java
index 80b9e800f445..c5238194d0a4 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarRemoteInputCallbackTest.java
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.when;
import static org.mockito.internal.verification.VerificationModeFactory.times;
import android.content.Intent;
+import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.testing.TestableLooper;
import android.view.View;
@@ -111,8 +112,8 @@ public class StatusBarRemoteInputCallbackTest extends SysuiTestCase {
verify(mStatusBarKeyguardViewManager).showBouncer(true);
}
-
@Test
+ @DisableFlags(ExpandHeadsUpOnInlineReply.FLAG_NAME)
public void onMakeExpandedVisibleForRemoteInput_collapsedGroup_expandGroupExpansion() {
// GIVEN
final Runnable onExpandedVisibleRunner = mock(Runnable.class);
@@ -137,6 +138,7 @@ public class StatusBarRemoteInputCallbackTest extends SysuiTestCase {
}
@Test
+ @DisableFlags(ExpandHeadsUpOnInlineReply.FLAG_NAME)
public void onMakeExpandedVisibleForRemoteInput_expandedGroup_setUserExpandedTrue() {
// GIVEN
final Runnable onExpandedVisibleRunner = mock(Runnable.class);
@@ -161,6 +163,7 @@ public class StatusBarRemoteInputCallbackTest extends SysuiTestCase {
}
@Test
+ @DisableFlags(ExpandHeadsUpOnInlineReply.FLAG_NAME)
public void onMakeExpandedVisibleForRemoteInput_nonGroupNotifications_setUserExpandedTrue() {
// GIVEN
final Runnable onExpandedVisibleRunner = mock(Runnable.class);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt
index 5174ec7189ee..8f49ba3b2154 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt
@@ -31,19 +31,22 @@ import android.view.View
import android.widget.LinearLayout
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
-import com.android.internal.logging.testing.UiEventLoggerFake
import com.android.systemui.Flags.FLAG_STATUS_BAR_SCREEN_SHARING_CHIPS
import com.android.systemui.SysuiTestCase
import com.android.systemui.dump.DumpManager
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.log.logcatLogBuffer
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.res.R
+import com.android.systemui.statusbar.StatusBarIconView
import com.android.systemui.statusbar.data.repository.FakeStatusBarModeRepository
import com.android.systemui.statusbar.gesture.SwipeStatusBarAwayGestureHandler
+import com.android.systemui.statusbar.notification.icon.IconPack
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener
-import com.android.systemui.statusbar.phone.ongoingcall.data.repository.OngoingCallRepository
+import com.android.systemui.statusbar.phone.ongoingcall.data.repository.ongoingCallRepository
import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
import com.android.systemui.statusbar.window.StatusBarWindowController
import com.android.systemui.util.concurrency.FakeExecutor
@@ -84,13 +87,13 @@ private const val PROC_STATE_INVISIBLE = ActivityManager.PROCESS_STATE_FOREGROUN
@TestableLooper.RunWithLooper
@OptIn(ExperimentalCoroutinesApi::class)
class OngoingCallControllerTest : SysuiTestCase() {
+ private val kosmos = Kosmos()
private val clock = FakeSystemClock()
private val mainExecutor = FakeExecutor(clock)
- private val uiEventLoggerFake = UiEventLoggerFake()
private val testScope = TestScope()
private val statusBarModeRepository = FakeStatusBarModeRepository()
- private val ongoingCallRepository = OngoingCallRepository()
+ private val ongoingCallRepository = kosmos.ongoingCallRepository
private lateinit var controller: OngoingCallController
private lateinit var notifCollectionListener: NotifCollectionListener
@@ -124,11 +127,11 @@ class OngoingCallControllerTest : SysuiTestCase() {
mockActivityStarter,
mainExecutor,
mockIActivityManager,
- OngoingCallLogger(uiEventLoggerFake),
DumpManager(),
mockStatusBarWindowController,
mockSwipeStatusBarAwayGestureHandler,
statusBarModeRepository,
+ logcatLogBuffer("OngoingCallControllerTest"),
)
controller.start()
controller.addCallback(mockOngoingCallListener)
@@ -253,6 +256,139 @@ class OngoingCallControllerTest : SysuiTestCase() {
.isGreaterThan(0)
}
+ @Test
+ @DisableFlags(FLAG_STATUS_BAR_SCREEN_SHARING_CHIPS)
+ fun onEntryUpdated_notifIconsNotSet_noIconInChip() {
+ val notification = createOngoingCallNotifEntry()
+
+ notifCollectionListener.onEntryUpdated(notification)
+
+ assertThat(chipView.findViewById<View>(R.id.ongoing_activity_chip_icon)).isNull()
+ }
+
+ @Test
+ @DisableFlags(FLAG_STATUS_BAR_SCREEN_SHARING_CHIPS)
+ fun onEntryUpdated_notifIconsSetToNull_noIconInChip() {
+ val notification = createOngoingCallNotifEntry()
+ notification.icons = IconPack.buildEmptyPack(/* fromSource= */ null)
+
+ notifCollectionListener.onEntryUpdated(notification)
+
+ assertThat(chipView.findViewById<View>(R.id.ongoing_activity_chip_icon)).isNull()
+ }
+
+ @Test
+ @DisableFlags(FLAG_STATUS_BAR_SCREEN_SHARING_CHIPS)
+ fun onEntryUpdated_notifIconsIncluded_statusBarChipIconUsed() {
+ val notification = createOngoingCallNotifEntry()
+
+ val statusBarChipIconView =
+ StatusBarIconView(
+ context,
+ /* slot= */ "OngoingCallControllerTest",
+ notification.sbn,
+ )
+ notification.icons =
+ IconPack.buildPack(
+ /* statusBarIcon= */ mock(StatusBarIconView::class.java),
+ statusBarChipIconView,
+ /* shelfIcon= */ mock(StatusBarIconView::class.java),
+ /* aodIcon= */ mock(StatusBarIconView::class.java),
+ /* source= */ null,
+ )
+
+ notifCollectionListener.onEntryUpdated(notification)
+
+ assertThat(chipView.findViewById<View>(R.id.ongoing_activity_chip_icon))
+ .isEqualTo(statusBarChipIconView)
+ assertThat(statusBarChipIconView.contentDescription)
+ .isEqualTo(context.resources.getString(R.string.ongoing_phone_call_content_description))
+ }
+
+ @Test
+ @DisableFlags(FLAG_STATUS_BAR_SCREEN_SHARING_CHIPS)
+ fun onEntryUpdated_newNotifIcon_newIconUsed() {
+ val notification = createOngoingCallNotifEntry()
+
+ val firstStatusBarChipIconView =
+ StatusBarIconView(
+ context,
+ /* slot= */ "OngoingCallControllerTest",
+ notification.sbn,
+ )
+ notification.icons =
+ IconPack.buildPack(
+ /* statusBarIcon= */ mock(StatusBarIconView::class.java),
+ firstStatusBarChipIconView,
+ /* shelfIcon= */ mock(StatusBarIconView::class.java),
+ /* aodIcon= */ mock(StatusBarIconView::class.java),
+ /* source= */ null,
+ )
+ notifCollectionListener.onEntryUpdated(notification)
+
+ assertThat(chipView.findViewById<View>(R.id.ongoing_activity_chip_icon))
+ .isEqualTo(firstStatusBarChipIconView)
+
+ // WHEN the notification is updated with a new icon
+ val secondStatusBarChipIconView =
+ StatusBarIconView(
+ context,
+ /* slot= */ "OngoingCallControllerTestTheSecond",
+ notification.sbn,
+ )
+ notification.icons =
+ IconPack.buildPack(
+ /* statusBarIcon= */ mock(StatusBarIconView::class.java),
+ secondStatusBarChipIconView,
+ /* shelfIcon= */ mock(StatusBarIconView::class.java),
+ /* aodIcon= */ mock(StatusBarIconView::class.java),
+ /* source= */ null,
+ )
+ notifCollectionListener.onEntryUpdated(notification)
+
+ // THEN the new icon is used
+ assertThat(chipView.findViewById<View>(R.id.ongoing_activity_chip_icon))
+ .isEqualTo(secondStatusBarChipIconView)
+ }
+
+ @Test
+ @DisableFlags(FLAG_STATUS_BAR_SCREEN_SHARING_CHIPS)
+ fun chipViewReinflated_iconViewMovedToNewChip() {
+ val notification = createOngoingCallNotifEntry()
+ val statusBarChipIconView =
+ StatusBarIconView(
+ context,
+ /* slot= */ "OngoingCallControllerTest",
+ notification.sbn,
+ )
+ notification.icons =
+ IconPack.buildPack(
+ /* statusBarIcon= */ mock(StatusBarIconView::class.java),
+ statusBarChipIconView,
+ /* shelfIcon= */ mock(StatusBarIconView::class.java),
+ /* aodIcon= */ mock(StatusBarIconView::class.java),
+ /* source= */ null,
+ )
+
+ notifCollectionListener.onEntryUpdated(notification)
+
+ assertThat(chipView.findViewById<View>(R.id.ongoing_activity_chip_icon))
+ .isEqualTo(statusBarChipIconView)
+
+ // WHEN we get a new chip view
+ lateinit var newChipView: View
+ TestableLooper.get(this).runWithLooper {
+ newChipView =
+ LayoutInflater.from(mContext).inflate(R.layout.ongoing_activity_chip, null)
+ }
+ controller.setChipView(newChipView)
+
+ // THEN the icon is detached from the old view and attached to the new one
+ assertThat(chipView.findViewById<View>(R.id.ongoing_activity_chip_icon)).isNull()
+ assertThat(newChipView.findViewById<View>(R.id.ongoing_activity_chip_icon))
+ .isEqualTo(statusBarChipIconView)
+ }
+
/** Regression test for b/194731244. */
@Test
fun onEntryUpdated_calledManyTimes_uidObserverOnlyRegisteredOnce() {
@@ -544,18 +680,6 @@ class OngoingCallControllerTest : SysuiTestCase() {
verify(mockOngoingCallListener).onOngoingCallStateChanged(anyBoolean())
}
- @Test
- @DisableFlags(FLAG_STATUS_BAR_SCREEN_SHARING_CHIPS)
- fun chipClicked_clickEventLogged() {
- notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
-
- chipView.performClick()
-
- assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
- assertThat(uiEventLoggerFake.eventId(0))
- .isEqualTo(OngoingCallLogger.OngoingCallEvents.ONGOING_CALL_CLICKED.id)
- }
-
/** Regression test for b/212467440. */
@Test
@DisableFlags(FLAG_STATUS_BAR_SCREEN_SHARING_CHIPS)
@@ -571,18 +695,6 @@ class OngoingCallControllerTest : SysuiTestCase() {
}
@Test
- fun notifyChipVisibilityChanged_visibleEventLogged() {
- controller.notifyChipVisibilityChanged(true)
-
- assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
- assertThat(uiEventLoggerFake.eventId(0))
- .isEqualTo(OngoingCallLogger.OngoingCallEvents.ONGOING_CALL_VISIBLE.id)
- }
-
- // Other tests for notifyChipVisibilityChanged are in [OngoingCallLogger], since
- // [OngoingCallController.notifyChipVisibilityChanged] just delegates to that class.
-
- @Test
@DisableFlags(FLAG_STATUS_BAR_SCREEN_SHARING_CHIPS)
fun callNotificationAdded_chipIsClickable() {
notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLoggerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLoggerTest.kt
deleted file mode 100644
index 5ce936d11a64..000000000000
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallLoggerTest.kt
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.phone.ongoingcall
-
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import androidx.test.filters.SmallTest
-import com.android.internal.logging.testing.UiEventLoggerFake
-import com.android.systemui.SysuiTestCase
-import com.google.common.truth.Truth.assertThat
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@SmallTest
-@RunWith(AndroidJUnit4::class)
-class OngoingCallLoggerTest : SysuiTestCase() {
- private val uiEventLoggerFake = UiEventLoggerFake()
- private val ongoingCallLogger = OngoingCallLogger(uiEventLoggerFake)
-
- @Test
- fun logChipClicked_clickEventLogged() {
- ongoingCallLogger.logChipClicked()
-
- assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
- assertThat(uiEventLoggerFake.eventId(0))
- .isEqualTo(OngoingCallLogger.OngoingCallEvents.ONGOING_CALL_CLICKED.id)
- }
-
- @Test
- fun logChipVisibilityChanged_changeFromInvisibleToVisible_visibleEventLogged() {
- ongoingCallLogger.logChipVisibilityChanged(false)
- ongoingCallLogger.logChipVisibilityChanged(true)
-
- assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
- assertThat(uiEventLoggerFake.eventId(0))
- .isEqualTo(OngoingCallLogger.OngoingCallEvents.ONGOING_CALL_VISIBLE.id)
- }
-
- @Test
- fun logChipVisibilityChanged_changeFromVisibleToInvisible_eventNotLogged() {
- // Setting the chip to visible here will trigger a log
- ongoingCallLogger.logChipVisibilityChanged(true)
- assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
-
- ongoingCallLogger.logChipVisibilityChanged(false)
-
- // Expect that there were no new logs
- assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
- }
-
- @Test
- fun logChipVisibilityChanged_visibleThenVisibleAgain_eventNotLogged() {
- // Setting the chip to visible here will trigger a log
- ongoingCallLogger.logChipVisibilityChanged(true)
- assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
-
- ongoingCallLogger.logChipVisibilityChanged(true)
-
- // Expect that there were no new logs
- assertThat(uiEventLoggerFake.numLogs()).isEqualTo(1)
- }
-}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepositoryTest.kt
index 27c2366ebdb5..cbb8fe82eff1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepositoryTest.kt
@@ -19,6 +19,7 @@ package com.android.systemui.statusbar.phone.ongoingcall.data.repository
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
+import com.android.systemui.kosmos.Kosmos
import com.android.systemui.statusbar.phone.ongoingcall.shared.model.OngoingCallModel
import com.google.common.truth.Truth.assertThat
import org.junit.Test
@@ -27,7 +28,8 @@ import org.junit.runner.RunWith
@SmallTest
@RunWith(AndroidJUnit4::class)
class OngoingCallRepositoryTest : SysuiTestCase() {
- private val underTest = OngoingCallRepository()
+ private val kosmos = Kosmos()
+ private val underTest = kosmos.ongoingCallRepository
@Test
fun hasOngoingCall_matchesSet() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt
index 8fd0b31b82f3..9d83d5fbaed9 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionRepositoryTest.kt
@@ -59,6 +59,7 @@ import android.telephony.TelephonyManager.DATA_UNKNOWN
import android.telephony.TelephonyManager.ERI_OFF
import android.telephony.TelephonyManager.ERI_ON
import android.telephony.TelephonyManager.EXTRA_CARRIER_ID
+import android.telephony.TelephonyManager.EXTRA_DATA_SPN
import android.telephony.TelephonyManager.EXTRA_PLMN
import android.telephony.TelephonyManager.EXTRA_SHOW_PLMN
import android.telephony.TelephonyManager.EXTRA_SHOW_SPN
@@ -85,7 +86,6 @@ import com.android.systemui.statusbar.pipeline.mobile.data.model.SubscriptionMod
import com.android.systemui.statusbar.pipeline.mobile.data.model.SystemUiCarrierConfig
import com.android.systemui.statusbar.pipeline.mobile.data.model.SystemUiCarrierConfigTest.Companion.configWithOverride
import com.android.systemui.statusbar.pipeline.mobile.data.model.SystemUiCarrierConfigTest.Companion.createTestConfig
-import com.android.systemui.statusbar.pipeline.mobile.data.model.toNetworkNameModel
import com.android.systemui.statusbar.pipeline.mobile.data.repository.FakeMobileConnectionsRepository
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository.Companion.DEFAULT_NUM_LEVELS
import com.android.systemui.statusbar.pipeline.mobile.data.repository.prod.MobileTelephonyHelpers.signalStrength
@@ -93,8 +93,6 @@ import com.android.systemui.statusbar.pipeline.mobile.data.repository.prod.Mobil
import com.android.systemui.statusbar.pipeline.mobile.util.FakeMobileMappingsProxy
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
import com.android.systemui.statusbar.pipeline.shared.data.model.toMobileDataActivityModel
-import com.android.systemui.util.mockito.any
-import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.mockito.withArgCaptor
@@ -112,6 +110,8 @@ import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
@Suppress("EXPERIMENTAL_IS_NOT_ENABLED")
@OptIn(ExperimentalCoroutinesApi::class)
@@ -815,9 +815,11 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
val intent = spnIntent()
val captor = argumentCaptor<BroadcastReceiver>()
verify(context).registerReceiver(captor.capture(), any())
- captor.value!!.onReceive(context, intent)
+ captor.lastValue.onReceive(context, intent)
- assertThat(latest).isEqualTo(intent.toNetworkNameModel(SEP))
+ // spnIntent() sets all values to true and test strings
+ assertThat(latest)
+ .isEqualTo(NetworkNameModel.IntentDerived("$PLMN$SEP$SPN$SEP$DATA_SPN"))
job.cancel()
}
@@ -831,17 +833,19 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
val intent = spnIntent()
val captor = argumentCaptor<BroadcastReceiver>()
verify(context).registerReceiver(captor.capture(), any())
- captor.value!!.onReceive(context, intent)
+ captor.lastValue.onReceive(context, intent)
- assertThat(latest).isEqualTo(intent.toNetworkNameModel(SEP))
+ assertThat(latest)
+ .isEqualTo(NetworkNameModel.IntentDerived("$PLMN$SEP$SPN$SEP$DATA_SPN"))
// WHEN an intent with a different subId is sent
val wrongSubIntent = spnIntent(subId = 101)
- captor.value!!.onReceive(context, wrongSubIntent)
+ captor.lastValue.onReceive(context, wrongSubIntent)
// THEN the previous intent's name is still used
- assertThat(latest).isEqualTo(intent.toNetworkNameModel(SEP))
+ assertThat(latest)
+ .isEqualTo(NetworkNameModel.IntentDerived("$PLMN$SEP$SPN$SEP$DATA_SPN"))
job.cancel()
}
@@ -855,9 +859,10 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
val intent = spnIntent()
val captor = argumentCaptor<BroadcastReceiver>()
verify(context).registerReceiver(captor.capture(), any())
- captor.value!!.onReceive(context, intent)
+ captor.lastValue.onReceive(context, intent)
- assertThat(latest).isEqualTo(intent.toNetworkNameModel(SEP))
+ assertThat(latest)
+ .isEqualTo(NetworkNameModel.IntentDerived("$PLMN$SEP$SPN$SEP$DATA_SPN"))
val intentWithoutInfo =
spnIntent(
@@ -865,7 +870,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
showPlmn = false,
)
- captor.value!!.onReceive(context, intentWithoutInfo)
+ captor.lastValue.onReceive(context, intentWithoutInfo)
assertThat(latest).isEqualTo(DEFAULT_NAME_MODEL)
@@ -884,10 +889,88 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
val intent = spnIntent()
val captor = argumentCaptor<BroadcastReceiver>()
verify(context).registerReceiver(captor.capture(), any())
- captor.value!!.onReceive(context, intent)
+ captor.lastValue.onReceive(context, intent)
// The value is still there despite no active subscribers
- assertThat(underTest.networkName.value).isEqualTo(intent.toNetworkNameModel(SEP))
+ assertThat(underTest.networkName.value)
+ .isEqualTo(NetworkNameModel.IntentDerived("$PLMN$SEP$SPN$SEP$DATA_SPN"))
+ }
+
+ @Test
+ fun networkName_allFieldsSet() =
+ testScope.runTest {
+ val latest by collectLastValue(underTest.networkName)
+ val captor = argumentCaptor<BroadcastReceiver>()
+ verify(context).registerReceiver(captor.capture(), any())
+
+ val intent =
+ spnIntent(
+ subId = SUB_1_ID,
+ showSpn = true,
+ spn = SPN,
+ dataSpn = null,
+ showPlmn = true,
+ plmn = PLMN,
+ )
+ captor.lastValue.onReceive(context, intent)
+ assertThat(latest).isEqualTo(NetworkNameModel.IntentDerived("$PLMN$SEP$SPN"))
+ }
+
+ @Test
+ fun networkName_showPlmn_plmnNotNull_showSpn_spnNull_dataSpnNotNull() =
+ testScope.runTest {
+ val latest by collectLastValue(underTest.networkName)
+ val captor = argumentCaptor<BroadcastReceiver>()
+ verify(context).registerReceiver(captor.capture(), any())
+ val intent =
+ spnIntent(
+ subId = SUB_1_ID,
+ showSpn = true,
+ spn = null,
+ dataSpn = DATA_SPN,
+ showPlmn = true,
+ plmn = PLMN,
+ )
+ captor.lastValue.onReceive(context, intent)
+ assertThat(latest).isEqualTo(NetworkNameModel.IntentDerived("$PLMN$SEP$DATA_SPN"))
+ }
+
+ @Test
+ fun networkName_showPlmn_noShowSPN() =
+ testScope.runTest {
+ val latest by collectLastValue(underTest.networkName)
+ val captor = argumentCaptor<BroadcastReceiver>()
+ verify(context).registerReceiver(captor.capture(), any())
+ val intent =
+ spnIntent(
+ subId = SUB_1_ID,
+ showSpn = false,
+ spn = SPN,
+ dataSpn = DATA_SPN,
+ showPlmn = true,
+ plmn = PLMN,
+ )
+ captor.lastValue.onReceive(context, intent)
+ assertThat(latest).isEqualTo(NetworkNameModel.IntentDerived("$PLMN"))
+ }
+
+ @Test
+ fun networkName_showPlmn_plmnNull_showSpn() =
+ testScope.runTest {
+ val latest by collectLastValue(underTest.networkName)
+ val captor = argumentCaptor<BroadcastReceiver>()
+ verify(context).registerReceiver(captor.capture(), any())
+ val intent =
+ spnIntent(
+ subId = SUB_1_ID,
+ showSpn = true,
+ spn = SPN,
+ dataSpn = DATA_SPN,
+ showPlmn = true,
+ plmn = null,
+ )
+ captor.lastValue.onReceive(context, intent)
+ assertThat(latest).isEqualTo(NetworkNameModel.IntentDerived("$SPN$SEP$DATA_SPN"))
}
@Test
@@ -1128,14 +1211,16 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
private fun spnIntent(
subId: Int = SUB_1_ID,
showSpn: Boolean = true,
- spn: String = SPN,
+ spn: String? = SPN,
+ dataSpn: String? = DATA_SPN,
showPlmn: Boolean = true,
- plmn: String = PLMN,
+ plmn: String? = PLMN,
): Intent =
Intent(TelephonyManager.ACTION_SERVICE_PROVIDERS_UPDATED).apply {
putExtra(EXTRA_SUBSCRIPTION_INDEX, subId)
putExtra(EXTRA_SHOW_SPN, showSpn)
putExtra(EXTRA_SPN, spn)
+ putExtra(EXTRA_DATA_SPN, dataSpn)
putExtra(EXTRA_SHOW_PLMN, showPlmn)
putExtra(EXTRA_PLMN, plmn)
}
@@ -1148,6 +1233,7 @@ class MobileConnectionRepositoryTest : SysuiTestCase() {
private const val SEP = "-"
private const val SPN = "testSpn"
+ private const val DATA_SPN = "testDataSpn"
private const val PLMN = "testPlmn"
}
}
diff --git a/packages/SystemUI/tests/utils/src/android/hardware/input/FakeInputManager.kt b/packages/SystemUI/tests/utils/src/android/hardware/input/FakeInputManager.kt
index c4f93d107dbb..6e7c05ca3f8f 100644
--- a/packages/SystemUI/tests/utils/src/android/hardware/input/FakeInputManager.kt
+++ b/packages/SystemUI/tests/utils/src/android/hardware/input/FakeInputManager.kt
@@ -19,6 +19,8 @@ package android.hardware.input
import android.view.InputDevice
import android.view.KeyCharacterMap
import android.view.KeyCharacterMap.VIRTUAL_KEYBOARD
+import android.view.KeyEvent
+import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.mockito.whenever
import org.mockito.ArgumentMatchers.anyInt
@@ -38,6 +40,12 @@ class FakeInputManager {
.build()
private val devices = mutableMapOf<Int, InputDevice>(VIRTUAL_KEYBOARD to virtualKeyboard)
+ private val allKeyCodes = (0..KeyEvent.MAX_KEYCODE)
+ private val supportedKeyCodesByDeviceId =
+ mutableMapOf(
+ // Mark all keys supported by default
+ VIRTUAL_KEYBOARD to allKeyCodes.toMutableSet()
+ )
val inputManager =
mock<InputManager> {
@@ -61,13 +69,31 @@ class FakeInputManager {
whenever(enableInputDevice(anyInt())).thenAnswer { invocation ->
setDeviceEnabled(invocation, enabled = true)
}
+ whenever(deviceHasKeys(any(), any())).thenAnswer { invocation ->
+ val deviceId = invocation.arguments[0] as Int
+ val keyCodes = invocation.arguments[1] as IntArray
+ val supportedKeyCodes = supportedKeyCodesByDeviceId[deviceId]!!
+ return@thenAnswer keyCodes.map { supportedKeyCodes.contains(it) }.toBooleanArray()
+ }
}
+ fun addPhysicalKeyboardIfNotPresent(deviceId: Int, enabled: Boolean = true) {
+ if (devices.containsKey(deviceId)) {
+ return
+ }
+ addPhysicalKeyboard(deviceId, enabled)
+ }
+
fun addPhysicalKeyboard(id: Int, enabled: Boolean = true) {
check(id > 0) { "Physical keyboard ids have to be > 0" }
addKeyboard(id, enabled)
}
+ fun removeKeysFromKeyboard(deviceId: Int, vararg keyCodes: Int) {
+ addPhysicalKeyboardIfNotPresent(deviceId)
+ supportedKeyCodesByDeviceId[deviceId]!!.removeAll(keyCodes.asList())
+ }
+
private fun addKeyboard(id: Int, enabled: Boolean = true) {
devices[id] =
InputDevice.Builder()
@@ -77,6 +103,7 @@ class FakeInputManager {
.setEnabled(enabled)
.setKeyCharacterMap(keyCharacterMap)
.build()
+ supportedKeyCodesByDeviceId[id] = allKeyCodes.toMutableSet()
}
private fun InputDevice.copy(
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/SysuiTestCaseExt.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/SysuiTestCaseExt.kt
index 46259a6964cd..d3dccb021ff8 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/SysuiTestCaseExt.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/SysuiTestCaseExt.kt
@@ -20,3 +20,11 @@ import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.testCase
fun SysuiTestCase.testKosmos(): Kosmos = Kosmos().apply { testCase = this@testKosmos }
+
+/** Run [f] on the main thread and return its result once completed. */
+fun <T : Any> SysuiTestCase.runOnMainThreadAndWaitForIdleSync(f: () -> T): T {
+ lateinit var result: T
+ context.mainExecutor.execute { result = f() }
+ waitForIdleSync()
+ return result
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/education/data/repository/FakeContextualEducationRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/education/data/repository/FakeContextualEducationRepository.kt
index 5410882c9283..bade91a55534 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/education/data/repository/FakeContextualEducationRepository.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/education/data/repository/FakeContextualEducationRepository.kt
@@ -28,11 +28,15 @@ class FakeContextualEducationRepository(private val clock: Clock) : ContextualEd
private val userGestureMap = mutableMapOf<Int, GestureEduModel>()
private val _gestureEduModels = MutableStateFlow(GestureEduModel())
private val gestureEduModelsFlow = _gestureEduModels.asStateFlow()
+ private var currentUser: Int = 0
override fun setUser(userId: Int) {
if (!userGestureMap.contains(userId)) {
userGestureMap[userId] = GestureEduModel()
}
+ // save data of current user to the map
+ userGestureMap[currentUser] = _gestureEduModels.value
+ // switch to data of new user
_gestureEduModels.value = userGestureMap[userId]!!
}
@@ -41,13 +45,15 @@ class FakeContextualEducationRepository(private val clock: Clock) : ContextualEd
}
override suspend fun incrementSignalCount(gestureType: GestureType) {
+ val originalModel = _gestureEduModels.value
_gestureEduModels.value =
- GestureEduModel(
+ originalModel.copy(
signalCount = _gestureEduModels.value.signalCount + 1,
)
}
override suspend fun updateShortcutTriggerTime(gestureType: GestureType) {
- _gestureEduModels.value = GestureEduModel(lastShortcutTriggeredTime = clock.instant())
+ val originalModel = _gestureEduModels.value
+ _gestureEduModels.value = originalModel.copy(lastShortcutTriggeredTime = clock.instant())
}
}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/education/domain/interactor/ContextualEducationInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/education/domain/interactor/ContextualEducationInteractorKosmos.kt
index 5b2dc2b39e27..a7b322b5a86d 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/education/domain/interactor/ContextualEducationInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/education/domain/interactor/ContextualEducationInteractorKosmos.kt
@@ -18,6 +18,7 @@ package com.android.systemui.education.domain.interactor
import com.android.systemui.education.data.repository.contextualEducationRepository
import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.kosmos.testDispatcher
import com.android.systemui.kosmos.testScope
import com.android.systemui.user.domain.interactor.selectedUserInteractor
@@ -25,6 +26,7 @@ val Kosmos.contextualEducationInteractor by
Kosmos.Fixture {
ContextualEducationInteractor(
backgroundScope = testScope.backgroundScope,
+ backgroundDispatcher = testDispatcher,
repository = contextualEducationRepository,
selectedUserInteractor = selectedUserInteractor
)
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractorKosmos.kt
index 8f84e0482b83..fb4e9012f79d 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/education/domain/interactor/KeyboardTouchpadEduInteractorKosmos.kt
@@ -19,6 +19,14 @@ package com.android.systemui.education.domain.interactor
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.testScope
+var Kosmos.keyboardTouchpadEduInteractor by
+ Kosmos.Fixture {
+ KeyboardTouchpadEduInteractor(
+ backgroundScope = testScope.backgroundScope,
+ contextualEducationInteractor = contextualEducationInteractor
+ )
+ }
+
var Kosmos.keyboardTouchpadEduStatsInteractor by
Kosmos.Fixture {
KeyboardTouchpadEduStatsInteractorImpl(
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperTestHelper.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperTestHelper.kt
index 6ca5cd81b665..8b45662e57e6 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperTestHelper.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyboard/shortcut/data/repository/ShortcutHelperTestHelper.kt
@@ -95,7 +95,7 @@ class ShortcutHelperTestHelper(
}
fun toggle(deviceId: Int) {
- fakeInputManager.addPhysicalKeyboard(deviceId)
+ fakeInputManager.addPhysicalKeyboardIfNotPresent(deviceId)
fakeCommandQueue.doForEachCallback { it.toggleKeyboardShortcutsMenu(deviceId) }
}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyboard/shortcut/data/source/FakeKeyboardShortcutGroupsSource.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyboard/shortcut/data/source/FakeKeyboardShortcutGroupsSource.kt
index 2bab1a4b32cf..d4cb6ffe2516 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyboard/shortcut/data/source/FakeKeyboardShortcutGroupsSource.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyboard/shortcut/data/source/FakeKeyboardShortcutGroupsSource.kt
@@ -24,6 +24,10 @@ class FakeKeyboardShortcutGroupsSource : KeyboardShortcutGroupsSource {
override suspend fun shortcutGroups(deviceId: Int): List<KeyboardShortcutGroup> = groups
+ fun setGroups(vararg groups: KeyboardShortcutGroup) {
+ this.groups = groups.asList()
+ }
+
fun setGroups(groups: List<KeyboardShortcutGroup>) {
this.groups = groups
}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorKosmos.kt
index 2c6d44f10152..fe156e2037cf 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorKosmos.kt
@@ -16,9 +16,11 @@
package com.android.systemui.keyguard.domain.interactor
+import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor
import com.android.systemui.keyguard.data.repository.keyguardRepository
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.testScope
+import com.android.systemui.scene.domain.interactor.sceneInteractor
import kotlinx.coroutines.ExperimentalCoroutinesApi
@ExperimentalCoroutinesApi
@@ -29,5 +31,7 @@ val Kosmos.keyguardDismissActionInteractor by
transitionInteractor = keyguardTransitionInteractor,
dismissInteractor = keyguardDismissInteractor,
applicationScope = testScope.backgroundScope,
+ sceneInteractor = sceneInteractor,
+ deviceEntryInteractor = deviceEntryInteractor,
)
}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/startable/SceneContainerStartableKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/startable/SceneContainerStartableKosmos.kt
index 03a42bc4178e..8e76a0bf5a13 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/startable/SceneContainerStartableKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/scene/domain/startable/SceneContainerStartableKosmos.kt
@@ -34,6 +34,7 @@ import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.Kosmos.Fixture
import com.android.systemui.kosmos.testScope
import com.android.systemui.model.sysUiState
+import com.android.systemui.plugins.statusbar.statusBarStateController
import com.android.systemui.power.domain.interactor.powerInteractor
import com.android.systemui.scene.domain.interactor.sceneBackInteractor
import com.android.systemui.scene.domain.interactor.sceneContainerOcclusionInteractor
@@ -46,6 +47,7 @@ import com.android.systemui.statusbar.notification.stack.domain.interactor.heads
import com.android.systemui.statusbar.notificationShadeWindowController
import com.android.systemui.statusbar.phone.centralSurfacesOptional
import com.android.systemui.statusbar.policy.domain.interactor.deviceProvisioningInteractor
+import com.android.systemui.statusbar.sysuiStatusBarStateController
val Kosmos.sceneContainerStartable by Fixture {
SceneContainerStartable(
@@ -77,5 +79,6 @@ val Kosmos.sceneContainerStartable by Fixture {
windowMgrLockscreenVisInteractor = windowManagerLockscreenVisibilityInteractor,
keyguardEnabledInteractor = keyguardEnabledInteractor,
dismissCallbackRegistry = dismissCallbackRegistry,
+ statusBarStateController = sysuiStatusBarStateController,
)
}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt
index 16dc50f96676..b8dec3146a47 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowBuilder.kt
@@ -27,6 +27,7 @@ import android.provider.DeviceConfig
import androidx.core.os.bundleOf
import com.android.internal.config.sysui.SystemUiDeviceConfigFlags
import com.android.internal.logging.MetricsLogger
+import com.android.internal.logging.UiEventLogger
import com.android.internal.statusbar.IStatusBarService
import com.android.systemui.TestableDependency
import com.android.systemui.classifier.FalsingManagerFake
@@ -357,7 +358,8 @@ class ExpandableNotificationRowBuilder(
mSmartReplyConstants,
mSmartReplyController,
featureFlags,
- Mockito.mock(IStatusBarService::class.java)
+ Mockito.mock(IStatusBarService::class.java),
+ Mockito.mock(UiEventLogger::class.java)
)
row.setAboveShelfChangedListener { aboveShelf: Boolean -> }
mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags)
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepositoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepositoryKosmos.kt
index 12014a027dcf..faa2b335c035 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepositoryKosmos.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/statusbar/phone/ongoingcall/data/repository/OngoingCallRepositoryKosmos.kt
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar.phone.ongoingcall.data.repository
import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.log.logcatLogBuffer
val Kosmos.ongoingCallRepository: OngoingCallRepository by
- Kosmos.Fixture { OngoingCallRepository() }
+ Kosmos.Fixture { OngoingCallRepository(logcatLogBuffer("OngoingCallRepositoryKosmos")) }
diff --git a/packages/VpnDialogs/res/values-fr-rCA/strings.xml b/packages/VpnDialogs/res/values-fr-rCA/strings.xml
index 9ae0cb24246e..3118ffe6299d 100644
--- a/packages/VpnDialogs/res/values-fr-rCA/strings.xml
+++ b/packages/VpnDialogs/res/values-fr-rCA/strings.xml
@@ -24,7 +24,7 @@
<string name="duration" msgid="3584782459928719435">"Durée :"</string>
<string name="data_transmitted" msgid="7988167672982199061">"Date d\'envoi :"</string>
<string name="data_received" msgid="4062776929376067820">"Reçu le :"</string>
- <string name="data_value_format" msgid="2192466557826897580">"<xliff:g id="NUMBER_0">%1$s</xliff:g> octets / <xliff:g id="NUMBER_1">%2$s</xliff:g> paquets"</string>
+ <string name="data_value_format" msgid="2192466557826897580">"<xliff:g id="NUMBER_0">%1$s</xliff:g> octets/<xliff:g id="NUMBER_1">%2$s</xliff:g> paquets"</string>
<string name="always_on_disconnected_title" msgid="1906740176262776166">"Impossible de se connecter au RPV permanent"</string>
<string name="always_on_disconnected_message" msgid="555634519845992917">"<xliff:g id="VPN_APP_0">%1$s</xliff:g> est configuré pour rester connecté en permanence, mais n\'arrive pas à se connecter en ce moment. Votre téléphone utilisera un réseau public jusqu\'à ce qu\'il puisse se reconnecter à <xliff:g id="VPN_APP_1">%1$s</xliff:g>."</string>
<string name="always_on_disconnected_message_lockdown" msgid="4232225539869452120">"<xliff:g id="VPN_APP">%1$s</xliff:g> est configuré pour rester connecté en permanence, mais n\'arrive pas à se connecter en ce moment. Vous n\'aurez pas de connexion jusqu\'à ce que le RPV arrive à se reconnecter."</string>
diff --git a/ravenwood/test-authors.md b/ravenwood/test-authors.md
index 0a0b200adabc..c29fb7f67e78 100644
--- a/ravenwood/test-authors.md
+++ b/ravenwood/test-authors.md
@@ -46,7 +46,7 @@ android_ravenwood_test {
* Write your unit test just like you would for an Android device:
```
-import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.annotations.DisabledOnRavenwood;
import android.platform.test.ravenwood.RavenwoodRule;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -66,7 +66,7 @@ public class MyCodeTest {
* APIs available under Ravenwood are stateless by default. If your test requires explicit states (such as defining the UID you’re running under, or requiring a main `Looper` thread), add a `RavenwoodRule` to declare that:
```
-import android.platform.test.annotations.IgnoreUnderRavenwood;
+import android.platform.test.annotations.DisabledOnRavenwood;
import android.platform.test.ravenwood.RavenwoodRule;
import androidx.test.runner.AndroidJUnit4;
@@ -165,7 +165,7 @@ public class MyCodeTest {
}
@Test
- @IgnoreUnderRavenwood(blockedBy = PackageManager.class)
+ @DisabledOnRavenwood(blockedBy = PackageManager.class)
public void testComplex() {
// Complex test that runs on devices, but is ignored under Ravenwood
}
diff --git a/services/accessibility/Android.bp b/services/accessibility/Android.bp
index 311addb90298..efa13971bce3 100644
--- a/services/accessibility/Android.bp
+++ b/services/accessibility/Android.bp
@@ -26,6 +26,7 @@ java_library_static {
},
srcs: [
":services.accessibility-sources",
+ ":statslog-accessibility-java-gen",
"//frameworks/base/packages/SettingsLib/RestrictedLockUtils:SettingsLibRestrictedLockUtilsSrc",
],
libs: [
@@ -37,7 +38,6 @@ java_library_static {
"a11ychecker-protos-java-proto-lite",
"com_android_server_accessibility_flags_lib",
"//frameworks/base/packages/SystemUI/aconfig:com_android_systemui_flags_lib",
-
],
}
@@ -81,3 +81,12 @@ java_library_static {
"java/**/a11ychecker/proto/*.proto",
],
}
+
+genrule {
+ name: "statslog-accessibility-java-gen",
+ tools: ["stats-log-api-gen"],
+ cmd: "$(location stats-log-api-gen) --java $(out) --module accessibility" +
+ " --javaPackage com.android.server.accessibility.a11ychecker" +
+ " --javaClass AccessibilityCheckerStatsLog --minApiLevel 34",
+ out: ["java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerStatsLog.java"],
+}
diff --git a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerConstants.java b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerConstants.java
new file mode 100644
index 000000000000..5a98a4027679
--- /dev/null
+++ b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerConstants.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.accessibility.a11ychecker;
+
+import java.time.Duration;
+
+/**
+ * Constants used by the accessibility checker.
+ *
+ * @hide
+ */
+final class AccessibilityCheckerConstants {
+
+ // The min required duration between two consecutive runs of the a11y checker.
+ static final Duration MIN_DURATION_BETWEEN_CHECKS = Duration.ofMinutes(1);
+
+ // The max number of cached results at a time.
+ static final int MAX_CACHE_CAPACITY = 10000;
+}
diff --git a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManager.java b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManager.java
new file mode 100644
index 000000000000..8a2bc1dbf4f7
--- /dev/null
+++ b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManager.java
@@ -0,0 +1,169 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.accessibility.a11ychecker;
+
+import static com.android.server.accessibility.a11ychecker.AccessibilityCheckerConstants.MAX_CACHE_CAPACITY;
+import static com.android.server.accessibility.a11ychecker.AccessibilityCheckerConstants.MIN_DURATION_BETWEEN_CHECKS;
+
+import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
+import android.annotation.UserIdInt;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.util.Slog;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityNodeInfo;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.accessibility.Flags;
+import com.android.server.accessibility.a11ychecker.A11yCheckerProto.AccessibilityCheckResultReported;
+
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckPreset;
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityHierarchyCheck;
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityHierarchyCheckResult;
+import com.google.android.apps.common.testing.accessibility.framework.uielement.AccessibilityHierarchy;
+import com.google.android.apps.common.testing.accessibility.framework.uielement.AccessibilityHierarchyAndroid;
+
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+
+/**
+ * The class responsible for running AccessibilityChecks on cached nodes and caching the results for
+ * logging. Results are cached and capped to limit the logging frequency and size.
+ *
+ * @hide
+ */
+public final class AccessibilityCheckerManager {
+ private static final String LOG_TAG = "AccessibilityCheckerManager";
+
+ private final PackageManager mPackageManager;
+ private final Set<AccessibilityHierarchyCheck> mHierarchyChecks;
+ private final ATFHierarchyBuilder mATFHierarchyBuilder;
+ private final Set<AccessibilityCheckResultReported> mCachedResults = new HashSet<>();
+ @VisibleForTesting
+ final A11yCheckerTimer mTimer = new A11yCheckerTimer();
+
+ public AccessibilityCheckerManager(Context context) {
+ this(AccessibilityCheckPreset.getAccessibilityHierarchyChecksForPreset(
+ AccessibilityCheckPreset.LATEST),
+ (nodeInfo) -> AccessibilityHierarchyAndroid.newBuilder(nodeInfo, context).build(),
+ context.getPackageManager());
+ }
+
+ @VisibleForTesting
+ AccessibilityCheckerManager(
+ Set<AccessibilityHierarchyCheck> hierarchyChecks,
+ ATFHierarchyBuilder atfHierarchyBuilder,
+ PackageManager packageManager) {
+ this.mHierarchyChecks = hierarchyChecks;
+ this.mATFHierarchyBuilder = atfHierarchyBuilder;
+ this.mPackageManager = packageManager;
+ }
+
+ /**
+ * If eligible, runs AccessibilityChecks on the given nodes and caches the results for later
+ * logging. Returns the check results for the given nodes.
+ */
+ @RequiresPermission(allOf = {android.Manifest.permission.INTERACT_ACROSS_USERS_FULL})
+ public Set<AccessibilityCheckResultReported> maybeRunA11yChecker(
+ List<AccessibilityNodeInfo> nodes,
+ @Nullable AccessibilityEvent accessibilityEvent,
+ ComponentName sourceComponentName,
+ @UserIdInt int userId) {
+ if (!shouldRunA11yChecker()) {
+ return Set.of();
+ }
+
+ Set<AccessibilityCheckResultReported> allResults = new HashSet<>();
+ String defaultBrowserName = mPackageManager.getDefaultBrowserPackageNameAsUser(userId);
+
+ try {
+ for (AccessibilityNodeInfo nodeInfo : nodes) {
+ // Skip browser results because they are mostly related to web content and not the
+ // browser app itself.
+ if (nodeInfo.getPackageName() == null
+ || nodeInfo.getPackageName().toString().equals(defaultBrowserName)) {
+ continue;
+ }
+ List<AccessibilityHierarchyCheckResult> checkResults = runChecksOnNode(nodeInfo);
+ Set<AccessibilityCheckResultReported> filteredResults =
+ AccessibilityCheckerUtils.processResults(nodeInfo, checkResults,
+ accessibilityEvent, mPackageManager, sourceComponentName);
+ allResults.addAll(filteredResults);
+ }
+ mCachedResults.addAll(allResults);
+ } catch (RuntimeException e) {
+ Slog.e(LOG_TAG, "An unknown error occurred while running a11y checker.", e);
+ }
+
+ return allResults;
+ }
+
+ private List<AccessibilityHierarchyCheckResult> runChecksOnNode(
+ AccessibilityNodeInfo nodeInfo) {
+ AccessibilityHierarchy checkableHierarchy = mATFHierarchyBuilder.getATFCheckableHierarchy(
+ nodeInfo);
+ List<AccessibilityHierarchyCheckResult> checkResults = new ArrayList<>();
+ for (AccessibilityHierarchyCheck check : mHierarchyChecks) {
+ checkResults.addAll(check.runCheckOnHierarchy(checkableHierarchy));
+ }
+ return checkResults;
+ }
+
+ public Set<AccessibilityCheckResultReported> getCachedResults() {
+ return Collections.unmodifiableSet(mCachedResults);
+ }
+
+ @VisibleForTesting
+ boolean shouldRunA11yChecker() {
+ if (!Flags.enableA11yCheckerLogging() || mCachedResults.size() == MAX_CACHE_CAPACITY) {
+ return false;
+ }
+ if (mTimer.getLastCheckTime() == null || mTimer.getLastCheckTime().plus(
+ MIN_DURATION_BETWEEN_CHECKS).isBefore(Instant.now())) {
+ mTimer.setLastCheckTime(Instant.now());
+ return true;
+ }
+ return false;
+ }
+
+ /** Timer class to facilitate testing with fake times. */
+ @VisibleForTesting
+ static class A11yCheckerTimer {
+ private Instant mLastCheckTime = null;
+
+ Instant getLastCheckTime() {
+ return mLastCheckTime;
+ }
+
+ void setLastCheckTime(Instant newTime) {
+ mLastCheckTime = newTime;
+ }
+ }
+
+ /** AccessibilityHierarchy wrapper to facilitate testing with fake hierarchies. */
+ @VisibleForTesting
+ interface ATFHierarchyBuilder {
+ AccessibilityHierarchy getATFCheckableHierarchy(AccessibilityNodeInfo nodeInfo);
+ }
+}
diff --git a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerStatsdLogger.java b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerStatsdLogger.java
new file mode 100644
index 000000000000..1b3ec5a5e6c2
--- /dev/null
+++ b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerStatsdLogger.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.accessibility.a11ychecker;
+
+import android.util.Slog;
+
+import com.android.server.accessibility.a11ychecker.A11yCheckerProto.AccessibilityCheckResultReported;
+
+import java.util.Set;
+
+
+/**
+ * Wraps the StatsdLogger for AccessibilityCheckResultReported.
+ *
+ * @hide
+ */
+public class AccessibilityCheckerStatsdLogger {
+ private static final int ATOM_ID = 910;
+ private static final String LOG_TAG = "AccessibilityCheckerStatsdLogger";
+
+ /**
+ * Writes results to statsd.
+ */
+ public static void logResults(Set<AccessibilityCheckResultReported> results) {
+ Slog.i(LOG_TAG, String.format("Writing %d AccessibilityCheckResultReported events",
+ results.size()));
+
+ for (AccessibilityCheckResultReported result : results) {
+ AccessibilityCheckerStatsLog.write(ATOM_ID,
+ result.getPackageName(),
+ result.getAppVersionCode(),
+ result.getUiElementPath(),
+ result.getActivityName(),
+ result.getWindowTitle(),
+ result.getSourceComponentName(),
+ result.getSourceVersionCode(),
+ result.getResultCheckClass().getNumber(),
+ result.getResultType().getNumber(),
+ result.getResultId());
+ }
+ }
+}
diff --git a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtils.java b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtils.java
index 55af9a0cfd24..4171108770a9 100644
--- a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtils.java
+++ b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtils.java
@@ -19,7 +19,6 @@ package com.android.server.accessibility.a11ychecker;
import android.annotation.Nullable;
import android.content.ComponentName;
-import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.util.Slog;
@@ -62,6 +61,7 @@ import java.util.stream.Collectors;
public class AccessibilityCheckerUtils {
private static final String LOG_TAG = "AccessibilityCheckerUtils";
+
@VisibleForTesting
// LINT.IfChange
static final Map<Class<? extends AccessibilityHierarchyCheck>, AccessibilityCheckClass>
@@ -94,29 +94,22 @@ public class AccessibilityCheckerUtils {
// LINT.ThenChange(/services/accessibility/java/com/android/server/accessibility/a11ychecker/proto/a11ychecker.proto)
static Set<AccessibilityCheckResultReported> processResults(
- Context context,
- AccessibilityNodeInfo nodeInfo,
- List<AccessibilityHierarchyCheckResult> checkResults,
- @Nullable AccessibilityEvent accessibilityEvent,
- ComponentName a11yServiceComponentName) {
- return processResults(nodeInfo, checkResults, accessibilityEvent,
- context.getPackageManager(), a11yServiceComponentName);
- }
-
- @VisibleForTesting
- static Set<AccessibilityCheckResultReported> processResults(
AccessibilityNodeInfo nodeInfo,
List<AccessibilityHierarchyCheckResult> checkResults,
@Nullable AccessibilityEvent accessibilityEvent,
PackageManager packageManager,
ComponentName a11yServiceComponentName) {
String appPackageName = nodeInfo.getPackageName().toString();
+ String nodePath = AccessibilityNodePathBuilder.createNodePath(nodeInfo);
+ if (nodePath == null) {
+ return Set.of();
+ }
AccessibilityCheckResultReported.Builder builder;
try {
builder = AccessibilityCheckResultReported.newBuilder()
.setPackageName(appPackageName)
.setAppVersionCode(getAppVersionCode(packageManager, appPackageName))
- .setUiElementPath(AccessibilityNodePathBuilder.createNodePath(nodeInfo))
+ .setUiElementPath(nodePath)
.setActivityName(getActivityName(packageManager, accessibilityEvent))
.setWindowTitle(getWindowTitle(nodeInfo))
.setSourceComponentName(a11yServiceComponentName.flattenToString())
diff --git a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityNodePathBuilder.java b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityNodePathBuilder.java
index bbfb217d925e..465ce0de79a4 100644
--- a/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityNodePathBuilder.java
+++ b/services/accessibility/java/com/android/server/accessibility/a11ychecker/AccessibilityNodePathBuilder.java
@@ -47,12 +47,15 @@ public final class AccessibilityNodePathBuilder {
*
* <p>This format is consistent with elements paths in Pre-Launch Reports and the Accessibility
* Scanner, starting from the window's root node instead of the first resource name.
- * TODO (b/344607035): link to ClusteringUtils when AATF is merged in main.
+ * See {@link com.google.android.apps.common.testing.accessibility.framework.ClusteringUtils}.
*/
public static @Nullable String createNodePath(@NonNull AccessibilityNodeInfo nodeInfo) {
+ String packageName = nodeInfo.getPackageName().toString();
+ if (packageName == null) {
+ return null;
+ }
StringBuilder resourceIdBuilder = getNodePathBuilder(nodeInfo);
- return resourceIdBuilder == null ? null : String.valueOf(nodeInfo.getPackageName()) + ':'
- + resourceIdBuilder;
+ return resourceIdBuilder == null ? null : packageName + ':' + resourceIdBuilder;
}
private static @Nullable StringBuilder getNodePathBuilder(AccessibilityNodeInfo nodeInfo) {
@@ -84,20 +87,23 @@ public final class AccessibilityNodePathBuilder {
//Returns the part of the element's View ID resource name after the qualifier
// "package_name:id/" or the last '/', when available. Otherwise, returns the element's
// simple class name.
- private static CharSequence getShortUiElementName(AccessibilityNodeInfo nodeInfo) {
+ private static @Nullable CharSequence getShortUiElementName(AccessibilityNodeInfo nodeInfo) {
String viewIdResourceName = nodeInfo.getViewIdResourceName();
- if (viewIdResourceName != null) {
- String idQualifier = ":id/";
- int idQualifierStartIndex = viewIdResourceName.indexOf(idQualifier);
- int unqualifiedNameStartIndex = idQualifierStartIndex == -1 ? 0
- : (idQualifierStartIndex + idQualifier.length());
- return viewIdResourceName.substring(unqualifiedNameStartIndex);
+ if (viewIdResourceName == null) {
+ return getSimpleClassName(nodeInfo);
}
- return getSimpleClassName(nodeInfo);
+ String idQualifier = ":id/";
+ int idQualifierStartIndex = viewIdResourceName.indexOf(idQualifier);
+ int unqualifiedNameStartIndex =
+ idQualifierStartIndex == -1 ? 0 : (idQualifierStartIndex + idQualifier.length());
+ return viewIdResourceName.substring(unqualifiedNameStartIndex);
}
- private static CharSequence getSimpleClassName(AccessibilityNodeInfo nodeInfo) {
+ private static @Nullable CharSequence getSimpleClassName(AccessibilityNodeInfo nodeInfo) {
CharSequence name = nodeInfo.getClassName();
+ if (name == null) {
+ return null;
+ }
for (int i = name.length() - 1; i > 0; i--) {
char ithChar = name.charAt(i);
if (ithChar == '.' || ithChar == '$') {
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
index 4464c0752ae9..569615e1683c 100644
--- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
@@ -377,17 +377,29 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
LocalServices.addService(AppWidgetManagerInternal.class, new AppWidgetManagerLocal());
}
+ /**
+ * Returns the maximum memory can be used in widget bitmaps, in respect to
+ * the display size. Note this should only be called after
+ * {@link #computeMaximumWidgetBitmapMemory} is invoked.
+ */
@Override
public int getMaxBitmapMemory() {
return mMaxWidgetBitmapMemory;
}
+ /**
+ * Signals that system services (esp. ActivityManagerService) are ready.
+ */
void systemServicesReady() {
mActivityManagerInternal = LocalServices.getService(ActivityManagerInternal.class);
mAppOpsManagerInternal = LocalServices.getService(AppOpsManagerInternal.class);
mUsageStatsManagerInternal = LocalServices.getService(UsageStatsManagerInternal.class);
}
+ /**
+ * Computes the maximum memory can be used in widget bitmaps, in respect to
+ * the display size.
+ */
private void computeMaximumWidgetBitmapMemory() {
Display display = mContext.getDisplayNoVerify();
Point size = new Point();
@@ -397,6 +409,10 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
mMaxWidgetBitmapMemory = 6 * size.x * size.y;
}
+ /**
+ * Callback function that persists the states of the widgets to disk,
+ * should be scheduled on a background thread.
+ */
private boolean handleSaveMessage(Message msg) {
final int userId = msg.what;
SparseArray<byte[]> userIdToBytesMapping;
@@ -435,6 +451,9 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
return true;
}
+ /**
+ * Register receivers for system broadcasts, esp. broadcasts from package manager.
+ */
private void registerBroadcastReceiver() {
// Register for broadcasts about package install, etc., so we can
// update the provider list.
@@ -470,6 +489,13 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
suspendPackageFilter, null, mCallbackHandler);
}
+ /**
+ * Listens to cross-profile widget providers changes.
+ *
+ * @see #onCrossProfileWidgetProvidersChanged
+ * @see DevicePolicyManager#addCrossProfileWidgetProvider
+ * @see DevicePolicyManager#removeCrossProfileWidgetProvider
+ */
private void registerOnCrossProfileProvidersChangedListener() {
// The device policy is an optional component.
if (mDevicePolicyManagerInternal != null) {
@@ -481,6 +507,11 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
mSafeMode = safeMode;
}
+ /**
+ * Handles broadcasts from package manager, add/remove/update widget
+ * providers in respect to changes in corresponding packages.
+ * Note: When a package is archived, it is treated as removed.
+ */
private void onPackageBroadcastReceived(Intent intent, int userId) {
final String action = intent.getAction();
boolean added = false;
@@ -585,6 +616,10 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Clears the generated previews for all widgets belonging to the given UID.
+ * @return true if any previews were cleared.
+ */
@GuardedBy("mLock")
private boolean clearPreviewsForUidLocked(int clearedUid) {
boolean changed = false;
@@ -616,6 +651,11 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Reload all widgets' masked state for the given user or profile.
+ * Keep track of whether the given user or profile is locked, in quiet mode,
+ * suspended or stopped.
+ */
private void reloadWidgetsMaskedState(int userId) {
final long identity = Binder.clearCallingIdentity();
try {
@@ -859,6 +899,10 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Unmask widgets of the specified provider. Notify the host to remove the masked views
+ * if previously masked.
+ */
private void unmaskWidgetsViewsLocked(Provider provider) {
final int widgetCount = provider.widgets.size();
for (int j = 0; j < widgetCount; j++) {
@@ -869,6 +913,10 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Called when a new package is installed, and updates {@link HostId} in corresponding
+ * {@link Host}.
+ */
private void resolveHostUidLocked(String pkg, int uid) {
final int N = mHosts.size();
for (int i = 0; i < N; i++) {
@@ -883,11 +931,28 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Load widgets/providers/hosts for the specified user and all of its enabled
+ * child profiles from disk if not already loaded.
+ *
+ * @param userId the user id to load
+ *
+ * @see #ensureGroupStateLoadedLocked(int, boolean)
+ */
@GuardedBy("mLock")
private void ensureGroupStateLoadedLocked(int userId) {
ensureGroupStateLoadedLocked(userId, /* enforceUserUnlockingOrUnlocked */ true );
}
+ /**
+ * Load widgets/providers/hosts for the specified user and all of its enabled
+ * child profiles from disk if not already loaded.
+ *
+ * @param userId the user id to load
+ * @param enforceUserUnlockingOrUnlocked if true, the user must be unlocked or unlocking
+ * @throws IllegalStateException if the user or profile is not unlocked or unlocking and
+ * {@code enforceUserUnlockingOrUnlocked} is true
+ */
@GuardedBy("mLock")
private void ensureGroupStateLoadedLocked(int userId, boolean enforceUserUnlockingOrUnlocked) {
if (enforceUserUnlockingOrUnlocked && !isUserRunningAndUnlocked(userId)) {
@@ -1003,6 +1068,9 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Called by {@link AppWidgetHost} to start listening for updates from specified widgets.
+ */
@Override
public ParceledListSlice<PendingHostUpdate> startListening(IAppWidgetHost callbacks,
String callingPackage, int hostId, int[] appWidgetIds) {
@@ -1049,6 +1117,10 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Called by {@link AppWidgetHost} to stop listening for updates from all
+ * widgets bounded to this host.
+ */
@Override
public void stopListening(String callingPackage, int hostId) {
final int userId = UserHandle.getCallingUserId();
@@ -1077,6 +1149,10 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Creates a new instance of app widget and associate it with the specified host.
+ * Allocate a new app widget id for the new instance.
+ */
@Override
public int allocateAppWidgetId(String callingPackage, int hostId) {
final int userId = UserHandle.getCallingUserId();
@@ -1126,6 +1202,12 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Called by {@link AppWidgetHost} to mark all widgets associated with this host
+ * to be visually hidden (for state tracking).
+ *
+ * @see AppOpsManagerInternal#updateAppWidgetVisibility
+ */
@Override
public void setAppWidgetHidden(String callingPackage, int hostId) {
final int userId = UserHandle.getCallingUserId();
@@ -1149,6 +1231,11 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Deletes specified widget.
+ * Note: appWidgetId is a monotonic increasing number, so the appWidgetId cannot be
+ * reclaimed by a new widget.
+ */
@Override
public void deleteAppWidgetId(String callingPackage, int appWidgetId) {
final int userId = UserHandle.getCallingUserId();
@@ -1183,8 +1270,19 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Query if a given package was granted permission by the user to bind app widgets.
+ *
+ * <p class="note">You need the MODIFY_APPWIDGET_BIND_PERMISSIONS permission
+ *
+ * @param packageName The package for which the permission is being queried
+ * @param userId The user id of the user under which the package runs.
+ * @return true if the package was granted permission by the user to bind app widgets
+ *
+ * @see AppWidgetManager#hasBindAppWidgetPermission(String, int)
+ */
@Override
- public boolean hasBindAppWidgetPermission(String packageName, int grantId) {
+ public boolean hasBindAppWidgetPermission(String packageName, int userId) {
if (DEBUG) {
Slog.i(TAG, "hasBindAppWidgetPermission() " + UserHandle.getCallingUserId());
}
@@ -1194,20 +1292,31 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
synchronized (mLock) {
// The grants are stored in user state wich gets the grant.
- ensureGroupStateLoadedLocked(grantId);
+ ensureGroupStateLoadedLocked(userId);
- final int packageUid = getUidForPackage(packageName, grantId);
+ final int packageUid = getUidForPackage(packageName, userId);
if (packageUid < 0) {
return false;
}
- Pair<Integer, String> packageId = Pair.create(grantId, packageName);
+ Pair<Integer, String> packageId = Pair.create(userId, packageName);
return mPackagesWithBindWidgetPermission.contains(packageId);
}
}
+ /**
+ * Changes any user-granted permission for the given package to bind app widgets.
+ *
+ * <p class="note">You need the MODIFY_APPWIDGET_BIND_PERMISSIONS permission
+ *
+ * @param packageName The package whose permission is being changed
+ * @param userId The user under which the package is running.
+ * @param permission Whether to give the package permission to bind widgets
+ *
+ * @see AppWidgetManager#setBindAppWidgetPermission(String, int, boolean)
+ */
@Override
- public void setBindAppWidgetPermission(String packageName, int grantId,
+ public void setBindAppWidgetPermission(String packageName, int userId,
boolean grantPermission) {
if (DEBUG) {
Slog.i(TAG, "setBindAppWidgetPermission() " + UserHandle.getCallingUserId());
@@ -1218,24 +1327,42 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
synchronized (mLock) {
// The grants are stored in user state wich gets the grant.
- ensureGroupStateLoadedLocked(grantId);
+ ensureGroupStateLoadedLocked(userId);
- final int packageUid = getUidForPackage(packageName, grantId);
+ final int packageUid = getUidForPackage(packageName, userId);
if (packageUid < 0) {
return;
}
- Pair<Integer, String> packageId = Pair.create(grantId, packageName);
+ Pair<Integer, String> packageId = Pair.create(userId, packageName);
if (grantPermission) {
mPackagesWithBindWidgetPermission.add(packageId);
} else {
mPackagesWithBindWidgetPermission.remove(packageId);
}
- saveGroupStateAsync(grantId);
+ saveGroupStateAsync(userId);
}
}
+ /**
+ * Called by {@link AppWidgetHost} to start app widget provider configure
+ * activity for result.
+ * This method is used if the provider is in a profile different from the host
+ * as the host is not allowed to start an activity in another profile.
+ * <p>
+ * Note that the provided app widget has to be bound for this method to work.
+ * </p>
+ *
+ * @param callingPackage Package that calls this method.
+ * @param appWidgetId The bound app widget whose provider's config activity to start.
+ * @param intentFlags Optional intent flags.
+ * @return IntentSender to start the config activity.
+ * @throws IllegalArgumentException If the widget is not found.
+ *
+ * @see AppWidgetProviderInfo#getProfile()
+ * @see AppWidgetHost#startAppWidgetConfigureActivityForResult
+ */
@Override
public IntentSender createAppWidgetConfigIntentSender(String callingPackage, int appWidgetId,
final int intentFlags) {
@@ -1291,6 +1418,23 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Associates an {@link Widget} (as specified by {@code appWidgetId}) with
+ * a {@link Provider} (as specified by {@code providerComponent}) from
+ * a specific user/profile, if applicable.
+ *
+ * Note: The {@link Widget} itself is already associated with its {@link Host}
+ * in {@link #allocateAppWidgetId}.
+ *
+ * @param callingPackage The package that calls this method.
+ * @param appWidgetId The id of theapp widget to bind.
+ * @param providerProfileId The user/profile id of the provider.
+ * @param providerComponent The {@link ComponentName} that provides the widget.
+ * @param options The options to pass to the provider.
+ * @see AppWidgetManager#bindAppWidgetIdIfAllowed(int, ComponentName)
+ * @see AppWidgetManager#bindAppWidgetIdIfAllowed(int, ComponentName, Bundle)
+ * @see AppWidgetManager#bindAppWidgetIdIfAllowed(int, UserHandle, ComponentName, Bundle)
+ */
@Override
public boolean bindAppWidgetId(String callingPackage, int appWidgetId,
int providerProfileId, ComponentName providerComponent, Bundle options) {
@@ -1400,6 +1544,17 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
return true;
}
+ /**
+ * Get the list of appWidgetIds that have been bound to the given AppWidget
+ * provider.
+ *
+ * Note: User can create multiple instances of {@link Widget} that are
+ * supplied by the same {@link Provider}.
+ *
+ * @param provider The {@link android.content.BroadcastReceiver} that is the
+ * AppWidget provider to find appWidgetIds for.
+ * @see AppWidgetManager#getAppWidgetIds(ComponentName)
+ */
@Override
public int[] getAppWidgetIds(ComponentName componentName) {
final int userId = UserHandle.getCallingUserId();
@@ -1427,6 +1582,13 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Gets a list of appWidgetIds that are bound to the specified host.
+ *
+ * @param callingPackage The package that calls this method.
+ * @param hostId id of the {@link Host}.
+ * @rerurn int[] list of appWidgetIds that are bound to this host.
+ */
@Override
public int[] getAppWidgetIdsForHost(String callingPackage, int hostId) {
final int userId = UserHandle.getCallingUserId();
@@ -1454,6 +1616,31 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Binds the RemoteViewsService for a given appWidgetId and intent.
+ * This method is used by {@link RemoteViewsAdapter} to establish a connection
+ * to the {@link RemoteViewsService} that provides data for the adapter.
+ *
+ * The appWidgetId specified must already be bound to the calling AppWidgetHost via
+ * {@link android.appwidget.AppWidgetManager#bindAppWidgetId AppWidgetManager.bindAppWidgetId()}.
+ *
+ * Note: Since {@link AppWidgetManager#setRemoteAdapter(int, RemoteViewsAdapter))} is deprecated,
+ * this method is effectively deprecated as well.
+ *
+ * @param callingPackage The package that calls this method.
+ * @param appWidgetId The AppWidget instance for which to bind the RemoteViewsService.
+ * @param intent The intent of the service which will be providing the data to the
+ * RemoteViewsAdapter.
+ * @param caller Caller's {@link IApplicationThread}, see
+ * {@link Context#getIApplicationThread()}
+ * @param activityToken Caller's {@link IBinder}, see {@link Context#getActivityToken()}
+ * @param connection The callback interface to be notified when a connection is made or lost.
+ * @param flags Flags used for binding to the service. Only
+ * {@link Context#BIND_AUTO_CREATE} and
+ * {@link Context#BIND_FOREGROUND_SERVICE_WHILE_AWAKE} are supported.
+ *
+ * @see AppWidgetManager#setRemoteAdapter(int, RemoteViewsAdapter)
+ */
@Override
public boolean bindRemoteViewsService(String callingPackage, int appWidgetId, Intent intent,
IApplicationThread caller, IBinder activtiyToken, IServiceConnection connection,
@@ -4205,6 +4392,11 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
}
+ /**
+ * Callback functions that add/update/remove widget providers in respect to
+ * changes in a specific child profile (e.g. deleting a work profile)
+ * depicted by DevicePolicyManager.
+ */
@Override
public void onCrossProfileWidgetProvidersChanged(int userId, List<String> packages) {
final int parentId = mSecurityPolicy.getProfileParent(userId);
diff --git a/services/core/java/com/android/server/PackageWatchdog.java b/services/core/java/com/android/server/PackageWatchdog.java
index d42a3dc9b6b3..08153847df88 100644
--- a/services/core/java/com/android/server/PackageWatchdog.java
+++ b/services/core/java/com/android/server/PackageWatchdog.java
@@ -155,6 +155,15 @@ public class PackageWatchdog {
private static final int DEFAULT_MAJOR_USER_IMPACT_LEVEL_THRESHOLD =
PackageHealthObserverImpact.USER_IMPACT_LEVEL_71;
+ // Comma separated list of all packages exempt from user impact level threshold. If a package
+ // in the list is crash looping, all the mitigations including factory reset will be performed.
+ private static final String PACKAGES_EXEMPT_FROM_IMPACT_LEVEL_THRESHOLD =
+ "persist.device_config.configuration.packages_exempt_from_impact_level_threshold";
+
+ // Comma separated list of default packages exempt from user impact level threshold.
+ private static final String DEFAULT_PACKAGES_EXEMPT_FROM_IMPACT_LEVEL_THRESHOLD =
+ "com.android.systemui";
+
private long mNumberOfNativeCrashPollsRemaining;
private static final int DB_VERSION = 1;
@@ -201,6 +210,8 @@ public class PackageWatchdog {
private final DeviceConfig.OnPropertiesChangedListener
mOnPropertyChangedListener = this::onPropertyChanged;
+ private final Set<String> mPackagesExemptFromImpactLevelThreshold = new ArraySet<>();
+
// The set of packages that have been synced with the ExplicitHealthCheckController
@GuardedBy("mLock")
private Set<String> mRequestedHealthCheckPackages = new ArraySet<>();
@@ -523,7 +534,7 @@ public class PackageWatchdog {
@FailureReasons int failureReason,
int currentObserverImpact,
int mitigationCount) {
- if (currentObserverImpact < getUserImpactLevelLimit()) {
+ if (allowMitigations(currentObserverImpact, versionedPackage)) {
synchronized (mLock) {
mLastMitigation = mSystemClock.uptimeMillis();
}
@@ -531,6 +542,13 @@ public class PackageWatchdog {
}
}
+ private boolean allowMitigations(int currentObserverImpact,
+ VersionedPackage versionedPackage) {
+ return currentObserverImpact < getUserImpactLevelLimit()
+ || getPackagesExemptFromImpactLevelThreshold().contains(
+ versionedPackage.getPackageName());
+ }
+
private long getMitigationWindowMs() {
return SystemProperties.getLong(MITIGATION_WINDOW_MS, DEFAULT_MITIGATION_WINDOW_MS);
}
@@ -662,6 +680,15 @@ public class PackageWatchdog {
DEFAULT_MAJOR_USER_IMPACT_LEVEL_THRESHOLD);
}
+ private Set<String> getPackagesExemptFromImpactLevelThreshold() {
+ if (mPackagesExemptFromImpactLevelThreshold.isEmpty()) {
+ String packageNames = SystemProperties.get(PACKAGES_EXEMPT_FROM_IMPACT_LEVEL_THRESHOLD,
+ DEFAULT_PACKAGES_EXEMPT_FROM_IMPACT_LEVEL_THRESHOLD);
+ return Set.of(packageNames.split("\\s*,\\s*"));
+ }
+ return mPackagesExemptFromImpactLevelThreshold;
+ }
+
/** Possible severity values of the user impact of a {@link PackageHealthObserver#execute}. */
@Retention(SOURCE)
@IntDef(value = {PackageHealthObserverImpact.USER_IMPACT_LEVEL_0,
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
index 458749d93e0a..f821e00d56ae 100644
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
@@ -72,6 +72,7 @@ import android.content.pm.SigningDetails.CertCapabilities;
import android.content.pm.UserInfo;
import android.database.Cursor;
import android.database.sqlite.SQLiteCantOpenDatabaseException;
+import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteFullException;
import android.database.sqlite.SQLiteStatement;
import android.os.Binder;
@@ -1461,8 +1462,8 @@ public class AccountManagerService
List<Integer> uids;
try {
uids = accounts.accountsDb.findAllUidGrants();
- } catch (SQLiteCantOpenDatabaseException e) {
- Log.w(TAG, "Could not delete grants for user = " + accounts.userId);
+ } catch (SQLiteException e) {
+ Log.w(TAG, "Could not delete grants for user = " + accounts.userId, e);
return;
}
for (int uid : uids) {
@@ -4464,6 +4465,9 @@ public class AccountManagerService
opPackageName,
visibleAccountTypes,
false /* includeUserManagedNotVisible */);
+ } catch (SQLiteException e) {
+ Log.w(TAG, "Could not get accounts for user " + userId, e);
+ return new Account[]{};
} finally {
restoreCallingIdentity(identityToken);
}
@@ -4539,7 +4543,7 @@ public class AccountManagerService
try {
return getAccountsAsUserForPackage(type, userId, opPackageName /* callingPackage */, -1,
opPackageName, false /* includeUserManagedNotVisible */);
- } catch (SQLiteCantOpenDatabaseException e) {
+ } catch (SQLiteException e) {
Log.e(TAG, "Could not get accounts for user " + userId, e);
return new Account[]{};
}
@@ -4549,7 +4553,7 @@ public class AccountManagerService
private Account[] getAccountsOrEmptyArray(String type, int userId, String opPackageName) {
try {
return getAccountsAsUser(type, userId, opPackageName);
- } catch (SQLiteCantOpenDatabaseException e) {
+ } catch (SQLiteException e) {
Log.w(TAG, "Could not get accounts for user " + userId, e);
return new Account[]{};
}
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java
index 504c54aefc44..ab63e247b556 100644
--- a/services/core/java/com/android/server/am/OomAdjuster.java
+++ b/services/core/java/com/android/server/am/OomAdjuster.java
@@ -2864,6 +2864,11 @@ public class OomAdjuster {
}
}
+ if (newAdj == clientAdj && app.isolated) {
+ // Make bound isolated processes have slightly worse score than their client
+ newAdj = clientAdj + 1;
+ }
+
if (adj > newAdj) {
adj = newAdj;
if (state.setCurRawAdj(adj, dryRun)) {
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 3d41f05de0b8..7a24e9df1d63 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -496,19 +496,60 @@ public class AudioService extends IAudioService.Stub
private AudioSystemThread mAudioSystemThread;
/** @see AudioHandler */
private AudioHandler mAudioHandler;
- /** @see VolumeStreamState */
- private VolumeStreamState[] mStreamStates;
+ /**
+ * @see VolumeStreamState
+ * Mapping which contains for each stream type its associated {@link VolumeStreamState}
+ **/
+ private SparseArray<VolumeStreamState> mStreamStates;
/*package*/ int getVssVolumeForDevice(int stream, int device) {
- return mStreamStates[stream].getIndex(device);
+ final VolumeStreamState streamState = mStreamStates.get(stream);
+ return streamState != null ? streamState.getIndex(device) : -1;
+ }
+
+ /**
+ * Returns the {@link VolumeStreamState} corresponding to the passed stream type. This can be
+ * {@code null} since not all possible stream types have a valid {@link VolumeStreamState} (e.g.
+ * {@link AudioSystem#STREAM_BLUETOOTH_SCO}) is deprecated and will return a {@code null} stream
+ * state).
+ *
+ * @param stream the stream type for querying the stream state
+ *
+ * @return the {@link VolumeStreamState} corresponding to the passed stream type or {@code null}
+ */
+ @Nullable
+ /*package*/ VolumeStreamState getVssForStream(int stream) {
+ return mStreamStates.get(stream);
}
- /*package*/ VolumeStreamState getVssVolumeForStream(int stream) {
- return mStreamStates[stream];
+ /**
+ * Returns the {@link VolumeStreamState} corresponding to the passed stream type. In case
+ * there is no associated stream state for the given stream type we return the default stream
+ * state for {@link AudioSystem#STREAM_MUSIC} (or throw an {@link IllegalArgumentException} in
+ * the ramp up phase of the replaceStreamBtSco flag to ensure that this case will never happen).
+ *
+ * @param stream the stream type for querying the stream state
+ *
+ * @return the {@link VolumeStreamState} corresponding to the passed stream type
+ */
+ @NonNull
+ /*package*/ VolumeStreamState getVssForStreamOrDefault(int stream) {
+ VolumeStreamState streamState = mStreamStates.get(stream);
+ if (streamState == null) {
+ if (replaceStreamBtSco()) {
+ throw new IllegalArgumentException("No VolumeStreamState for stream " + stream);
+ } else {
+ Log.e(TAG, "No VolumeStreamState for stream " + stream
+ + ". Returning default state for STREAM_MUSIC", new Exception());
+ streamState = mStreamStates.get(AudioSystem.STREAM_MUSIC);
+ }
+ }
+ return streamState;
}
/*package*/ int getMaxVssVolumeForStream(int stream) {
- return mStreamStates[stream].getMaxIndex();
+ final VolumeStreamState streamState = mStreamStates.get(stream);
+ return streamState != null ? streamState.getMaxIndex() : -1;
}
private SettingsObserver mSettingsObserver;
@@ -550,13 +591,13 @@ public class AudioService extends IAudioService.Stub
0 // STREAM_ASSISTANT
};
- /* mStreamVolumeAlias[] indicates for each stream if it uses the volume settings
+ /* sStreamVolumeAlias[] indicates for each stream if it uses the volume settings
* of another stream: This avoids multiplying the volume settings for hidden
* stream types that follow other stream behavior for volume settings
* NOTE: do not create loops in aliases!
* Some streams alias to different streams according to device category (phone or tablet) or
* use case (in call vs off call...). See updateStreamVolumeAlias() for more details.
- * mStreamVolumeAlias contains STREAM_VOLUME_ALIAS_VOICE aliases for a voice capable device
+ * sStreamVolumeAlias contains STREAM_VOLUME_ALIAS_VOICE aliases for a voice capable device
* (phone), STREAM_VOLUME_ALIAS_TELEVISION for a television or set-top box and
* STREAM_VOLUME_ALIAS_DEFAULT for other devices (e.g. tablets).*/
private final int[] STREAM_VOLUME_ALIAS_VOICE = new int[] {
@@ -621,12 +662,12 @@ public class AudioService extends IAudioService.Stub
AudioSystem.STREAM_MUSIC, // STREAM_ACCESSIBILITY
AudioSystem.STREAM_MUSIC // STREAM_ASSISTANT
};
- protected static int[] mStreamVolumeAlias;
+ protected static SparseIntArray sStreamVolumeAlias;
private static final int UNSET_INDEX = -1;
/**
* Map AudioSystem.STREAM_* constants to app ops. This should be used
- * after mapping through mStreamVolumeAlias.
+ * after mapping through sStreamVolumeAlias.
*/
private static final int[] STREAM_VOLUME_OPS = new int[] {
AppOpsManager.OP_AUDIO_VOICE_VOLUME, // STREAM_VOICE_CALL
@@ -1416,7 +1457,7 @@ public class AudioService extends IAudioService.Stub
mRecordMonitor = new RecordingActivityMonitor(mContext);
mRecordMonitor.registerRecordingCallback(mVoiceRecordingActivityMonitor, true);
- // must be called before readPersistedSettings() which needs a valid mStreamVolumeAlias[]
+ // must be called before readPersistedSettings() which needs a valid sStreamVolumeAlias[]
// array initialized by updateStreamVolumeAlias()
updateStreamVolumeAlias(false /*updateVolumes*/, TAG);
readPersistedSettings();
@@ -1473,7 +1514,7 @@ public class AudioService extends IAudioService.Stub
int numStreamTypes = AudioSystem.getNumStreamTypes();
synchronized (VolumeStreamState.class) {
for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
- VolumeStreamState streamState = mStreamStates[streamType];
+ final VolumeStreamState streamState = getVssForStream(streamType);
if (streamState == null) {
continue;
}
@@ -2083,7 +2124,10 @@ public class AudioService extends IAudioService.Stub
// keep track of any error during stream volume initialization
int status = AudioSystem.AUDIO_STATUS_OK;
for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
- VolumeStreamState streamState = mStreamStates[streamType];
+ VolumeStreamState streamState = getVssForStream(streamType);
+ if (streamState == null) {
+ continue;
+ }
final int res = AudioSystem.initStreamVolume(
streamType, MIN_STREAM_VOLUME[streamType], MAX_STREAM_VOLUME[streamType]);
if (res != AudioSystem.AUDIO_STATUS_OK) {
@@ -2243,12 +2287,13 @@ public class AudioService extends IAudioService.Stub
synchronized (VolumeStreamState.class) {
int numStreamTypes = AudioSystem.getNumStreamTypes();
for (int streamType = 0; streamType < numStreamTypes; streamType++) {
- if (mStreamVolumeAlias[streamType] >= 0) {
- mStreamStates[streamType]
- .setAllIndexes(mStreamStates[mStreamVolumeAlias[streamType]], TAG);
+ int streamAlias = sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound=*/-1);
+ final VolumeStreamState streamState = getVssForStream(streamType);
+ if (streamAlias != -1 && streamState != null) {
+ streamState.setAllIndexes(getVssForStream(streamAlias), TAG);
// apply stream volume
- if (!mStreamStates[streamType].mIsMuted) {
- mStreamStates[streamType].applyAllVolumes();
+ if (!streamState.mIsMuted) {
+ streamState.applyAllVolumes();
}
}
}
@@ -2348,11 +2393,17 @@ public class AudioService extends IAudioService.Stub
if (device == AudioSystem.DEVICE_OUT_SPEAKER_SAFE) {
device = AudioSystem.DEVICE_OUT_SPEAKER;
}
- if (!mStreamStates[streamType].hasIndexForDevice(device)) {
+
+ final VolumeStreamState streamState = getVssForStream(streamType);
+ if (streamState == null) {
+ // nothing to update
+ return;
+ }
+
+ if (!streamState.hasIndexForDevice(device)) {
// set the default value, if device is affected by a full/fix/abs volume rule, it
// will taken into account in checkFixedVolumeDevices()
- mStreamStates[streamType].setIndex(
- mStreamStates[mStreamVolumeAlias[streamType]]
+ streamState.setIndex(getVssForStreamOrDefault(sStreamVolumeAlias.get(streamType))
.getIndex(AudioSystem.DEVICE_OUT_DEFAULT),
device, caller, true /*hasModifyAudioSettings*/);
}
@@ -2365,11 +2416,11 @@ public class AudioService extends IAudioService.Stub
for (AudioDeviceAttributes deviceAttributes : devicesForAttributes) {
if (deviceAttributes.getType() == AudioDeviceInfo.convertInternalDeviceToDeviceType(
device)) {
- mStreamStates[streamType].checkFixedVolumeDevices();
+ streamState.checkFixedVolumeDevices();
// Unmute streams if required and device is full volume
if (isStreamMute(streamType) && mFullVolumeDevices.contains(device)) {
- mStreamStates[streamType].mute(false, "updateVolumeStates(" + caller);
+ streamState.mute(false, "updateVolumeStates(" + caller);
}
}
}
@@ -2379,22 +2430,27 @@ public class AudioService extends IAudioService.Stub
{
int numStreamTypes = AudioSystem.getNumStreamTypes();
for (int streamType = 0; streamType < numStreamTypes; streamType++) {
- if (mStreamStates[streamType] != null) {
- mStreamStates[streamType].checkFixedVolumeDevices();
+ final VolumeStreamState vss = getVssForStream(streamType);
+ if (vss != null) {
+ vss.checkFixedVolumeDevices();
}
}
}
private void checkAllFixedVolumeDevices(int streamType) {
- mStreamStates[streamType].checkFixedVolumeDevices();
+ final VolumeStreamState vss = getVssForStream(streamType);
+ if (vss == null) {
+ return;
+ }
+ vss.checkFixedVolumeDevices();
}
private void checkMuteAffectedStreams() {
// any stream with a min level > 0 is not muteable by definition
// STREAM_VOICE_CALL and STREAM_BLUETOOTH_SCO can be muted by applications
// that has the the MODIFY_PHONE_STATE permission.
- for (int i = 0; i < mStreamStates.length; i++) {
- final VolumeStreamState vss = mStreamStates[i];
+ for (int i = 0; i < mStreamStates.size(); i++) {
+ final VolumeStreamState vss = mStreamStates.valueAt(i);
if (vss != null && vss.mIndexMin > 0
&& (vss.mStreamType != AudioSystem.STREAM_VOICE_CALL
&& vss.mStreamType != AudioSystem.STREAM_BLUETOOTH_SCO)) {
@@ -2406,13 +2462,14 @@ public class AudioService extends IAudioService.Stub
private void createStreamStates() {
int numStreamTypes = AudioSystem.getNumStreamTypes();
- VolumeStreamState[] streams = mStreamStates = new VolumeStreamState[numStreamTypes];
+ mStreamStates = new SparseArray<>(numStreamTypes);
for (int i = 0; i < numStreamTypes; i++) {
- // a negative mStreamVolumeAlias value means the stream state type is not supported
- if (mStreamVolumeAlias[i] >= 0) {
- streams[i] =
- new VolumeStreamState(System.VOLUME_SETTINGS_INT[mStreamVolumeAlias[i]], i);
+ final int streamAlias = sStreamVolumeAlias.get(i, /*valueIfKeyNotFound=*/-1);
+ // a negative sStreamVolumeAlias value means the stream state type is not supported
+ if (streamAlias >= 0) {
+ mStreamStates.set(i,
+ new VolumeStreamState(System.VOLUME_SETTINGS_INT[streamAlias], i));
}
}
@@ -2431,24 +2488,25 @@ public class AudioService extends IAudioService.Stub
* For other volume groups not linked to any streams, default music stream index is considered.
*/
private void updateDefaultVolumes() {
- for (int stream = 0; stream < mStreamStates.length; stream++) {
- int streamVolumeAlias = mStreamVolumeAlias[stream];
+ for (int stream = 0; stream < mStreamStates.size(); stream++) {
+ int streamType = mStreamStates.keyAt(stream);
+ int streamVolumeAlias = sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound=*/-1);
if (mUseVolumeGroupAliases) {
- if (AudioSystem.DEFAULT_STREAM_VOLUME[stream] != UNSET_INDEX) {
+ if (AudioSystem.DEFAULT_STREAM_VOLUME[streamType] != UNSET_INDEX) {
// Already initialized through default property based mecanism.
continue;
}
streamVolumeAlias = AudioSystem.STREAM_MUSIC;
- int defaultAliasVolume = getUiDefaultRescaledIndex(streamVolumeAlias, stream);
- if ((defaultAliasVolume >= MIN_STREAM_VOLUME[stream])
- && (defaultAliasVolume <= MAX_STREAM_VOLUME[stream])) {
- AudioSystem.DEFAULT_STREAM_VOLUME[stream] = defaultAliasVolume;
+ int defaultAliasVolume = getUiDefaultRescaledIndex(streamVolumeAlias, streamType);
+ if ((defaultAliasVolume >= MIN_STREAM_VOLUME[streamType])
+ && (defaultAliasVolume <= MAX_STREAM_VOLUME[streamType])) {
+ AudioSystem.DEFAULT_STREAM_VOLUME[streamType] = defaultAliasVolume;
continue;
}
}
- if (streamVolumeAlias >= 0 && stream != streamVolumeAlias) {
- AudioSystem.DEFAULT_STREAM_VOLUME[stream] =
- getUiDefaultRescaledIndex(streamVolumeAlias, stream);
+ if (streamVolumeAlias >= 0 && streamType != streamVolumeAlias) {
+ AudioSystem.DEFAULT_STREAM_VOLUME[streamType] =
+ getUiDefaultRescaledIndex(streamVolumeAlias, streamType);
}
}
}
@@ -2490,13 +2548,17 @@ public class AudioService extends IAudioService.Stub
continue;
}
StringBuilder alias = new StringBuilder();
- if (mStreamVolumeAlias[i] != i) {
+ final int streamAlias = sStreamVolumeAlias.get(i, /*valueIfKeyNotFound*/-1);
+ if (streamAlias != i && streamAlias != -1) {
alias.append(" (aliased to: ")
- .append(AudioSystem.STREAM_NAMES[mStreamVolumeAlias[i]])
+ .append(AudioSystem.STREAM_NAMES[streamAlias])
.append(")");
}
pw.println("- " + AudioSystem.STREAM_NAMES[i] + alias + ":");
- mStreamStates[i].dump(pw);
+ final VolumeStreamState vss = getVssForStream(i);
+ if (vss != null) {
+ vss.dump(pw);
+ }
pw.println("");
}
pw.print("\n- mute affected streams = 0x");
@@ -2505,6 +2567,13 @@ public class AudioService extends IAudioService.Stub
pw.println(Integer.toHexString(mUserMutableStreams));
}
+ private void initStreamVolumeAlias(int[] streamVolumeAlias) {
+ sStreamVolumeAlias = new SparseIntArray(streamVolumeAlias.length);
+ for (int i = 0; i < streamVolumeAlias.length; ++i) {
+ sStreamVolumeAlias.put(i, streamVolumeAlias[i]);
+ }
+ }
+
private void updateStreamVolumeAlias(boolean updateVolumes, String caller) {
int dtmfStreamAlias;
final int a11yStreamAlias = sIndependentA11yVolume ?
@@ -2514,24 +2583,24 @@ public class AudioService extends IAudioService.Stub
AudioSystem.STREAM_ASSISTANT : AudioSystem.STREAM_MUSIC;
if (mIsSingleVolume) {
- mStreamVolumeAlias = STREAM_VOLUME_ALIAS_TELEVISION.clone();
+ initStreamVolumeAlias(STREAM_VOLUME_ALIAS_TELEVISION);
dtmfStreamAlias = AudioSystem.STREAM_MUSIC;
} else if (mUseVolumeGroupAliases) {
- mStreamVolumeAlias = STREAM_VOLUME_ALIAS_NONE.clone();
+ initStreamVolumeAlias(STREAM_VOLUME_ALIAS_NONE);
dtmfStreamAlias = AudioSystem.STREAM_DTMF;
} else {
switch (mPlatformType) {
case AudioSystem.PLATFORM_VOICE:
- mStreamVolumeAlias = STREAM_VOLUME_ALIAS_VOICE.clone();
+ initStreamVolumeAlias(STREAM_VOLUME_ALIAS_VOICE);
dtmfStreamAlias = AudioSystem.STREAM_RING;
break;
default:
- mStreamVolumeAlias = STREAM_VOLUME_ALIAS_DEFAULT.clone();
+ initStreamVolumeAlias(STREAM_VOLUME_ALIAS_DEFAULT);
dtmfStreamAlias = AudioSystem.STREAM_MUSIC;
}
if (!mNotifAliasRing) {
- mStreamVolumeAlias[AudioSystem.STREAM_NOTIFICATION] =
- AudioSystem.STREAM_NOTIFICATION;
+ sStreamVolumeAlias.put(AudioSystem.STREAM_NOTIFICATION,
+ AudioSystem.STREAM_NOTIFICATION);
}
}
@@ -2546,15 +2615,14 @@ public class AudioService extends IAudioService.Stub
}
}
- mStreamVolumeAlias[AudioSystem.STREAM_DTMF] = dtmfStreamAlias;
- mStreamVolumeAlias[AudioSystem.STREAM_ACCESSIBILITY] = a11yStreamAlias;
- mStreamVolumeAlias[AudioSystem.STREAM_ASSISTANT] = assistantStreamAlias;
+ sStreamVolumeAlias.put(AudioSystem.STREAM_DTMF, dtmfStreamAlias);
+ sStreamVolumeAlias.put(AudioSystem.STREAM_ACCESSIBILITY, a11yStreamAlias);
+ sStreamVolumeAlias.put(AudioSystem.STREAM_ASSISTANT, assistantStreamAlias);
if (replaceStreamBtSco()) {
// we do not support STREAM_BLUETOOTH_SCO, this will lead to having
- // mStreanStates[STREAM_BLUETOOTH_SCO] = null
- // TODO: replace arrays with SparseIntArrays to avoid null checks
- mStreamVolumeAlias[AudioSystem.STREAM_BLUETOOTH_SCO] = -1;
+ // mStreanStates.get(STREAM_BLUETOOTH_SCO) == null
+ sStreamVolumeAlias.delete(AudioSystem.STREAM_BLUETOOTH_SCO);
}
if (updateVolumes && mStreamStates != null) {
@@ -2562,17 +2630,17 @@ public class AudioService extends IAudioService.Stub
synchronized (mSettingsLock) {
synchronized (VolumeStreamState.class) {
- mStreamStates[AudioSystem.STREAM_DTMF]
- .setAllIndexes(mStreamStates[dtmfStreamAlias], caller);
- mStreamStates[AudioSystem.STREAM_ACCESSIBILITY].setSettingName(
+ getVssForStreamOrDefault(AudioSystem.STREAM_DTMF)
+ .setAllIndexes(getVssForStreamOrDefault(dtmfStreamAlias), caller);
+ getVssForStreamOrDefault(AudioSystem.STREAM_ACCESSIBILITY).setSettingName(
System.VOLUME_SETTINGS_INT[a11yStreamAlias]);
- mStreamStates[AudioSystem.STREAM_ACCESSIBILITY].setAllIndexes(
- mStreamStates[a11yStreamAlias], caller);
+ getVssForStreamOrDefault(AudioSystem.STREAM_ACCESSIBILITY).setAllIndexes(
+ getVssForStreamOrDefault(a11yStreamAlias), caller);
}
}
if (sIndependentA11yVolume) {
// restore the a11y values from the settings
- mStreamStates[AudioSystem.STREAM_ACCESSIBILITY].readSettings();
+ getVssForStreamOrDefault(AudioSystem.STREAM_ACCESSIBILITY).readSettings();
}
// apply stream mute states according to new value of mRingerModeAffectedStreams
@@ -2582,13 +2650,13 @@ public class AudioService extends IAudioService.Stub
SENDMSG_QUEUE,
0,
0,
- mStreamStates[AudioSystem.STREAM_DTMF], 0);
+ getVssForStreamOrDefault(AudioSystem.STREAM_DTMF), 0);
sendMsg(mAudioHandler,
MSG_SET_ALL_VOLUMES,
SENDMSG_QUEUE,
0,
0,
- mStreamStates[AudioSystem.STREAM_ACCESSIBILITY], 0);
+ getVssForStreamOrDefault(AudioSystem.STREAM_ACCESSIBILITY), 0);
}
dispatchStreamAliasingUpdate();
}
@@ -3065,7 +3133,8 @@ public class AudioService extends IAudioService.Stub
}
private int getIndexRange(int streamType) {
- return (mStreamStates[streamType].getMaxIndex() - mStreamStates[streamType].getMinIndex());
+ return (getVssForStreamOrDefault(streamType).getMaxIndex() - getVssForStreamOrDefault(
+ streamType).getMinIndex());
}
private int rescaleIndex(VolumeInfo volumeInfo, int dstStream) {
@@ -3073,11 +3142,12 @@ public class AudioService extends IAudioService.Stub
|| volumeInfo.getMinVolumeIndex() == VolumeInfo.INDEX_NOT_SET
|| volumeInfo.getMaxVolumeIndex() == VolumeInfo.INDEX_NOT_SET) {
Log.e(TAG, "rescaleIndex: volumeInfo has invalid index or range");
- return mStreamStates[dstStream].getMinIndex();
+ return getVssForStreamOrDefault(dstStream).getMinIndex();
}
return rescaleIndex(volumeInfo.getVolumeIndex(),
volumeInfo.getMinVolumeIndex(), volumeInfo.getMaxVolumeIndex(),
- mStreamStates[dstStream].getMinIndex(), mStreamStates[dstStream].getMaxIndex());
+ getVssForStreamOrDefault(dstStream).getMinIndex(),
+ getVssForStreamOrDefault(dstStream).getMaxIndex());
}
private int rescaleIndex(int index, int srcStream, VolumeInfo dstVolumeInfo) {
@@ -3088,14 +3158,17 @@ public class AudioService extends IAudioService.Stub
return index;
}
return rescaleIndex(index,
- mStreamStates[srcStream].getMinIndex(), mStreamStates[srcStream].getMaxIndex(),
+ getVssForStreamOrDefault(srcStream).getMinIndex(),
+ getVssForStreamOrDefault(srcStream).getMaxIndex(),
dstMin, dstMax);
}
private int rescaleIndex(int index, int srcStream, int dstStream) {
return rescaleIndex(index,
- mStreamStates[srcStream].getMinIndex(), mStreamStates[srcStream].getMaxIndex(),
- mStreamStates[dstStream].getMinIndex(), mStreamStates[dstStream].getMaxIndex());
+ getVssForStreamOrDefault(srcStream).getMinIndex(),
+ getVssForStreamOrDefault(srcStream).getMaxIndex(),
+ getVssForStreamOrDefault(dstStream).getMinIndex(),
+ getVssForStreamOrDefault(dstStream).getMaxIndex());
}
private int rescaleIndex(int index, int srcMin, int srcMax, int dstMin, int dstMax) {
@@ -3618,7 +3691,7 @@ public class AudioService extends IAudioService.Stub
streamType = replaceBtScoStreamWithVoiceCall(streamType, "adjustSuggestedStreamVolume");
ensureValidStreamType(streamType);
- final int resolvedStream = mStreamVolumeAlias[streamType];
+ final int resolvedStream = sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound=*/-1);
// Play sounds on STREAM_RING only.
if ((flags & AudioManager.FLAG_PLAY_SOUND) != 0 &&
@@ -3735,9 +3808,9 @@ public class AudioService extends IAudioService.Stub
// use stream type alias here so that streams with same alias have the same behavior,
// including with regard to silent mode control (e.g the use of STREAM_RING below and in
// checkForRingerModeChange() in place of STREAM_RING or STREAM_NOTIFICATION)
- int streamTypeAlias = mStreamVolumeAlias[streamType];
+ int streamTypeAlias = sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound=*/-1);
- VolumeStreamState streamState = mStreamStates[streamTypeAlias];
+ VolumeStreamState streamState = getVssForStreamOrDefault(streamTypeAlias);
final int device = getDeviceForStream(streamTypeAlias);
@@ -3823,7 +3896,7 @@ public class AudioService extends IAudioService.Stub
if (!volumeAdjustmentAllowedByDnd(streamTypeAlias, flags)) {
adjustVolume = false;
}
- int oldIndex = mStreamStates[streamType].getIndex(device);
+ int oldIndex = getVssForStreamOrDefault(streamType).getIndex(device);
// Check if the volume adjustment should be handled by an absolute volume controller instead
if (isAbsoluteVolumeDevice(device) && (flags & AudioManager.FLAG_ABSOLUTE_VOLUME) == 0) {
@@ -3879,7 +3952,7 @@ public class AudioService extends IAudioService.Stub
0);
}
- int newIndex = mStreamStates[streamType].getIndex(device);
+ int newIndex = getVssForStreamOrDefault(streamType).getIndex(device);
int streamToDriveAbsVol = absVolumeIndexFix() ? getBluetoothContextualVolumeStream() :
AudioSystem.STREAM_MUSIC;
@@ -3906,7 +3979,7 @@ public class AudioService extends IAudioService.Stub
+ newIndex + " stream=" + streamType);
}
mDeviceBroker.postSetLeAudioVolumeIndex(newIndex,
- mStreamStates[streamType].getMaxIndex(), streamType);
+ getVssForStreamOrDefault(streamType).getMaxIndex(), streamType);
}
// Check if volume update should be send to Hearing Aid.
@@ -3922,7 +3995,7 @@ public class AudioService extends IAudioService.Stub
}
}
- final int newIndex = mStreamStates[streamType].getIndex(device);
+ final int newIndex = getVssForStreamOrDefault(streamType).getIndex(device);
if (adjustVolume) {
synchronized (mHdmiClientLock) {
if (mHdmiManager != null) {
@@ -4004,22 +4077,22 @@ public class AudioService extends IAudioService.Stub
synchronized (mSettingsLock) {
synchronized (VolumeStreamState.class) {
List<Integer> streamsToMute = new ArrayList<>();
- for (int stream = 0; stream < mStreamStates.length; stream++) {
- VolumeStreamState vss = mStreamStates[stream];
- if (vss != null && streamAlias == mStreamVolumeAlias[stream]
+ for (int stream = 0; stream < mStreamStates.size(); stream++) {
+ final VolumeStreamState vss = mStreamStates.valueAt(stream);
+ if (vss != null && streamAlias == sStreamVolumeAlias.get(vss.getStreamType())
&& vss.isMutable()) {
if (!(mCameraSoundForced && (vss.getStreamType()
== AudioSystem.STREAM_SYSTEM_ENFORCED))) {
boolean changed = vss.mute(state, /* apply= */ false,
"muteAliasStreams");
if (changed) {
- streamsToMute.add(stream);
+ streamsToMute.add(vss.getStreamType());
}
}
}
}
streamsToMute.forEach(streamToMute -> {
- mStreamStates[streamToMute].doMute();
+ getVssForStreamOrDefault(streamToMute).doMute();
broadcastMuteSetting(streamToMute, state);
});
}
@@ -4047,7 +4120,7 @@ public class AudioService extends IAudioService.Stub
// vss.updateVolumeGroupIndex
synchronized (mSettingsLock) {
synchronized (VolumeStreamState.class) {
- final VolumeStreamState streamState = mStreamStates[streamAlias];
+ final VolumeStreamState streamState = getVssForStreamOrDefault(streamAlias);
// if unmuting causes a change, it was muted
wasMuted = streamState.mute(false, "onUnmuteStreamOnSingleVolDevice");
if (wasMuted) {
@@ -4145,7 +4218,7 @@ public class AudioService extends IAudioService.Stub
*/
/*package*/ void onSetStreamVolume(int streamType, int index, int flags, int device,
String caller, boolean hasModifyAudioSettings, boolean canChangeMute) {
- final int stream = mStreamVolumeAlias[streamType];
+ final int stream = sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound=*/-1);
// setting volume on ui sounds stream type also controls silent mode
if (((flags & AudioManager.FLAG_ALLOW_RINGER_MODES) != 0) ||
(stream == getUiSoundsStreamType())) {
@@ -4286,26 +4359,30 @@ public class AudioService extends IAudioService.Stub
// that can interfere with the sending of the VOLUME_CHANGED_ACTION intent
mAudioSystem.clearRoutingCache();
+ int streamType = replaceBtScoStreamWithVoiceCall(vi.getStreamType(), "setDeviceVolume");
+
+ final VolumeStreamState vss = getVssForStream(streamType);
+
// log the current device that will be used when evaluating the sending of the
// VOLUME_CHANGED_ACTION intent to see if the current device is the one being modified
- final int currDev = getDeviceForStream(vi.getStreamType());
+ final int currDev = getDeviceForStream(streamType);
- final boolean skipping = (currDev == ada.getInternalType());
+ final boolean skipping = (currDev == ada.getInternalType()) || (vss == null);
- AudioService.sVolumeLogger.enqueue(new DeviceVolumeEvent(vi.getStreamType(), index, ada,
+ AudioService.sVolumeLogger.enqueue(new DeviceVolumeEvent(streamType, index, ada,
currDev, callingPackage, skipping));
if (skipping) {
- // setDeviceVolume was called on a device currently being used
+ // setDeviceVolume was called on a device currently being used or stream state is null
return;
}
// TODO handle unmuting of current audio device
// if a stream is not muted but the VolumeInfo is for muting, set the volume index
// for the device to min volume
- if (vi.hasMuteCommand() && vi.isMuted() && !isStreamMute(vi.getStreamType())) {
- setStreamVolumeWithAttributionInt(vi.getStreamType(),
- mStreamStates[vi.getStreamType()].getMinIndex(),
+ if (vi.hasMuteCommand() && vi.isMuted() && !isStreamMute(streamType)) {
+ setStreamVolumeWithAttributionInt(streamType,
+ vss.getMinIndex(),
/*flags*/ 0,
ada, callingPackage, null,
//TODO handle unmuting of current audio device
@@ -4319,22 +4396,22 @@ public class AudioService extends IAudioService.Stub
if (vi.getMinVolumeIndex() == VolumeInfo.INDEX_NOT_SET
|| vi.getMaxVolumeIndex() == VolumeInfo.INDEX_NOT_SET) {
// assume index meant to be in stream type range, validate
- if ((index * 10) < mStreamStates[vi.getStreamType()].getMinIndex()
- || (index * 10) > mStreamStates[vi.getStreamType()].getMaxIndex()) {
+ if ((index * 10) < vss.getMinIndex()
+ || (index * 10) > vss.getMaxIndex()) {
throw new IllegalArgumentException("invalid volume index " + index
+ " not between min/max for stream " + vi.getStreamType());
}
} else {
// check if index needs to be rescaled
- final int min = (mStreamStates[vi.getStreamType()].getMinIndex() + 5) / 10;
- final int max = (mStreamStates[vi.getStreamType()].getMaxIndex() + 5) / 10;
+ final int min = (vss.getMinIndex() + 5) / 10;
+ final int max = (vss.getMaxIndex() + 5) / 10;
if (vi.getMinVolumeIndex() != min || vi.getMaxVolumeIndex() != max) {
index = rescaleIndex(index,
/*srcMin*/ vi.getMinVolumeIndex(), /*srcMax*/ vi.getMaxVolumeIndex(),
/*dstMin*/ min, /*dstMax*/ max);
}
}
- setStreamVolumeWithAttributionInt(vi.getStreamType(), index, /*flags*/ 0,
+ setStreamVolumeWithAttributionInt(streamType, index, /*flags*/ 0,
ada, callingPackage, null,
false /*canChangeMuteAndUpdateController*/);
}
@@ -4762,7 +4839,7 @@ public class AudioService extends IAudioService.Stub
if (AudioSystem.isLeAudioDeviceType(device)) {
mDeviceBroker.postSetLeAudioVolumeIndex(index * 10,
- mStreamStates[streamType].getMaxIndex(), streamType);
+ getVssForStreamOrDefault(streamType).getMaxIndex(), streamType);
} else if (device == AudioSystem.DEVICE_OUT_HEARING_AID) {
mDeviceBroker.postSetHearingAidVolumeIndex(index * 10, streamType);
} else {
@@ -4790,8 +4867,8 @@ public class AudioService extends IAudioService.Stub
streamType = replaceBtScoStreamWithVoiceCall(streamType, "setStreamVolume");
ensureValidStreamType(streamType);
- int streamTypeAlias = mStreamVolumeAlias[streamType];
- VolumeStreamState streamState = mStreamStates[streamTypeAlias];
+ int streamTypeAlias = sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound*/-1);
+ final VolumeStreamState streamState = getVssForStreamOrDefault(streamTypeAlias);
if (!replaceStreamBtSco() && (streamType == AudioManager.STREAM_VOICE_CALL)
&& isInCommunication() && mDeviceBroker.isBluetoothScoActive()) {
@@ -4857,7 +4934,7 @@ public class AudioService extends IAudioService.Stub
// ada is non-null when called from setDeviceVolume,
// which shouldn't update the mute state
canChangeMuteAndUpdateController /*canChangeMute*/);
- index = mStreamStates[streamType].getIndex(device);
+ index = getVssForStreamOrDefault(streamType).getIndex(device);
}
}
@@ -4885,8 +4962,8 @@ public class AudioService extends IAudioService.Stub
Log.d(TAG, "setStreamVolume postSetLeAudioVolumeIndex index="
+ index + " stream=" + streamType);
}
- mDeviceBroker.postSetLeAudioVolumeIndex(index, mStreamStates[streamType].getMaxIndex(),
- streamType);
+ mDeviceBroker.postSetLeAudioVolumeIndex(index,
+ getVssForStreamOrDefault(streamType).getMaxIndex(), streamType);
}
if (device == AudioSystem.DEVICE_OUT_HEARING_AID
@@ -4916,7 +4993,7 @@ public class AudioService extends IAudioService.Stub
// ada is non-null when called from setDeviceVolume,
// which shouldn't update the mute state
canChangeMuteAndUpdateController /*canChangeMute*/);
- index = mStreamStates[streamType].getIndex(device);
+ index = getVssForStreamOrDefault(streamType).getIndex(device);
}
}
@@ -5099,7 +5176,7 @@ public class AudioService extends IAudioService.Stub
// UI update and Broadcast Intent
protected void sendVolumeUpdate(int streamType, int oldIndex, int index, int flags, int device)
{
- streamType = mStreamVolumeAlias[streamType];
+ streamType = sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound=*/-1);
if (streamType == AudioSystem.STREAM_MUSIC && isFullVolumeDevice(device)) {
flags &= ~AudioManager.FLAG_SHOW_UI;
@@ -5147,7 +5224,7 @@ public class AudioService extends IAudioService.Stub
if (isFullVolumeDevice(device)) {
return;
}
- VolumeStreamState streamState = mStreamStates[streamType];
+ final VolumeStreamState streamState = getVssForStreamOrDefault(streamType);
if (streamState.setIndex(index, device, caller, hasModifyAudioSettings) || force) {
// Post message to set system volume (it in turn will post a message
@@ -5171,7 +5248,7 @@ public class AudioService extends IAudioService.Stub
synchronized (VolumeStreamState.class) {
ensureValidStreamType(streamType);
- return mStreamStates[streamType].mIsMuted;
+ return getVssForStreamOrDefault(streamType).mIsMuted;
}
}
@@ -5270,7 +5347,7 @@ public class AudioService extends IAudioService.Stub
if (applyRequired) {
// Assumes only STREAM_MUSIC going through DEVICE_OUT_REMOTE_SUBMIX
checkAllFixedVolumeDevices(AudioSystem.STREAM_MUSIC);
- mStreamStates[AudioSystem.STREAM_MUSIC].applyAllVolumes();
+ getVssForStreamOrDefault(AudioSystem.STREAM_MUSIC).applyAllVolumes();
}
}
}
@@ -5351,15 +5428,16 @@ public class AudioService extends IAudioService.Stub
private int getStreamVolume(int streamType, int device) {
synchronized (VolumeStreamState.class) {
- int index = mStreamStates[streamType].getIndex(device);
+ final VolumeStreamState vss = getVssForStreamOrDefault(streamType);
+ int index = vss.getIndex(device);
// by convention getStreamVolume() returns 0 when a stream is muted.
- if (mStreamStates[streamType].mIsMuted) {
+ if (vss.mIsMuted) {
index = 0;
}
- if (index != 0 && (mStreamVolumeAlias[streamType] == AudioSystem.STREAM_MUSIC) &&
- isFixedVolumeDevice(device)) {
- index = mStreamStates[streamType].getMaxIndex();
+ if (index != 0 && (sStreamVolumeAlias.get(streamType) == AudioSystem.STREAM_MUSIC)
+ && isFixedVolumeDevice(device)) {
+ index = vss.getMaxIndex();
}
return (index + 5) / 10;
}
@@ -5382,20 +5460,27 @@ public class AudioService extends IAudioService.Stub
return getDefaultVolumeInfo();
}
- int streamType = vi.getStreamType();
+ int streamType = replaceBtScoStreamWithVoiceCall(vi.getStreamType(), "getStreamMaxVolume");
final VolumeInfo.Builder vib = new VolumeInfo.Builder(vi);
- vib.setMinVolumeIndex((mStreamStates[streamType].mIndexMin + 5) / 10);
- vib.setMaxVolumeIndex((mStreamStates[streamType].mIndexMax + 5) / 10);
+ final VolumeStreamState vss = getVssForStream(streamType);
+ if (vss == null) {
+ Log.w(TAG,
+ "getDeviceVolume unsupported stream type " + streamType + ". Return default");
+ return getDefaultVolumeInfo();
+ }
+
+ vib.setMinVolumeIndex((vss.mIndexMin + 5) / 10);
+ vib.setMaxVolumeIndex((vss.mIndexMax + 5) / 10);
synchronized (VolumeStreamState.class) {
final int index;
if (isFixedVolumeDevice(ada.getInternalType())) {
- index = (mStreamStates[streamType].mIndexMax + 5) / 10;
+ index = (vss.mIndexMax + 5) / 10;
} else {
- index = (mStreamStates[streamType].getIndex(ada.getInternalType()) + 5) / 10;
+ index = (vss.getIndex(ada.getInternalType()) + 5) / 10;
}
vib.setVolumeIndex(index);
// only set as a mute command if stream muted
- if (mStreamStates[streamType].mIsMuted) {
+ if (vss.mIsMuted) {
vib.setMuted(true);
}
return vib.build();
@@ -5406,7 +5491,7 @@ public class AudioService extends IAudioService.Stub
public int getStreamMaxVolume(int streamType) {
streamType = replaceBtScoStreamWithVoiceCall(streamType, "getStreamMaxVolume");
ensureValidStreamType(streamType);
- return (mStreamStates[streamType].getMaxIndex() + 5) / 10;
+ return (getVssForStreamOrDefault(streamType).getMaxIndex() + 5) / 10;
}
/** @see AudioManager#getStreamMinVolumeInt(int)
@@ -5419,7 +5504,7 @@ public class AudioService extends IAudioService.Stub
|| callingHasAudioSettingsPermission()
|| (mContext.checkCallingPermission(MODIFY_AUDIO_ROUTING)
== PackageManager.PERMISSION_GRANTED);
- return (mStreamStates[streamType].getMinIndex(isPrivileged) + 5) / 10;
+ return (getVssForStreamOrDefault(streamType).getMinIndex(isPrivileged) + 5) / 10;
}
@android.annotation.EnforcePermission(QUERY_AUDIO_STATE)
@@ -5432,7 +5517,7 @@ public class AudioService extends IAudioService.Stub
ensureValidStreamType(streamType);
int device = getDeviceForStream(streamType);
- return (mStreamStates[streamType].getIndex(device) + 5) / 10;
+ return (getVssForStreamOrDefault(streamType).getIndex(device) + 5) / 10;
}
/**
@@ -5502,9 +5587,10 @@ public class AudioService extends IAudioService.Stub
.boxed().toList());
}
ArrayList<Integer> res = new ArrayList(1);
- for (int stream : mStreamVolumeAlias) {
- if (stream >= 0 && !res.contains(stream)) {
- res.add(stream);
+ for (int stream = 0; stream < sStreamVolumeAlias.size(); ++stream) {
+ final int streamAlias = sStreamVolumeAlias.valueAt(stream);
+ if (!res.contains(streamAlias)) {
+ res.add(streamAlias);
}
}
return res;
@@ -5525,7 +5611,7 @@ public class AudioService extends IAudioService.Stub
// verify parameters
ensureValidStreamType(sourceStreamType);
- return mStreamVolumeAlias[sourceStreamType];
+ return sStreamVolumeAlias.get(sourceStreamType, /*valueIfKeyNotFound=*/-1);
}
/**
@@ -5547,7 +5633,7 @@ public class AudioService extends IAudioService.Stub
*/
public int getUiSoundsStreamType() {
return mUseVolumeGroupAliases ? STREAM_VOLUME_ALIAS_VOICE[AudioSystem.STREAM_SYSTEM]
- : mStreamVolumeAlias[AudioSystem.STREAM_SYSTEM];
+ : sStreamVolumeAlias.get(AudioSystem.STREAM_SYSTEM);
}
/**
@@ -5559,7 +5645,7 @@ public class AudioService extends IAudioService.Stub
return mUseVolumeGroupAliases
? STREAM_VOLUME_ALIAS_VOICE[aliasStreamType]
== STREAM_VOLUME_ALIAS_VOICE[AudioSystem.STREAM_SYSTEM]
- : aliasStreamType == mStreamVolumeAlias[AudioSystem.STREAM_SYSTEM];
+ : aliasStreamType == sStreamVolumeAlias.get(AudioSystem.STREAM_SYSTEM);
}
/** @see AudioManager#setMicrophoneMute(boolean) */
@@ -5853,6 +5939,10 @@ public class AudioService extends IAudioService.Stub
forceUse, eventSource, 0);
for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
+ final VolumeStreamState vss = getVssForStream(streamType);
+ if (vss == null) {
+ continue;
+ }
final boolean isMuted = isStreamMutedByRingerOrZenMode(streamType);
final boolean muteAllowedBySco =
!((shouldRingSco || shouldRingBle) && streamType == AudioSystem.STREAM_RING);
@@ -5863,10 +5953,9 @@ public class AudioService extends IAudioService.Stub
if (!shouldMute) {
// unmute
// ring and notifications volume should never be 0 when not silenced
- if (mStreamVolumeAlias[streamType] == AudioSystem.STREAM_RING
- || mStreamVolumeAlias[streamType] == AudioSystem.STREAM_NOTIFICATION) {
+ if (sStreamVolumeAlias.get(streamType) == AudioSystem.STREAM_RING
+ || sStreamVolumeAlias.get(streamType) == AudioSystem.STREAM_NOTIFICATION) {
synchronized (VolumeStreamState.class) {
- final VolumeStreamState vss = mStreamStates[streamType];
for (int i = 0; i < vss.mIndexMap.size(); i++) {
int device = vss.mIndexMap.keyAt(i);
int value = vss.mIndexMap.valueAt(i);
@@ -5881,20 +5970,20 @@ public class AudioService extends IAudioService.Stub
SENDMSG_QUEUE,
device,
0,
- mStreamStates[streamType],
+ vss,
PERSIST_DELAY);
}
}
sRingerAndZenModeMutedStreams &= ~(1 << streamType);
sMuteLogger.enqueue(new AudioServiceEvents.RingerZenMutedStreamsEvent(
sRingerAndZenModeMutedStreams, "muteRingerModeStreams"));
- mStreamStates[streamType].mute(false, "muteRingerModeStreams");
+ vss.mute(false, "muteRingerModeStreams");
} else {
// mute
sRingerAndZenModeMutedStreams |= (1 << streamType);
sMuteLogger.enqueue(new AudioServiceEvents.RingerZenMutedStreamsEvent(
sRingerAndZenModeMutedStreams, "muteRingerModeStreams"));
- mStreamStates[streamType].mute(true, "muteRingerModeStreams");
+ vss.mute(true, "muteRingerModeStreams");
}
}
}
@@ -6317,15 +6406,15 @@ public class AudioService extends IAudioService.Stub
final int streamType = getActiveStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
final int device = getDeviceForStream(streamType);
- final int streamAlias = mStreamVolumeAlias[streamType];
+ final int streamAlias = sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound=*/
+ -1);
if (DEBUG_MODE) {
Log.v(TAG, "onUpdateAudioMode: streamType=" + streamType
+ ", streamAlias=" + streamAlias);
}
- final int index = mStreamStates[streamAlias].getIndex(device);
- final int maxIndex = mStreamStates[streamAlias].getMaxIndex();
+ final int index = getVssForStreamOrDefault(streamAlias).getIndex(device);
setStreamVolumeInt(streamAlias, index, device, true,
requesterPackage, true /*hasModifyAudioSettings*/);
@@ -6630,13 +6719,13 @@ public class AudioService extends IAudioService.Stub
// restore volume settings
int numStreamTypes = AudioSystem.getNumStreamTypes();
for (int streamType = 0; streamType < numStreamTypes; streamType++) {
- VolumeStreamState streamState = mStreamStates[streamType];
+ final VolumeStreamState streamState = getVssForStream(streamType);
if (streamState == null) {
continue;
}
- if (userSwitch && mStreamVolumeAlias[streamType] == AudioSystem.STREAM_MUSIC) {
+ if (userSwitch && sStreamVolumeAlias.get(streamType) == AudioSystem.STREAM_MUSIC) {
continue;
}
@@ -7204,7 +7293,7 @@ public class AudioService extends IAudioService.Stub
} else {
ringerModeAffectedStreams |= (1 << AudioSystem.STREAM_SYSTEM_ENFORCED);
}
- if (mStreamVolumeAlias[AudioSystem.STREAM_DTMF] == AudioSystem.STREAM_RING) {
+ if (sStreamVolumeAlias.get(AudioSystem.STREAM_DTMF) == AudioSystem.STREAM_RING) {
ringerModeAffectedStreams |= (1 << AudioSystem.STREAM_DTMF);
} else {
ringerModeAffectedStreams &= ~(1 << AudioSystem.STREAM_DTMF);
@@ -7260,7 +7349,7 @@ public class AudioService extends IAudioService.Stub
}
private void ensureValidStreamType(int streamType) {
- if (streamType < 0 || streamType >= mStreamStates.length) {
+ if (streamType < 0 || streamType >= AudioSystem.getNumStreamTypes()) {
throw new IllegalArgumentException("Bad stream type " + streamType);
}
}
@@ -7525,9 +7614,10 @@ public class AudioService extends IAudioService.Stub
? MIN_STREAM_VOLUME[AudioSystem.STREAM_ALARM]
: Math.min(idx + 1, MAX_STREAM_VOLUME[AudioSystem.STREAM_ALARM]);
// update the VolumeStreamState for STREAM_ALARM and its aliases
- for (int stream : mStreamVolumeAlias) {
- if (stream >= 0 && mStreamVolumeAlias[stream] == AudioSystem.STREAM_ALARM) {
- mStreamStates[stream].updateNoPermMinIndex(safeIndex);
+ for (int stream = 0; stream < sStreamVolumeAlias.size(); ++stream) {
+ final int streamAlias = sStreamVolumeAlias.valueAt(stream);
+ if (streamAlias == AudioSystem.STREAM_ALARM) {
+ getVssForStreamOrDefault(streamAlias).updateNoPermMinIndex(safeIndex);
}
}
}
@@ -7642,21 +7732,21 @@ public class AudioService extends IAudioService.Stub
stream = replaceBtScoStreamWithVoiceCall(stream, "getDeviceSetForStream");
ensureValidStreamType(stream);
synchronized (VolumeStreamState.class) {
- return mStreamStates[stream].observeDevicesForStream_syncVSS(true);
+ return getVssForStreamOrDefault(stream).observeDevicesForStream_syncVSS(true);
}
}
private void onObserveDevicesForAllStreams(int skipStream) {
synchronized (mSettingsLock) {
synchronized (VolumeStreamState.class) {
- for (int stream = 0; stream < mStreamStates.length; stream++) {
- if (stream != skipStream && mStreamStates[stream] != null) {
+ for (int stream = 0; stream < mStreamStates.size(); stream++) {
+ final VolumeStreamState vss = mStreamStates.valueAt(stream);
+ if (vss != null && vss.getStreamType() != skipStream) {
Set<Integer> deviceSet =
- mStreamStates[stream].observeDevicesForStream_syncVSS(
- false /*checkOthers*/);
+ vss.observeDevicesForStream_syncVSS(false /*checkOthers*/);
for (Integer device : deviceSet) {
// Update volume states for devices routed for the stream
- updateVolumeStates(device, stream,
+ updateVolumeStates(device, vss.getStreamType(),
"AudioService#onObserveDevicesForAllStreams");
}
}
@@ -7689,7 +7779,7 @@ public class AudioService extends IAudioService.Stub
private void onUpdateScoDeviceActive(boolean scoDeviceActive) {
if (mScoDeviceActive.compareAndSet(!scoDeviceActive, scoDeviceActive)) {
- getVssVolumeForStream(AudioSystem.STREAM_VOICE_CALL).updateIndexFactors();
+ getVssForStreamOrDefault(AudioSystem.STREAM_VOICE_CALL).updateIndexFactors();
}
}
@@ -8084,7 +8174,7 @@ public class AudioService extends IAudioService.Stub
/** only public for mocking/spying, do not call outside of AudioService */
@VisibleForTesting
public void setMusicMute(boolean mute) {
- mStreamStates[AudioSystem.STREAM_MUSIC].muteInternally(mute);
+ getVssForStreamOrDefault(AudioSystem.STREAM_MUSIC).muteInternally(mute);
}
private static final Set<Integer> DEVICE_MEDIA_UNMUTED_ON_PLUG_SET;
@@ -8115,8 +8205,8 @@ public class AudioService extends IAudioService.Stub
if (mNm.getZenMode() != Settings.Global.ZEN_MODE_NO_INTERRUPTIONS
&& !isStreamMutedByRingerOrZenMode(AudioSystem.STREAM_MUSIC)
&& DEVICE_MEDIA_UNMUTED_ON_PLUG_SET.contains(newDevice)
- && mStreamStates[AudioSystem.STREAM_MUSIC].mIsMuted
- && mStreamStates[AudioSystem.STREAM_MUSIC].getIndex(newDevice) != 0
+ && getVssForStreamOrDefault(AudioSystem.STREAM_MUSIC).mIsMuted
+ && getVssForStreamOrDefault(AudioSystem.STREAM_MUSIC).getIndex(newDevice) != 0
&& getDeviceSetForStreamDirect(AudioSystem.STREAM_MUSIC).contains(newDevice)) {
if (DEBUG_VOL) {
Log.i(TAG, String.format("onAccessoryPlugMediaUnmute unmuting device=%d [%s]",
@@ -8125,7 +8215,8 @@ public class AudioService extends IAudioService.Stub
// Locking mSettingsLock to avoid inversion when calling vss.mute -> vss.doMute ->
// vss.updateVolumeGroupIndex
synchronized (mSettingsLock) {
- mStreamStates[AudioSystem.STREAM_MUSIC].mute(false, "onAccessoryPlugMediaUnmute");
+ getVssForStreamOrDefault(AudioSystem.STREAM_MUSIC).mute(false,
+ "onAccessoryPlugMediaUnmute");
}
}
}
@@ -8296,8 +8387,8 @@ public class AudioService extends IAudioService.Stub
}
if (replaceStreamBtSco()) {
- mIndexMin = mStreamStates[mPublicStreamType].getMinIndex() / 10;
- mIndexMax = mStreamStates[mPublicStreamType].getMaxIndex() / 10;
+ mIndexMin = getVssForStreamOrDefault(mPublicStreamType).getMinIndex() / 10;
+ mIndexMax = getVssForStreamOrDefault(mPublicStreamType).getMaxIndex() / 10;
} else {
mIndexMin = MIN_STREAM_VOLUME[mPublicStreamType];
mIndexMax = MAX_STREAM_VOLUME[mPublicStreamType];
@@ -8334,7 +8425,7 @@ public class AudioService extends IAudioService.Stub
*/
private boolean isVssMuteBijective(int stream) {
return isStreamAffectedByMute(stream)
- && (getMinIndex() == (mStreamStates[stream].getMinIndex() + 5) / 10)
+ && (getMinIndex() == (getVssForStreamOrDefault(stream).getMinIndex() + 5) / 10)
&& (getMinIndex() == 0 || isCallStream(stream));
}
@@ -8380,7 +8471,8 @@ public class AudioService extends IAudioService.Stub
return;
}
- float stepFactor = mStreamStates[mPublicStreamType].getIndexStepFactor();
+ float stepFactor = getVssForStreamOrDefault(
+ mPublicStreamType).getIndexStepFactor();
switch (direction) {
case AudioManager.ADJUST_TOGGLE_MUTE: {
// Note: If muted by volume 0, unmute will restore volume 0.
@@ -8476,7 +8568,7 @@ public class AudioService extends IAudioService.Stub
// This allows RX path muting by the audio HAL only when explicitly muted but not when
// index is just set to 0 to repect BT requirements
if (mHasValidStreamType && isVssMuteBijective(mPublicStreamType)
- && mStreamStates[mPublicStreamType].isFullyMuted()) {
+ && getVssForStreamOrDefault(mPublicStreamType).isFullyMuted()) {
index = 0;
} else if (isStreamBluetoothSco(mPublicStreamType) && index == 0) {
index = 1;
@@ -8484,7 +8576,7 @@ public class AudioService extends IAudioService.Stub
if (replaceStreamBtSco()) {
index = (int) (mIndexMin + (index - mIndexMin)
- / mStreamStates[mPublicStreamType].getIndexStepFactor());
+ / getVssForStreamOrDefault(mPublicStreamType).getIndexStepFactor());
}
if (DEBUG_VOL) {
@@ -8517,7 +8609,7 @@ public class AudioService extends IAudioService.Stub
}
private boolean isValidStream(int stream) {
- return (stream != AudioSystem.STREAM_DEFAULT) && (stream < mStreamStates.length);
+ return (stream != AudioSystem.STREAM_DEFAULT) && getVssForStream(stream) != null;
}
public boolean isMusic() {
@@ -8535,10 +8627,10 @@ public class AudioService extends IAudioService.Stub
if (device != AudioSystem.DEVICE_OUT_DEFAULT) {
for (int stream : getLegacyStreamTypes()) {
if (isValidStream(stream)) {
- boolean streamMuted = mStreamStates[stream].mIsMuted;
+ final VolumeStreamState vss = getVssForStreamOrDefault(stream);
+ boolean streamMuted = vss.mIsMuted;
int deviceForStream = getDeviceForStream(stream);
- int indexForStream =
- (mStreamStates[stream].getIndex(deviceForStream) + 5) / 10;
+ int indexForStream = (vss.getIndex(deviceForStream) + 5) / 10;
if (device == deviceForStream) {
if (indexForStream == index && (isMuted() == streamMuted)
&& isVssMuteBijective(stream)) {
@@ -8548,19 +8640,17 @@ public class AudioService extends IAudioService.Stub
if (vgsVssSyncMuteOrder()) {
if ((isMuted() != streamMuted) && isVssMuteBijective(
stream)) {
- mStreamStates[stream].mute(isMuted(),
- "VGS.applyAllVolumes#1");
+ vss.mute(isMuted(), "VGS.applyAllVolumes#1");
}
}
if (indexForStream != index) {
- mStreamStates[stream].setIndex(index * 10, device, caller,
- true /*hasModifyAudioSettings*/);
+ vss.setIndex(index * 10, device,
+ caller, true /*hasModifyAudioSettings*/);
}
if (!vgsVssSyncMuteOrder()) {
if ((isMuted() != streamMuted) && isVssMuteBijective(
stream)) {
- mStreamStates[stream].mute(isMuted(),
- "VGS.applyAllVolumes#1");
+ vss.mute(isMuted(), "VGS.applyAllVolumes#1");
}
}
}
@@ -8584,11 +8674,12 @@ public class AudioService extends IAudioService.Stub
boolean forceDeviceSync = userSwitch && (mIndexMap.indexOfKey(deviceForVolume) < 0);
for (int stream : getLegacyStreamTypes()) {
if (isValidStream(stream)) {
- boolean streamMuted = mStreamStates[stream].mIsMuted;
- int defaultStreamIndex = (mStreamStates[stream].getIndex(
- AudioSystem.DEVICE_OUT_DEFAULT) + 5) / 10;
+ final VolumeStreamState vss = getVssForStreamOrDefault(stream);
+ boolean streamMuted = vss.mIsMuted;
+ int defaultStreamIndex = (vss.getIndex(AudioSystem.DEVICE_OUT_DEFAULT) + 5)
+ / 10;
if (forceDeviceSync) {
- mStreamStates[stream].setIndex(index * 10, deviceForVolume, caller,
+ vss.setIndex(index * 10, deviceForVolume, caller,
true /*hasModifyAudioSettings*/);
}
if (defaultStreamIndex == index && (isMuted() == streamMuted)
@@ -8597,12 +8688,11 @@ public class AudioService extends IAudioService.Stub
continue;
}
if (defaultStreamIndex != index) {
- mStreamStates[stream].setIndex(
- index * 10, AudioSystem.DEVICE_OUT_DEFAULT, caller,
+ vss.setIndex(index * 10, AudioSystem.DEVICE_OUT_DEFAULT, caller,
true /*hasModifyAudioSettings*/);
}
if ((isMuted() != streamMuted) && isVssMuteBijective(stream)) {
- mStreamStates[stream].mute(isMuted(), "VGS.applyAllVolumes#2");
+ vss.mute(isMuted(), "VGS.applyAllVolumes#2");
}
}
}
@@ -8950,7 +9040,7 @@ public class AudioService extends IAudioService.Stub
postObserveDevicesForAllStreams(mStreamType);
}
// log base stream changes to the event log
- if (mStreamVolumeAlias[mStreamType] == mStreamType) {
+ if (sStreamVolumeAlias.get(mStreamType, /*valueIfKeyNotFound=*/-1) == mStreamType) {
EventLogTags.writeStreamDevicesChanged(mStreamType, prevDevices, devices);
}
// send STREAM_DEVICES_CHANGED_ACTION on the message handler so it is scheduled after
@@ -9202,10 +9292,11 @@ public class AudioService extends IAudioService.Stub
isCurrentDevice = (device == getDeviceForStream(mStreamType));
final int numStreamTypes = AudioSystem.getNumStreamTypes();
for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
- final VolumeStreamState aliasStreamState = mStreamStates[streamType];
- if (streamType != mStreamType &&
- mStreamVolumeAlias[streamType] == mStreamType &&
- (changed || !aliasStreamState.hasIndexForDevice(device))) {
+ final VolumeStreamState aliasStreamState = getVssForStream(streamType);
+ if (aliasStreamState != null && streamType != mStreamType
+ && sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound*/-1)
+ == mStreamType && (changed || !aliasStreamState.hasIndexForDevice(
+ device))) {
final int scaledIndex =
rescaleIndex(aliasIndex, mStreamType, streamType);
boolean changedAlias = aliasStreamState.setIndex(scaledIndex, device,
@@ -9240,7 +9331,7 @@ public class AudioService extends IAudioService.Stub
oldIndex = (oldIndex + 5) / 10;
index = (index + 5) / 10;
// log base stream changes to the event log
- if (mStreamVolumeAlias[mStreamType] == mStreamType) {
+ if (sStreamVolumeAlias.get(mStreamType, /*valueIfKeyNotFound=*/-1) == mStreamType) {
if (caller == null) {
Log.w(TAG, "No caller for volume_changed event", new Throwable());
}
@@ -9252,7 +9343,9 @@ public class AudioService extends IAudioService.Stub
if ((index != oldIndex) && isCurrentDevice) {
// for single volume devices, only send the volume change broadcast
// on the alias stream
- if (!mIsSingleVolume || (mStreamVolumeAlias[mStreamType] == mStreamType)) {
+ final int streamAlias = sStreamVolumeAlias.get(
+ mStreamType, /*valueIfKeyNotFound=*/-1);
+ if (!mIsSingleVolume || streamAlias == mStreamType) {
mVolumeChanged.putExtra(AudioManager.EXTRA_VOLUME_STREAM_VALUE, index);
mVolumeChanged.putExtra(AudioManager.EXTRA_PREV_VOLUME_STREAM_VALUE,
oldIndex);
@@ -9267,9 +9360,9 @@ public class AudioService extends IAudioService.Stub
mStreamType);
}
mVolumeChanged.putExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE_ALIAS,
- mStreamVolumeAlias[mStreamType]);
+ streamAlias);
- if (mStreamType == mStreamVolumeAlias[mStreamType]) {
+ if (mStreamType == streamAlias) {
String aliasStreamIndexesString = "";
if (!aliasStreamIndexes.isEmpty()) {
aliasStreamIndexesString =
@@ -9527,7 +9620,7 @@ public class AudioService extends IAudioService.Stub
public void checkFixedVolumeDevices() {
synchronized (VolumeStreamState.class) {
// ignore settings for fixed volume devices: volume should always be at max or 0
- if (mStreamVolumeAlias[mStreamType] == AudioSystem.STREAM_MUSIC) {
+ if (sStreamVolumeAlias.get(mStreamType) == AudioSystem.STREAM_MUSIC) {
for (int i = 0; i < mIndexMap.size(); i++) {
int device = mIndexMap.keyAt(i);
int index = mIndexMap.valueAt(i);
@@ -9673,7 +9766,11 @@ public class AudioService extends IAudioService.Stub
}
private void onSetVolumeIndexOnDevice(@NonNull DeviceVolumeUpdate update) {
- final VolumeStreamState streamState = mStreamStates[update.mStreamType];
+ final VolumeStreamState streamState = getVssForStream(update.mStreamType);
+ if (streamState == null) {
+ Log.w(TAG, "Invalid onSetVolumeIndexOnDevice for stream type " + update.mStreamType);
+ return;
+ }
if (update.hasVolumeIndex()) {
int index = update.getVolumeIndex();
if (mSoundDoseHelper.checkSafeMediaVolume(update.mStreamType, index, update.mDevice)) {
@@ -9704,8 +9801,10 @@ public class AudioService extends IAudioService.Stub
// Apply change to all streams using this one as alias
int numStreamTypes = AudioSystem.getNumStreamTypes();
for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
- if (streamType != streamState.mStreamType &&
- mStreamVolumeAlias[streamType] == streamState.mStreamType) {
+ final VolumeStreamState vss = getVssForStream(streamType);
+ if (vss != null && streamType != streamState.mStreamType
+ && sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound=*/-1)
+ == streamState.mStreamType) {
// Make sure volume is also maxed out on A2DP device for aliased stream
// that may have a different device selected
int streamDevice = getDeviceForStream(streamType);
@@ -9713,9 +9812,9 @@ public class AudioService extends IAudioService.Stub
&& (isAbsoluteVolumeDevice(device)
|| isA2dpAbsoluteVolumeDevice(device)
|| AudioSystem.isLeAudioDeviceType(device))) {
- mStreamStates[streamType].applyDeviceVolume_syncVSS(device);
+ vss.applyDeviceVolume_syncVSS(device);
}
- mStreamStates[streamType].applyDeviceVolume_syncVSS(streamDevice);
+ vss.applyDeviceVolume_syncVSS(streamDevice);
}
}
}
@@ -9749,9 +9848,11 @@ public class AudioService extends IAudioService.Stub
// Apply change to all streams using this one as alias
int numStreamTypes = AudioSystem.getNumStreamTypes();
for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
- if (streamType != streamState.mStreamType &&
- mStreamVolumeAlias[streamType] == streamState.mStreamType) {
- mStreamStates[streamType].applyAllVolumes();
+ final VolumeStreamState vss = getVssForStream(streamType);
+ if (vss != null && streamType != streamState.mStreamType
+ && sStreamVolumeAlias.get(streamType, /*valueIfKeyNotFound=*/-1)
+ == streamState.mStreamType) {
+ vss.applyAllVolumes();
}
}
}
@@ -10201,7 +10302,7 @@ public class AudioService extends IAudioService.Stub
}
sendMsg(mAudioHandler, MSG_SET_DEVICE_VOLUME, SENDMSG_QUEUE,
AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, 0,
- mStreamStates[AudioSystem.STREAM_MUSIC], 0);
+ getVssForStreamOrDefault(AudioSystem.STREAM_MUSIC), 0);
}
/**
@@ -10321,7 +10422,7 @@ public class AudioService extends IAudioService.Stub
SENDMSG_QUEUE,
0,
0,
- mStreamStates[AudioSystem.STREAM_MUSIC], 0);
+ getVssForStreamOrDefault(AudioSystem.STREAM_MUSIC), 0);
} else if (action.equals(Intent.ACTION_USER_BACKGROUND)) {
// Disable audio recording for the background user/profile
int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, -1);
@@ -11488,13 +11589,15 @@ public class AudioService extends IAudioService.Stub
if (cameraSoundForcedChanged) {
if (!mIsSingleVolume) {
synchronized (VolumeStreamState.class) {
- VolumeStreamState s = mStreamStates[AudioSystem.STREAM_SYSTEM_ENFORCED];
+ final VolumeStreamState s = getVssForStreamOrDefault(
+ AudioSystem.STREAM_SYSTEM_ENFORCED);
if (cameraSoundForced) {
s.setAllIndexesToMax();
mRingerModeAffectedStreams &=
~(1 << AudioSystem.STREAM_SYSTEM_ENFORCED);
} else {
- s.setAllIndexes(mStreamStates[AudioSystem.STREAM_SYSTEM], TAG);
+ s.setAllIndexes(getVssForStreamOrDefault(AudioSystem.STREAM_SYSTEM),
+ TAG);
mRingerModeAffectedStreams |=
(1 << AudioSystem.STREAM_SYSTEM_ENFORCED);
}
@@ -11511,7 +11614,7 @@ public class AudioService extends IAudioService.Stub
SENDMSG_QUEUE,
0,
0,
- mStreamStates[AudioSystem.STREAM_SYSTEM_ENFORCED], 0);
+ getVssForStreamOrDefault(AudioSystem.STREAM_SYSTEM_ENFORCED), 0);
}
}
diff --git a/services/core/java/com/android/server/audio/SoundDoseHelper.java b/services/core/java/com/android/server/audio/SoundDoseHelper.java
index ded93e60cd6f..dc79ab26d3b8 100644
--- a/services/core/java/com/android/server/audio/SoundDoseHelper.java
+++ b/services/core/java/com/android/server/audio/SoundDoseHelper.java
@@ -633,7 +633,7 @@ public class SoundDoseHelper {
}
/*package*/ void enforceSafeMediaVolume(String caller) {
- AudioService.VolumeStreamState streamState = mAudioService.getVssVolumeForStream(
+ AudioService.VolumeStreamState streamState = mAudioService.getVssForStreamOrDefault(
AudioSystem.STREAM_MUSIC);
for (int i = 0; i < mSafeMediaVolumeDevices.size(); ++i) {
@@ -665,7 +665,7 @@ public class SoundDoseHelper {
@GuardedBy("mSafeMediaVolumeStateLock")
private boolean checkSafeMediaVolume_l(int streamType, int index, int device) {
return (mSafeMediaVolumeState == SAFE_MEDIA_VOLUME_ACTIVE)
- && (AudioService.mStreamVolumeAlias[streamType] == AudioSystem.STREAM_MUSIC)
+ && (AudioService.sStreamVolumeAlias.get(streamType) == AudioSystem.STREAM_MUSIC)
&& safeDevicesContains(device)
&& (index > safeMediaVolumeIndex(device));
}
@@ -908,7 +908,7 @@ public class SoundDoseHelper {
return;
}
- if (AudioService.mStreamVolumeAlias[streamType] == AudioSystem.STREAM_MUSIC
+ if (AudioService.sStreamVolumeAlias.get(streamType) == AudioSystem.STREAM_MUSIC
&& safeDevicesContains(device)) {
float attenuationDb = -AudioSystem.getStreamVolumeDB(AudioSystem.STREAM_MUSIC,
(newIndex + 5) / 10, device);
diff --git a/services/core/java/com/android/server/biometrics/BiometricService.java b/services/core/java/com/android/server/biometrics/BiometricService.java
index 8ec835bae0bf..fe73bfe178f0 100644
--- a/services/core/java/com/android/server/biometrics/BiometricService.java
+++ b/services/core/java/com/android/server/biometrics/BiometricService.java
@@ -269,6 +269,7 @@ public class BiometricService extends SystemService {
private final ContentResolver mContentResolver;
private final List<BiometricService.EnabledOnKeyguardCallback> mCallbacks;
+ private final UserManager mUserManager;
private final Map<Integer, Boolean> mBiometricEnabledOnKeyguard = new HashMap<>();
private final Map<Integer, Boolean> mBiometricEnabledForApps = new HashMap<>();
@@ -291,6 +292,7 @@ public class BiometricService extends SystemService {
super(handler);
mContentResolver = context.getContentResolver();
mCallbacks = callbacks;
+ mUserManager = context.getSystemService(UserManager.class);
final boolean hasFingerprint = context.getPackageManager()
.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT);
@@ -301,14 +303,6 @@ public class BiometricService extends SystemService {
mUseLegacyFaceOnlySettings =
Build.VERSION.DEVICE_INITIAL_SDK_INT <= Build.VERSION_CODES.Q
&& hasFace && !hasFingerprint;
- mMandatoryBiometricsEnabled.put(context.getUserId(), Settings.Secure.getIntForUser(
- mContentResolver, Settings.Secure.MANDATORY_BIOMETRICS,
- DEFAULT_MANDATORY_BIOMETRICS_STATUS ? 1 : 0, context.getUserId()) != 0);
- mMandatoryBiometricsRequirementsSatisfied.put(context.getUserId(),
- Settings.Secure.getIntForUser(mContentResolver,
- Settings.Secure.MANDATORY_BIOMETRICS_REQUIREMENTS_SATISFIED,
- DEFAULT_MANDATORY_BIOMETRICS_REQUIREMENTS_SATISFIED_STATUS ? 1 : 0,
- context.getUserId()) != 0);
addBiometricListenersForMandatoryBiometrics(context);
updateContentObserver();
@@ -391,18 +385,9 @@ public class BiometricService extends SystemService {
DEFAULT_APP_ENABLED ? 1 : 0 /* default */,
userId) != 0);
} else if (MANDATORY_BIOMETRICS_ENABLED.equals(uri)) {
- mMandatoryBiometricsEnabled.put(userId, Settings.Secure.getIntForUser(
- mContentResolver,
- Settings.Secure.MANDATORY_BIOMETRICS,
- DEFAULT_MANDATORY_BIOMETRICS_STATUS ? 1 : 0 /* default */,
- userId) != 0);
+ updateMandatoryBiometricsForAllProfiles();
} else if (MANDATORY_BIOMETRICS_REQUIREMENTS_SATISFIED.equals(uri)) {
- mMandatoryBiometricsRequirementsSatisfied.put(userId, Settings.Secure.getIntForUser(
- mContentResolver,
- Settings.Secure.MANDATORY_BIOMETRICS_REQUIREMENTS_SATISFIED,
- DEFAULT_MANDATORY_BIOMETRICS_REQUIREMENTS_SATISFIED_STATUS
- ? 1 : 0 /* default */,
- userId) != 0);
+ updateMandatoryBiometricsRequirementsForAllProfiles();
}
}
@@ -445,6 +430,12 @@ public class BiometricService extends SystemService {
}
public boolean getMandatoryBiometricsEnabledAndRequirementsSatisfiedForUser(int userId) {
+ if (!mMandatoryBiometricsEnabled.containsKey(userId)) {
+ updateMandatoryBiometricsForAllProfiles();
+ }
+ if (!mMandatoryBiometricsRequirementsSatisfied.containsKey(userId)) {
+ updateMandatoryBiometricsRequirementsForAllProfiles();
+ }
return mMandatoryBiometricsEnabled.getOrDefault(userId,
DEFAULT_MANDATORY_BIOMETRICS_STATUS)
&& mMandatoryBiometricsRequirementsSatisfied.getOrDefault(userId,
@@ -464,6 +455,28 @@ public class BiometricService extends SystemService {
}
}
+ private void updateMandatoryBiometricsForAllProfiles() {
+ final int mainUserId = mUserManager.getMainUser().getIdentifier();
+ for (UserHandle userHandle: mUserManager.getUserProfiles()) {
+ mMandatoryBiometricsEnabled.put(userHandle.getIdentifier(),
+ Settings.Secure.getIntForUser(
+ mContentResolver, Settings.Secure.MANDATORY_BIOMETRICS,
+ DEFAULT_MANDATORY_BIOMETRICS_STATUS ? 1 : 0,
+ mainUserId) != 0);
+ }
+ }
+
+ private void updateMandatoryBiometricsRequirementsForAllProfiles() {
+ final int mainUserId = mUserManager.getMainUser().getIdentifier();
+ for (UserHandle userHandle: mUserManager.getUserProfiles()) {
+ mMandatoryBiometricsRequirementsSatisfied.put(userHandle.getIdentifier(),
+ Settings.Secure.getIntForUser(mContentResolver,
+ Settings.Secure.MANDATORY_BIOMETRICS_REQUIREMENTS_SATISFIED,
+ DEFAULT_MANDATORY_BIOMETRICS_REQUIREMENTS_SATISFIED_STATUS ? 1 : 0,
+ mainUserId) != 0);
+ }
+ }
+
private void addBiometricListenersForMandatoryBiometrics(Context context) {
final FingerprintManager fingerprintManager = context.getSystemService(
FingerprintManager.class);
diff --git a/services/core/java/com/android/server/display/DisplayBrightnessState.java b/services/core/java/com/android/server/display/DisplayBrightnessState.java
index 222c5a83a551..dc611fc1d25b 100644
--- a/services/core/java/com/android/server/display/DisplayBrightnessState.java
+++ b/services/core/java/com/android/server/display/DisplayBrightnessState.java
@@ -332,6 +332,16 @@ public final class DisplayBrightnessState {
}
/**
+ * Sets the {@link BrightnessReason} using the int-based reason enum. This is a convenience
+ * function so we don't have to type out the constructor syntax everywhere.
+ *
+ * @param brightnessReason The int-based brightness enum.
+ */
+ public Builder setBrightnessReason(int brightnessReason) {
+ return setBrightnessReason(new BrightnessReason(brightnessReason));
+ }
+
+ /**
* Gets the {@link com.android.server.display.brightness.strategy.DisplayBrightnessStrategy}
* name
*/
diff --git a/services/core/java/com/android/server/display/brightness/BrightnessReason.java b/services/core/java/com/android/server/display/brightness/BrightnessReason.java
index 9bf10a77d056..9a0ee034a8f2 100644
--- a/services/core/java/com/android/server/display/brightness/BrightnessReason.java
+++ b/services/core/java/com/android/server/display/brightness/BrightnessReason.java
@@ -16,6 +16,7 @@
package com.android.server.display.brightness;
+import android.annotation.Nullable;
import android.util.Slog;
import java.util.Objects;
@@ -66,6 +67,16 @@ public final class BrightnessReason {
// Any number of MODIFIER_*
private int mModifier;
+ // Tag used to identify the source of the brightness (usually a specific activity/window).
+ private CharSequence mTag;
+
+ public BrightnessReason() {
+ }
+
+ public BrightnessReason(int reason) {
+ setReason(reason);
+ }
+
/**
* A utility to clone a BrightnessReason from another BrightnessReason event
*
@@ -74,6 +85,7 @@ public final class BrightnessReason {
public void set(BrightnessReason other) {
setReason(other == null ? REASON_UNKNOWN : other.mReason);
setModifier(other == null ? 0 : other.mModifier);
+ setTag(other == null ? null : other.mTag);
}
/**
@@ -85,19 +97,20 @@ public final class BrightnessReason {
setModifier(modifier | this.mModifier);
}
-
@Override
public boolean equals(Object obj) {
if (!(obj instanceof BrightnessReason)) {
return false;
}
BrightnessReason other = (BrightnessReason) obj;
- return other.mReason == mReason && other.mModifier == mModifier;
+ return other.mReason == mReason
+ && other.mModifier == mModifier
+ && Objects.equals(other.mTag != null ? other.mTag.toString() : null, mTag);
}
@Override
public int hashCode() {
- return Objects.hash(mReason, mModifier);
+ return Objects.hash(mReason, mModifier, mTag);
}
@Override
@@ -115,6 +128,11 @@ public final class BrightnessReason {
public String toString(int adjustments) {
final StringBuilder sb = new StringBuilder();
sb.append(reasonToString(mReason));
+
+ if (mTag != null) {
+ sb.append("(").append(mTag).append(")");
+ }
+
sb.append(" [");
if ((adjustments & ADJUSTMENT_AUTO_TEMP) != 0) {
sb.append(" temp_adj");
@@ -149,8 +167,23 @@ public final class BrightnessReason {
return sb.toString();
}
+ public void setTag(@Nullable CharSequence tag) {
+ mTag = tag;
+ }
+
/**
- * A utility to set the reason of the BrightnessReason object
+ * Gets the tag to identify who requested the brightness.
+ */
+ @Nullable public CharSequence getTag() {
+ return mTag;
+ }
+
+ public int getReason() {
+ return mReason;
+ }
+
+ /**
+ * Sets the reason of the BrightnessReason object
*
* @param reason The value to which the reason is to be updated.
*/
@@ -162,16 +195,12 @@ public final class BrightnessReason {
}
}
- public int getReason() {
- return mReason;
- }
-
public int getModifier() {
return mModifier;
}
/**
- * A utility to set the modified of the current BrightnessReason object
+ * Sets the modifier bitflags of the current BrightnessReason object
*
* @param modifier The value to which the modifier is to be updated
*/
diff --git a/services/core/java/com/android/server/display/brightness/strategy/OverrideBrightnessStrategy.java b/services/core/java/com/android/server/display/brightness/strategy/OverrideBrightnessStrategy.java
index 40a495c85467..3fc15d120434 100644
--- a/services/core/java/com/android/server/display/brightness/strategy/OverrideBrightnessStrategy.java
+++ b/services/core/java/com/android/server/display/brightness/strategy/OverrideBrightnessStrategy.java
@@ -16,9 +16,10 @@
package com.android.server.display.brightness.strategy;
+import android.hardware.display.DisplayManagerInternal.DisplayPowerRequest;
+
import com.android.server.display.DisplayBrightnessState;
import com.android.server.display.brightness.BrightnessReason;
-import com.android.server.display.brightness.BrightnessUtils;
import com.android.server.display.brightness.StrategyExecutionRequest;
import com.android.server.display.brightness.StrategySelectionNotifyRequest;
@@ -33,9 +34,14 @@ public class OverrideBrightnessStrategy implements DisplayBrightnessStrategy {
StrategyExecutionRequest strategyExecutionRequest) {
// Todo(b/241308599): Introduce a validator class and add validations before setting
// the brightness
- return BrightnessUtils.constructDisplayBrightnessState(BrightnessReason.REASON_OVERRIDE,
- strategyExecutionRequest.getDisplayPowerRequest().screenBrightnessOverride,
- getName());
+ DisplayPowerRequest dpr = strategyExecutionRequest.getDisplayPowerRequest();
+ BrightnessReason reason = new BrightnessReason(BrightnessReason.REASON_OVERRIDE);
+ reason.setTag(dpr.screenBrightnessOverrideTag);
+ return new DisplayBrightnessState.Builder()
+ .setBrightness(dpr.screenBrightnessOverride)
+ .setBrightnessReason(reason)
+ .setDisplayBrightnessStrategyName(getName())
+ .build();
}
@Override
diff --git a/services/core/java/com/android/server/inputmethod/DefaultImeVisibilityApplier.java b/services/core/java/com/android/server/inputmethod/DefaultImeVisibilityApplier.java
index 7c93c8b80897..5c939bc14ec7 100644
--- a/services/core/java/com/android/server/inputmethod/DefaultImeVisibilityApplier.java
+++ b/services/core/java/com/android/server/inputmethod/DefaultImeVisibilityApplier.java
@@ -202,7 +202,7 @@ final class DefaultImeVisibilityApplier {
break;
case STATE_HIDE_IME_EXPLICIT:
if (Flags.refactorInsetsController()) {
- setImeVisibilityOnFocusedWindowClient(false, userId);
+ setImeVisibilityOnFocusedWindowClient(false, userId, statsToken);
} else {
mService.hideCurrentInputLocked(windowToken, statsToken,
0 /* flags */, null /* resultReceiver */, reason, userId);
@@ -210,7 +210,7 @@ final class DefaultImeVisibilityApplier {
break;
case STATE_HIDE_IME_NOT_ALWAYS:
if (Flags.refactorInsetsController()) {
- setImeVisibilityOnFocusedWindowClient(false, userId);
+ setImeVisibilityOnFocusedWindowClient(false, userId, statsToken);
} else {
mService.hideCurrentInputLocked(windowToken, statsToken,
InputMethodManager.HIDE_NOT_ALWAYS, null /* resultReceiver */, reason,
@@ -221,7 +221,7 @@ final class DefaultImeVisibilityApplier {
if (Flags.refactorInsetsController()) {
// This can be triggered by IMMS#startInputOrWindowGainedFocus. We need to
// set the requestedVisibleTypes in InsetsController first, before applying it.
- setImeVisibilityOnFocusedWindowClient(true, userId);
+ setImeVisibilityOnFocusedWindowClient(true, userId, statsToken);
} else {
mService.showCurrentInputLocked(windowToken, statsToken,
InputMethodManager.SHOW_IMPLICIT, MotionEvent.TOOL_TYPE_UNKNOWN,
@@ -278,14 +278,17 @@ final class DefaultImeVisibilityApplier {
}
@GuardedBy("ImfLock.class")
- private void setImeVisibilityOnFocusedWindowClient(boolean visibility, @UserIdInt int userId) {
+ private void setImeVisibilityOnFocusedWindowClient(boolean visibility, @UserIdInt int userId,
+ @NonNull ImeTracker.Token statsToken) {
final var userData = mService.getUserData(userId);
if (userData.mImeBindingState != null
&& userData.mImeBindingState.mFocusedWindowClient != null
&& userData.mImeBindingState.mFocusedWindowClient.mClient != null) {
- userData.mImeBindingState.mFocusedWindowClient.mClient.setImeVisibility(visibility);
+ userData.mImeBindingState.mFocusedWindowClient.mClient.setImeVisibility(visibility,
+ statsToken);
} else {
- // TODO(b/329229469): ImeTracker?
+ ImeTracker.forLogging().onFailed(statsToken,
+ ImeTracker.PHASE_SERVER_SET_VISIBILITY_ON_FOCUSED_WINDOW);
}
}
}
diff --git a/services/core/java/com/android/server/inputmethod/IInputMethodClientInvoker.java b/services/core/java/com/android/server/inputmethod/IInputMethodClientInvoker.java
index eada2882e410..650ea605d391 100644
--- a/services/core/java/com/android/server/inputmethod/IInputMethodClientInvoker.java
+++ b/services/core/java/com/android/server/inputmethod/IInputMethodClientInvoker.java
@@ -25,6 +25,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Slog;
+import android.view.inputmethod.ImeTracker;
import com.android.internal.inputmethod.IInputMethodClient;
import com.android.internal.inputmethod.InputBindResult;
@@ -250,18 +251,18 @@ final class IInputMethodClientInvoker {
}
@AnyThread
- void setImeVisibility(boolean visible) {
+ void setImeVisibility(boolean visible, @Nullable ImeTracker.Token statsToken) {
if (mIsProxy) {
- setImeVisibilityInternal(visible);
+ setImeVisibilityInternal(visible, statsToken);
} else {
- mHandler.post(() -> setImeVisibilityInternal(visible));
+ mHandler.post(() -> setImeVisibilityInternal(visible, statsToken));
}
}
@AnyThread
- private void setImeVisibilityInternal(boolean visible) {
+ private void setImeVisibilityInternal(boolean visible, @Nullable ImeTracker.Token statsToken) {
try {
- mTarget.setImeVisibility(visible);
+ mTarget.setImeVisibility(visible, statsToken);
} catch (RemoteException e) {
logRemoteException(e);
}
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index a9723ccc2576..ed71765fa6ee 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -170,6 +170,7 @@ import com.android.internal.inputmethod.StartInputReason;
import com.android.internal.inputmethod.UnbindReason;
import com.android.internal.os.TransferPipe;
import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.CollectionUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.Preconditions;
import com.android.server.AccessibilityManagerInternal;
@@ -1429,12 +1430,12 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
void registerImeRequestedChangedListener() {
mWindowManagerInternal.setOnImeRequestedChangedListener(
- (windowToken, imeVisible) -> {
+ (windowToken, imeVisible, statsToken) -> {
if (Flags.refactorInsetsController()) {
if (imeVisible) {
- showCurrentInputInternal(windowToken);
+ showCurrentInputInternal(windowToken, statsToken);
} else {
- hideCurrentInputInternal(windowToken);
+ hideCurrentInputInternal(windowToken, statsToken);
}
}
});
@@ -1887,7 +1888,12 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
if (Flags.refactorInsetsController()) {
if (isShowRequestedForCurrentWindow(userId) && userData.mImeBindingState != null
&& userData.mImeBindingState.mFocusedWindow != null) {
- showCurrentInputInternal(userData.mImeBindingState.mFocusedWindow);
+ // Re-use current statsToken, if it exists.
+ final var statsToken = userData.mCurStatsToken != null ? userData.mCurStatsToken
+ : createStatsTokenForFocusedClient(true /* show */,
+ SoftInputShowHideReason.ATTACH_NEW_INPUT, userId);
+ userData.mCurStatsToken = null;
+ showCurrentInputInternal(userData.mImeBindingState.mFocusedWindow, statsToken);
}
} else {
if (isShowRequestedForCurrentWindow(userId)) {
@@ -3099,7 +3105,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
&& userData.mImeBindingState.mFocusedWindowClient != null
&& userData.mImeBindingState.mFocusedWindowClient.mClient != null) {
userData.mImeBindingState.mFocusedWindowClient.mClient
- .setImeVisibility(true);
+ .setImeVisibility(true, statsToken);
if (resultReceiver != null) {
resultReceiver.send(
wasVisible ? InputMethodManager.RESULT_UNCHANGED_SHOWN
@@ -3119,7 +3125,8 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
}
}
- boolean showCurrentInputInternal(IBinder windowToken) {
+ // TODO(b/353463205) check callers to see if we can make statsToken @NonNull
+ boolean showCurrentInputInternal(IBinder windowToken, @Nullable ImeTracker.Token statsToken) {
Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "IMMS.showCurrentInputInternal");
ImeTracing.getInstance().triggerManagerServiceDump(
"InputMethodManagerService#showSoftInput", mDumper);
@@ -3129,7 +3136,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
final long ident = Binder.clearCallingIdentity();
try {
if (DEBUG) Slog.v(TAG, "Client requesting input be shown");
- return showCurrentInputLocked(windowToken, null /* statsToken */, 0 /* flags */,
+ return showCurrentInputLocked(windowToken, statsToken, 0 /* flags */,
0 /* lastClickTooType */, null /* resultReceiver */,
SoftInputShowHideReason.SHOW_SOFT_INPUT, userId);
} finally {
@@ -3139,7 +3146,8 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
}
}
- boolean hideCurrentInputInternal(IBinder windowToken) {
+ // TODO(b/353463205) check callers to see if we can make statsToken @NonNull
+ boolean hideCurrentInputInternal(IBinder windowToken, @Nullable ImeTracker.Token statsToken) {
Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "IMMS.hideCurrentInputInternal");
ImeTracing.getInstance().triggerManagerServiceDump(
"InputMethodManagerService#hideSoftInput", mDumper);
@@ -3149,7 +3157,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
final long ident = Binder.clearCallingIdentity();
try {
if (DEBUG) Slog.v(TAG, "Client requesting input be hidden");
- return hideCurrentInputLocked(windowToken, null /* statsToken */, 0 /* flags */,
+ return hideCurrentInputLocked(windowToken, statsToken, 0 /* flags */,
null /* resultReceiver */, SoftInputShowHideReason.HIDE_SOFT_INPUT,
userId);
} finally {
@@ -3536,7 +3544,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
boolean wasVisible = isInputShownLocked();
// TODO add windowToken to interface
userData.mImeBindingState.mFocusedWindowClient.mClient
- .setImeVisibility(false);
+ .setImeVisibility(false, statsToken);
if (resultReceiver != null) {
resultReceiver.send(wasVisible ? InputMethodManager.RESULT_HIDDEN
: InputMethodManager.RESULT_UNCHANGED_HIDDEN, null);
@@ -4855,13 +4863,13 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
final long ident = Binder.clearCallingIdentity();
try {
if (Flags.refactorInsetsController()) {
- userData.mCurClient.mClient.setImeVisibility(false);
+ userData.mCurClient.mClient.setImeVisibility(false, statsToken);
// TODO we will loose the flags here
if (userData.mImeBindingState != null
&& userData.mImeBindingState.mFocusedWindowClient != null
&& userData.mImeBindingState.mFocusedWindowClient.mClient != null) {
userData.mImeBindingState.mFocusedWindowClient.mClient
- .setImeVisibility(false);
+ .setImeVisibility(false, statsToken);
}
} else {
hideCurrentInputLocked(mLastImeTargetWindow, statsToken, flags,
@@ -4894,13 +4902,13 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
final long ident = Binder.clearCallingIdentity();
try {
if (Flags.refactorInsetsController()) {
- userData.mCurClient.mClient.setImeVisibility(false);
+ userData.mCurClient.mClient.setImeVisibility(false, statsToken);
// TODO we will loose the flags here
if (userData.mImeBindingState != null
&& userData.mImeBindingState.mFocusedWindowClient != null
&& userData.mImeBindingState.mFocusedWindowClient.mClient != null) {
userData.mImeBindingState.mFocusedWindowClient.mClient
- .setImeVisibility(true);
+ .setImeVisibility(true, statsToken);
}
} else {
showCurrentInputLocked(mLastImeTargetWindow, statsToken, flags,
@@ -5074,7 +5082,8 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
&& userData.mImeBindingState.mFocusedWindowClient != null
&& userData.mImeBindingState.mFocusedWindowClient.mClient != null) {
userData.mImeBindingState.mFocusedWindowClient.mClient
- .setImeVisibility(false);
+ .setImeVisibility(false,
+ null /* TODO(b329229469) check statsToken */);
}
} else {
@SoftInputShowHideReason final int reason = (int) msg.obj;
@@ -5692,24 +5701,12 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
@GuardedBy("ImfLock.class")
private boolean switchToInputMethodLocked(@NonNull String imeId, int subtypeId,
@UserIdInt int userId) {
- final InputMethodSettings settings = InputMethodSettingsRepository.get(userId);
- if (mConcurrentMultiUserModeEnabled || userId == mCurrentUserId) {
- if (!settings.getMethodMap().containsKey(imeId)
- || !settings.getEnabledInputMethodList()
- .contains(settings.getMethodMap().get(imeId))) {
- return false; // IME is not found or not enabled.
- }
- setInputMethodLocked(imeId, subtypeId, userId);
- return true;
- }
- if (!settings.getMethodMap().containsKey(imeId)
- || !settings.getEnabledInputMethodList().contains(
- settings.getMethodMap().get(imeId))) {
+ final var settings = InputMethodSettingsRepository.get(userId);
+ final var enabledImes = settings.getEnabledInputMethodList();
+ if (!CollectionUtils.any(enabledImes, imi -> imi.getId().equals(imeId))) {
return false; // IME is not found or not enabled.
}
- settings.putSelectedInputMethod(imeId);
- // For non-current user, only reset subtypeId (instead of setting the given one).
- settings.putSelectedSubtype(NOT_A_SUBTYPE_ID);
+ setInputMethodLocked(imeId, subtypeId, userId);
return true;
}
@@ -6318,6 +6315,9 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
if (Flags.imeSwitcherRevamp()) {
p.println(" menuControllerNew:");
mMenuControllerNew.dump(p, " ");
+ } else {
+ p.println(" menuController:");
+ mMenuController.dump(p, " ");
}
p.println(" mCurToken=" + bindingController.getCurToken());
p.println(" mCurTokenDisplayId=" + bindingController.getCurTokenDisplayId());
@@ -6814,66 +6814,47 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
final String nextIme;
final List<InputMethodInfo> nextEnabledImes;
final InputMethodSettings settings = InputMethodSettingsRepository.get(userId);
- if (userId == mCurrentUserId) {
- final var userData = getUserData(userId);
- if (Flags.refactorInsetsController()) {
- if (userData.mImeBindingState != null
- && userData.mImeBindingState.mFocusedWindowClient != null
- && userData.mImeBindingState.mFocusedWindowClient.mClient
- != null) {
- userData.mImeBindingState.mFocusedWindowClient.mClient
- .setImeVisibility(false);
- } else {
- // TODO(b329229469): ImeTracker?
- }
+ final var userData = getUserData(userId);
+ if (Flags.refactorInsetsController()) {
+ if (userData.mImeBindingState != null
+ && userData.mImeBindingState.mFocusedWindowClient != null
+ && userData.mImeBindingState.mFocusedWindowClient.mClient
+ != null) {
+ userData.mImeBindingState.mFocusedWindowClient.mClient
+ .setImeVisibility(false,
+ null /* TODO(b329229469) initialize statsToken here? */);
} else {
- hideCurrentInputLocked(userData.mImeBindingState.mFocusedWindow,
- 0 /* flags */,
- SoftInputShowHideReason.HIDE_RESET_SHELL_COMMAND, userId);
- }
- final var bindingController = userData.mBindingController;
- bindingController.unbindCurrentMethod();
-
- // Enable default IMEs, disable others
- var toDisable = settings.getEnabledInputMethodList();
- var defaultEnabled = InputMethodInfoUtils.getDefaultEnabledImes(
- mContext, settings.getMethodList());
- toDisable.removeAll(defaultEnabled);
- for (InputMethodInfo info : toDisable) {
- setInputMethodEnabledLocked(info.getId(), false, userId);
+ // TODO(b329229469): ImeTracker?
}
- for (InputMethodInfo info : defaultEnabled) {
- setInputMethodEnabledLocked(info.getId(), true, userId);
- }
- // Choose new default IME, reset to none if no IME available.
- if (!chooseNewDefaultIMELocked(userId)) {
- resetSelectedInputMethodAndSubtypeLocked(null, userId);
- }
- updateInputMethodsFromSettingsLocked(true /* enabledMayChange */, userId);
- InputMethodUtils.setNonSelectedSystemImesDisabledUntilUsed(
- getPackageManagerForUser(mContext, settings.getUserId()),
- settings.getEnabledInputMethodList());
- nextIme = settings.getSelectedInputMethod();
- nextEnabledImes = settings.getEnabledInputMethodList();
} else {
- nextEnabledImes = InputMethodInfoUtils.getDefaultEnabledImes(mContext,
- settings.getMethodList());
- nextIme = InputMethodInfoUtils.getMostApplicableDefaultIME(
- nextEnabledImes).getId();
-
- // Reset enabled IMEs.
- final String[] nextEnabledImeIds = new String[nextEnabledImes.size()];
- for (int i = 0; i < nextEnabledImeIds.length; ++i) {
- nextEnabledImeIds[i] = nextEnabledImes.get(i).getId();
- }
- settings.putEnabledInputMethodsStr(InputMethodUtils.concatEnabledImeIds(
- "", nextEnabledImeIds));
+ hideCurrentInputLocked(userData.mImeBindingState.mFocusedWindow,
+ 0 /* flags */,
+ SoftInputShowHideReason.HIDE_RESET_SHELL_COMMAND, userId);
+ }
+ final var bindingController = userData.mBindingController;
+ bindingController.unbindCurrentMethod();
- // Reset selected IME.
- settings.putSelectedInputMethod(nextIme);
- settings.putSelectedDefaultDeviceInputMethod(null);
- settings.putSelectedSubtype(NOT_A_SUBTYPE_ID);
+ // Enable default IMEs, disable others
+ var toDisable = settings.getEnabledInputMethodList();
+ var defaultEnabled = InputMethodInfoUtils.getDefaultEnabledImes(
+ mContext, settings.getMethodList());
+ toDisable.removeAll(defaultEnabled);
+ for (InputMethodInfo info : toDisable) {
+ setInputMethodEnabledLocked(info.getId(), false, userId);
+ }
+ for (InputMethodInfo info : defaultEnabled) {
+ setInputMethodEnabledLocked(info.getId(), true, userId);
+ }
+ // Choose new default IME, reset to none if no IME available.
+ if (!chooseNewDefaultIMELocked(userId)) {
+ resetSelectedInputMethodAndSubtypeLocked(null, userId);
}
+ updateInputMethodsFromSettingsLocked(true /* enabledMayChange */, userId);
+ InputMethodUtils.setNonSelectedSystemImesDisabledUntilUsed(
+ getPackageManagerForUser(mContext, settings.getUserId()),
+ settings.getEnabledInputMethodList());
+ nextIme = settings.getSelectedInputMethod();
+ nextEnabledImes = settings.getEnabledInputMethodList();
out.println("Reset current and enabled IMEs for user #" + userId);
out.println(" Selected: " + nextIme);
nextEnabledImes.forEach(ime -> out.println(" Enabled: " + ime.getId()));
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodMenuController.java b/services/core/java/com/android/server/inputmethod/InputMethodMenuController.java
index 06f73f34e427..ba5c13e75c15 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodMenuController.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodMenuController.java
@@ -28,6 +28,7 @@ import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.provider.Settings;
import android.text.TextUtils;
+import android.util.Printer;
import android.util.Slog;
import android.view.LayoutInflater;
import android.view.View;
@@ -58,6 +59,7 @@ final class InputMethodMenuController {
private AlertDialog.Builder mDialogBuilder;
private AlertDialog mSwitchingDialog;
private View mSwitchingDialogTitleView;
+ private List<ImeSubtypeListItem> mImList;
private InputMethodInfo[] mIms;
private int[] mSubtypeIds;
@@ -97,6 +99,7 @@ final class InputMethodMenuController {
// Find out which item should be checked by default.
final int size = imList.size();
+ mImList = imList;
mIms = new InputMethodInfo[size];
mSubtypeIds = new int[size];
// No items are checked by default. When we have a list of explicitly enabled subtypes,
@@ -244,7 +247,9 @@ final class InputMethodMenuController {
mService.updateSystemUiLocked(userId);
mService.sendOnNavButtonFlagsChangedToAllImesLocked();
mDialogBuilder = null;
+ mImList = null;
mIms = null;
+ mSubtypeIds = null;
}
}
@@ -277,6 +282,15 @@ final class InputMethodMenuController {
}
}
+ void dump(@NonNull Printer pw, @NonNull String prefix) {
+ final boolean showing = isisInputMethodPickerShownForTestLocked();
+ pw.println(prefix + " isShowing: " + showing);
+
+ if (showing) {
+ pw.println(prefix + " imList: " + mImList);
+ }
+ }
+
private static class ImeSubtypeListAdapter extends ArrayAdapter<ImeSubtypeListItem> {
private final LayoutInflater mInflater;
private final int mTextViewResourceId;
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubTestModeManager.java b/services/core/java/com/android/server/location/contexthub/ContextHubTestModeManager.java
index 2bb3be6a3332..f2714dbd7e5f 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubTestModeManager.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubTestModeManager.java
@@ -17,12 +17,10 @@
package com.android.server.location.contexthub;
import android.chre.flags.Flags;
-import android.hardware.location.ContextHubTransaction;
import android.hardware.location.NanoAppMessage;
import android.util.Log;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.Callable;
+import java.util.Random;
/**
* A class to manage behaviors during test mode. This is used for testing.
@@ -31,31 +29,32 @@ import java.util.concurrent.Callable;
public class ContextHubTestModeManager {
private static final String TAG = "ContextHubTestModeManager";
- private static final int DROP_MESSAGE_TO_HOST_EVENT = 0;
- private static final int DROP_MESSAGE_TO_CONTEXT_HUB_EVENT = 1;
- private static final int DUPLICATE_MESSAGE_TO_HOST_EVENT = 2;
- private static final int DUPLICATE_MESSAGE_TO_CONTEXT_HUB_EVENT = 3;
- private static final int NUMBER_OF_EVENTS = 4;
+ /** Probability of duplicating a message. */
+ private static final double MESSAGE_DROP_PROBABILITY = 0.05;
+
+ /** Probability of duplicating a message. */
+ private static final double MESSAGE_DUPLICATION_PROBABILITY = 0.05;
/** The number of total messages to send when the duplication event happens. */
private static final int NUM_MESSAGES_TO_DUPLICATE = 3;
- /** The counter to track the number of interactions with the test mode manager. */
- private final AtomicLong mCounter = new AtomicLong(0);
+ /**
+ * The seed for the random number generator. This is used to make the
+ * test more deterministic.
+ */
+ private static final long SEED = 0xDEADBEEF;
+
+ private final Random mRandom = new Random(SEED);
/**
* @return whether the message was handled
* @see ContextHubServiceCallback#handleNanoappMessage
*/
public boolean handleNanoappMessage(Runnable handleMessage, NanoAppMessage message) {
- if (!message.isReliable()) {
- return false;
- }
-
- long counterValue = mCounter.getAndIncrement();
if (Flags.reliableMessageDuplicateDetectionService()
- && counterValue % NUMBER_OF_EVENTS == DUPLICATE_MESSAGE_TO_HOST_EVENT) {
- Log.i(TAG, "[TEST MODE] Duplicating message to host ("
+ && message.isReliable()
+ && mRandom.nextDouble() < MESSAGE_DUPLICATION_PROBABILITY) {
+ Log.i(TAG, "[TEST MODE] Duplicating message ("
+ NUM_MESSAGES_TO_DUPLICATE
+ " sends) with message sequence number: "
+ message.getMessageSequenceNumber());
@@ -64,14 +63,6 @@ public class ContextHubTestModeManager {
}
return true;
}
-
- if (counterValue % NUMBER_OF_EVENTS == DROP_MESSAGE_TO_HOST_EVENT) {
- Log.i(TAG, "[TEST MODE] Dropping message to host with "
- + "message sequence number: "
- + message.getMessageSequenceNumber());
- return true;
- }
-
return false;
}
@@ -79,39 +70,14 @@ public class ContextHubTestModeManager {
* @return whether the message was handled
* @see IContextHubWrapper#sendMessageToContextHub
*/
- public boolean sendMessageToContextHub(Callable<Integer> sendMessage, NanoAppMessage message) {
- if (!message.isReliable()) {
- return false;
- }
-
- long counterValue = mCounter.getAndIncrement();
- if (counterValue % NUMBER_OF_EVENTS == DUPLICATE_MESSAGE_TO_CONTEXT_HUB_EVENT) {
- Log.i(TAG, "[TEST MODE] Duplicating message to the Context Hub ("
- + NUM_MESSAGES_TO_DUPLICATE
- + " sends) with message sequence number: "
- + message.getMessageSequenceNumber());
- for (int i = 0; i < NUM_MESSAGES_TO_DUPLICATE; ++i) {
- try {
- int result = sendMessage.call();
- if (result != ContextHubTransaction.RESULT_SUCCESS) {
- Log.e(TAG, "sendMessage returned an error: " + result);
- }
- } catch (Exception e) {
- Log.e(TAG, "Exception in sendMessageToContextHub: "
- + e.getMessage());
- }
- }
- return true;
- }
-
+ public boolean sendMessageToContextHub(NanoAppMessage message) {
if (Flags.reliableMessageRetrySupportService()
- && counterValue % NUMBER_OF_EVENTS == DROP_MESSAGE_TO_CONTEXT_HUB_EVENT) {
- Log.i(TAG, "[TEST MODE] Dropping message to the Context Hub with "
- + "message sequence number: "
+ && message.isReliable()
+ && mRandom.nextDouble() < MESSAGE_DROP_PROBABILITY) {
+ Log.i(TAG, "[TEST MODE] Dropping message with message sequence number: "
+ message.getMessageSequenceNumber());
return true;
}
-
return false;
}
}
diff --git a/services/core/java/com/android/server/location/contexthub/IContextHubWrapper.java b/services/core/java/com/android/server/location/contexthub/IContextHubWrapper.java
index a8ad41853d34..4fc3d8715a88 100644
--- a/services/core/java/com/android/server/location/contexthub/IContextHubWrapper.java
+++ b/services/core/java/com/android/server/location/contexthub/IContextHubWrapper.java
@@ -53,7 +53,6 @@ import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.Callable;
/**
* @hide
@@ -660,40 +659,32 @@ public abstract class IContextHubWrapper {
@ContextHubTransaction.Result
public int sendMessageToContextHub(short hostEndpointId, int contextHubId,
- NanoAppMessage message) {
+ NanoAppMessage message) throws RemoteException {
android.hardware.contexthub.IContextHub hub = getHub();
if (hub == null) {
return ContextHubTransaction.RESULT_FAILED_BAD_PARAMS;
}
- Callable<Integer> sendMessage = () -> {
- try {
- var msg = ContextHubServiceUtil.createAidlContextHubMessage(
- hostEndpointId, message);
+ try {
+ var msg = ContextHubServiceUtil.createAidlContextHubMessage(
+ hostEndpointId, message);
+
+ // Only process the message normally if not using test mode manager or if
+ // the test mode manager call returned false as this indicates it did not
+ // process the message.
+ boolean useTestModeManager = Flags.reliableMessageImplementation()
+ && Flags.reliableMessageTestModeBehavior()
+ && mIsTestModeEnabled.get();
+ if (!useTestModeManager || !mTestModeManager.sendMessageToContextHub(message)) {
hub.sendMessageToHub(contextHubId, msg);
- return ContextHubTransaction.RESULT_SUCCESS;
- } catch (RemoteException | ServiceSpecificException e) {
- return ContextHubTransaction.RESULT_FAILED_UNKNOWN;
- } catch (IllegalArgumentException e) {
- return ContextHubTransaction.RESULT_FAILED_BAD_PARAMS;
- }
- };
-
- // Only process the message normally if not using test mode manager or if
- // the test mode manager call returned false as this indicates it did not
- // process the message.
- boolean useTestModeManager = Flags.reliableMessageImplementation()
- && Flags.reliableMessageTestModeBehavior()
- && mIsTestModeEnabled.get();
- if (!useTestModeManager || !mTestModeManager.sendMessageToContextHub(
- sendMessage, message)) {
- try {
- return sendMessage.call();
- } catch (Exception e) {
- return ContextHubTransaction.RESULT_FAILED_UNKNOWN;
}
+
+ return ContextHubTransaction.RESULT_SUCCESS;
+ } catch (RemoteException | ServiceSpecificException e) {
+ return ContextHubTransaction.RESULT_FAILED_UNKNOWN;
+ } catch (IllegalArgumentException e) {
+ return ContextHubTransaction.RESULT_FAILED_BAD_PARAMS;
}
- return ContextHubTransaction.RESULT_SUCCESS;
}
@ContextHubTransaction.Result
diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
index d9f36223c6dd..9acf0301ce42 100644
--- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
+++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
@@ -292,7 +292,7 @@ class MediaRouter2ServiceImpl {
== PackageManager.PERMISSION_GRANTED;
final boolean hasModifyAudioRoutingPermission =
checkCallerHasModifyAudioRoutingPermission(pid, uid);
-
+ boolean hasMediaContentControlPermission = checkMediaContentControlPermission(uid, pid);
boolean hasMediaRoutingControlPermission =
checkMediaRoutingControlPermission(uid, pid, packageName);
@@ -307,6 +307,7 @@ class MediaRouter2ServiceImpl {
userId,
hasConfigureWifiDisplayPermission,
hasModifyAudioRoutingPermission,
+ hasMediaContentControlPermission,
hasMediaRoutingControlPermission);
}
} finally {
@@ -1133,6 +1134,7 @@ class MediaRouter2ServiceImpl {
int userId,
boolean hasConfigureWifiDisplayPermission,
boolean hasModifyAudioRoutingPermission,
+ boolean hasMediaContentControlPermission,
boolean hasMediaRoutingControlPermission) {
final IBinder binder = router.asBinder();
if (mAllRouterRecords.get(binder) != null) {
@@ -1151,6 +1153,7 @@ class MediaRouter2ServiceImpl {
packageName,
hasConfigureWifiDisplayPermission,
hasModifyAudioRoutingPermission,
+ hasMediaContentControlPermission,
hasMediaRoutingControlPermission);
try {
binder.linkToDeath(routerRecord, 0);
@@ -2067,9 +2070,10 @@ class MediaRouter2ServiceImpl {
public final int mPid;
public final boolean mHasConfigureWifiDisplayPermission;
public final boolean mHasModifyAudioRoutingPermission;
+ public final boolean mHasMediaContentControlPermission;
+ public final boolean mHasMediaRoutingControl;
public final AtomicBoolean mHasBluetoothRoutingPermission;
public final int mRouterId;
- public final boolean mHasMediaRoutingControl;
public @ScanningState int mScanningState = SCANNING_STATE_NOT_SCANNING;
public RouteDiscoveryPreference mDiscoveryPreference;
@@ -2083,6 +2087,7 @@ class MediaRouter2ServiceImpl {
String packageName,
boolean hasConfigureWifiDisplayPermission,
boolean hasModifyAudioRoutingPermission,
+ boolean hasMediaContentControlPermission,
boolean hasMediaRoutingControl) {
mUserRecord = userRecord;
mPackageName = packageName;
@@ -2093,9 +2098,10 @@ class MediaRouter2ServiceImpl {
mPid = pid;
mHasConfigureWifiDisplayPermission = hasConfigureWifiDisplayPermission;
mHasModifyAudioRoutingPermission = hasModifyAudioRoutingPermission;
+ mHasMediaContentControlPermission = hasMediaContentControlPermission;
+ mHasMediaRoutingControl = hasMediaRoutingControl;
mHasBluetoothRoutingPermission =
new AtomicBoolean(checkCallerHasBluetoothPermissions(mPid, mUid));
- mHasMediaRoutingControl = hasMediaRoutingControl;
mRouterId = mNextRouterOrManagerId.getAndIncrement();
}
diff --git a/services/core/java/com/android/server/net/watchlist/OWNERS b/services/core/java/com/android/server/net/watchlist/OWNERS
index d0c4e553ad8c..eef1e46b2ba6 100644
--- a/services/core/java/com/android/server/net/watchlist/OWNERS
+++ b/services/core/java/com/android/server/net/watchlist/OWNERS
@@ -1,2 +1 @@
-alanstokes@google.com
simonjw@google.com
diff --git a/services/core/java/com/android/server/policy/ModifierShortcutManager.java b/services/core/java/com/android/server/policy/ModifierShortcutManager.java
index 9b644880d737..40b2ff9cc1a4 100644
--- a/services/core/java/com/android/server/policy/ModifierShortcutManager.java
+++ b/services/core/java/com/android/server/policy/ModifierShortcutManager.java
@@ -16,6 +16,8 @@
package com.android.server.policy;
+import static com.android.server.flags.Flags.modifierShortcutManagerMultiuser;
+
import android.annotation.Nullable;
import android.annotation.SuppressLint;
import android.app.role.RoleManager;
@@ -82,6 +84,10 @@ public class ModifierShortcutManager {
private final SparseArray<String> mRoleShortcuts = new SparseArray<String>();
private final SparseArray<String> mShiftRoleShortcuts = new SparseArray<String>();
private final Map<String, Intent> mRoleIntents = new HashMap<String, Intent>();
+ private final SparseArray<ComponentName> mComponentShortcuts = new SparseArray<>();
+ private final SparseArray<ComponentName> mShiftComponentShortcuts = new SparseArray<>();
+ private final Map<ComponentName, Intent> mComponentIntents =
+ new HashMap<ComponentName, Intent>();
private LongSparseArray<IShortcutService> mShortcutKeyServices = new LongSparseArray<>();
@@ -115,23 +121,31 @@ public class ModifierShortcutManager {
private final Context mContext;
private final Handler mHandler;
- private final RoleManager mRoleManager;
- private final PackageManager mPackageManager;
private boolean mSearchKeyShortcutPending = false;
private boolean mConsumeSearchKeyUp = true;
+ private UserHandle mCurrentUser;
- ModifierShortcutManager(Context context, Handler handler) {
+ ModifierShortcutManager(Context context, Handler handler, UserHandle currentUser) {
mContext = context;
mHandler = handler;
- mPackageManager = mContext.getPackageManager();
- mRoleManager = mContext.getSystemService(RoleManager.class);
- mRoleManager.addOnRoleHoldersChangedListenerAsUser(mContext.getMainExecutor(),
+ RoleManager rm = mContext.getSystemService(RoleManager.class);
+ rm.addOnRoleHoldersChangedListenerAsUser(mContext.getMainExecutor(),
(String roleName, UserHandle user) -> {
mRoleIntents.remove(roleName);
}, UserHandle.ALL);
+ mCurrentUser = currentUser;
loadShortcuts();
}
+ void setCurrentUser(UserHandle newUser) {
+ mCurrentUser = newUser;
+
+ // Role based shortcuts may resolve to different apps for different users
+ // so clear the cache.
+ mRoleIntents.clear();
+ mComponentIntents.clear();
+ }
+
/**
* Gets the shortcut intent for a given keycode+modifier. Make sure you
* strip whatever modifier is used for invoking shortcuts (for example,
@@ -147,9 +161,11 @@ public class ModifierShortcutManager {
* to invoke the shortcut.
* @return The intent that matches the shortcut, or null if not found.
*/
+ @Nullable
private Intent getIntent(KeyCharacterMap kcm, int keyCode, int metaState) {
// If a modifier key other than shift is also pressed, skip it.
- final boolean isShiftOn = KeyEvent.metaStateHasModifiers(metaState, KeyEvent.META_SHIFT_ON);
+ final boolean isShiftOn = KeyEvent.metaStateHasModifiers(
+ metaState, KeyEvent.META_SHIFT_ON);
if (!isShiftOn && !KeyEvent.metaStateHasNoModifiers(metaState)) {
return null;
}
@@ -161,37 +177,54 @@ public class ModifierShortcutManager {
// First try the exact keycode (with modifiers).
int shortcutChar = kcm.get(keyCode, metaState);
- if (shortcutChar != 0) {
- shortcutIntent = shortcutMap.get(shortcutChar);
+ if (shortcutChar == 0) {
+ return null;
}
+ shortcutIntent = shortcutMap.get(shortcutChar);
- // Next try the primary character on that key.
if (shortcutIntent == null) {
+ // Next try the primary character on that key.
shortcutChar = Character.toLowerCase(kcm.getDisplayLabel(keyCode));
- if (shortcutChar != 0) {
- shortcutIntent = shortcutMap.get(shortcutChar);
-
- if (shortcutIntent == null) {
- // Check for role based shortcut
- String role = isShiftOn ? mShiftRoleShortcuts.get(shortcutChar)
- : mRoleShortcuts.get(shortcutChar);
- if (role != null) {
- shortcutIntent = getRoleLaunchIntent(role);
- }
- }
+ if (shortcutChar == 0) {
+ return null;
+ }
+ shortcutIntent = shortcutMap.get(shortcutChar);
+ }
+
+ if (shortcutIntent == null) {
+ // Next check for role based shortcut with primary character.
+ String role = isShiftOn ? mShiftRoleShortcuts.get(shortcutChar)
+ : mRoleShortcuts.get(shortcutChar);
+ if (role != null) {
+ shortcutIntent = getRoleLaunchIntent(role);
}
}
+ if (modifierShortcutManagerMultiuser()) {
+ if (shortcutIntent == null) {
+ // Next check component based shortcuts with primary character.
+ ComponentName component = isShiftOn
+ ? mShiftComponentShortcuts.get(shortcutChar)
+ : mComponentShortcuts.get(shortcutChar);
+ if (component != null) {
+ shortcutIntent = resolveComponentNameIntent(component);
+ }
+ }
+ }
return shortcutIntent;
}
private Intent getRoleLaunchIntent(String role) {
Intent intent = mRoleIntents.get(role);
if (intent == null) {
- if (mRoleManager.isRoleAvailable(role)) {
- String rolePackage = mRoleManager.getDefaultApplication(role);
+ Context context = modifierShortcutManagerMultiuser()
+ ? mContext.createContextAsUser(mCurrentUser, 0) : mContext;
+ RoleManager rm = context.getSystemService(RoleManager.class);
+ PackageManager pm = context.getPackageManager();
+ if (rm.isRoleAvailable(role)) {
+ String rolePackage = rm.getDefaultApplication(role);
if (rolePackage != null) {
- intent = mPackageManager.getLaunchIntentForPackage(rolePackage);
+ intent = pm.getLaunchIntentForPackage(rolePackage);
if (intent != null) {
intent.putExtra(EXTRA_ROLE, role);
mRoleIntents.put(role, intent);
@@ -249,7 +282,17 @@ public class ModifierShortcutManager {
+ " className=" + className + " shortcutChar=" + shortcutChar);
continue;
}
- intent = resolveComponentNameIntent(packageName, className);
+ if (modifierShortcutManagerMultiuser()) {
+ ComponentName componentName = new ComponentName(packageName, className);
+ if (isShiftShortcut) {
+ mShiftComponentShortcuts.put(shortcutChar, componentName);
+ } else {
+ mComponentShortcuts.put(shortcutChar, componentName);
+ }
+ continue;
+ } else {
+ intent = resolveComponentNameIntent(packageName, className);
+ }
} else if (categoryName != null) {
if (roleName != null) {
Log.w(TAG, "Cannot specify role bookmark when category is present for"
@@ -288,19 +331,37 @@ public class ModifierShortcutManager {
}
@Nullable
+ private Intent resolveComponentNameIntent(ComponentName componentName) {
+ Intent intent = mComponentIntents.get(componentName);
+ if (intent == null) {
+ intent = resolveComponentNameIntent(
+ componentName.getPackageName(), componentName.getClassName());
+ if (intent != null) {
+ mComponentIntents.put(componentName, intent);
+ }
+ }
+ return intent;
+ }
+
+ @Nullable
private Intent resolveComponentNameIntent(String packageName, String className) {
- int flags = PackageManager.MATCH_DIRECT_BOOT_UNAWARE
- | PackageManager.MATCH_DIRECT_BOOT_AWARE
- | PackageManager.MATCH_UNINSTALLED_PACKAGES;
+ Context context = modifierShortcutManagerMultiuser()
+ ? mContext.createContextAsUser(mCurrentUser, 0) : mContext;
+ PackageManager pm = context.getPackageManager();
+ int flags = PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
+ if (!modifierShortcutManagerMultiuser()) {
+ flags |= PackageManager.MATCH_DIRECT_BOOT_AWARE
+ | PackageManager.MATCH_UNINSTALLED_PACKAGES;
+ }
ComponentName componentName = new ComponentName(packageName, className);
try {
- mPackageManager.getActivityInfo(componentName, flags);
+ pm.getActivityInfo(componentName, flags);
} catch (PackageManager.NameNotFoundException e) {
- String[] packages = mPackageManager.canonicalToCurrentPackageNames(
+ String[] packages = pm.canonicalToCurrentPackageNames(
new String[] { packageName });
componentName = new ComponentName(packages[0], className);
try {
- mPackageManager.getActivityInfo(componentName, flags);
+ pm.getActivityInfo(componentName, flags);
} catch (PackageManager.NameNotFoundException e1) {
Log.w(TAG, "Unable to add bookmark: " + packageName
+ "/" + className + " not found.");
@@ -399,7 +460,11 @@ public class ModifierShortcutManager {
if (intent != null) {
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
- mContext.startActivityAsUser(intent, UserHandle.CURRENT);
+ if (modifierShortcutManagerMultiuser()) {
+ mContext.startActivityAsUser(intent, mCurrentUser);
+ } else {
+ mContext.startActivityAsUser(intent, UserHandle.CURRENT);
+ }
} catch (ActivityNotFoundException ex) {
Slog.w(TAG, "Dropping application launch key because "
+ "the activity to which it is registered was not found: "
@@ -417,7 +482,11 @@ public class ModifierShortcutManager {
if (shortcutIntent != null) {
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
- mContext.startActivityAsUser(shortcutIntent, UserHandle.CURRENT);
+ if (modifierShortcutManagerMultiuser()) {
+ mContext.startActivityAsUser(shortcutIntent, mCurrentUser);
+ } else {
+ mContext.startActivityAsUser(shortcutIntent, UserHandle.CURRENT);
+ }
} catch (ActivityNotFoundException ex) {
Slog.w(TAG, "Dropping shortcut key combination because "
+ "the activity to which it is registered was not found: "
@@ -526,6 +595,30 @@ public class ModifierShortcutManager {
}
}
+ if (modifierShortcutManagerMultiuser()) {
+ for (int i = 0; i < mComponentShortcuts.size(); i++) {
+ ComponentName component = mComponentShortcuts.valueAt(i);
+ KeyboardShortcutInfo info = shortcutInfoFromIntent(
+ (char) (mComponentShortcuts.keyAt(i)),
+ resolveComponentNameIntent(component),
+ false);
+ if (info != null) {
+ shortcuts.add(info);
+ }
+ }
+
+ for (int i = 0; i < mShiftComponentShortcuts.size(); i++) {
+ ComponentName component = mShiftComponentShortcuts.valueAt(i);
+ KeyboardShortcutInfo info = shortcutInfoFromIntent(
+ (char) (mShiftComponentShortcuts.keyAt(i)),
+ resolveComponentNameIntent(component),
+ true);
+ if (info != null) {
+ shortcuts.add(info);
+ }
+ }
+ }
+
return new KeyboardShortcutGroup(
mContext.getString(R.string.keyboard_shortcut_group_applications),
shortcuts);
@@ -548,23 +641,26 @@ public class ModifierShortcutManager {
CharSequence label;
Icon icon;
+ Context context = modifierShortcutManagerMultiuser()
+ ? mContext.createContextAsUser(mCurrentUser, 0) : mContext;
+ PackageManager pm = context.getPackageManager();
ActivityInfo resolvedActivity = intent.resolveActivityInfo(
- mPackageManager, PackageManager.MATCH_DEFAULT_ONLY);
+ pm, PackageManager.MATCH_DEFAULT_ONLY);
if (resolvedActivity == null) {
return null;
}
boolean isResolver = com.android.internal.app.ResolverActivity.class.getName().equals(
resolvedActivity.name);
if (isResolver) {
- label = getIntentCategoryLabel(mContext,
+ label = getIntentCategoryLabel(context,
intent.getSelector().getCategories().iterator().next());
if (label == null) {
return null;
}
- icon = Icon.createWithResource(mContext, R.drawable.sym_def_app_icon);
+ icon = Icon.createWithResource(context, R.drawable.sym_def_app_icon);
} else {
- label = resolvedActivity.loadLabel(mPackageManager);
+ label = resolvedActivity.loadLabel(pm);
icon = Icon.createWithResource(
resolvedActivity.packageName, resolvedActivity.getIconResource());
}
@@ -609,5 +705,4 @@ public class ModifierShortcutManager {
}
return context.getString(resid);
};
-
}
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index df973135f5f0..7534bfe7b8ee 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -76,6 +76,7 @@ import static android.view.WindowManagerGlobal.ADD_PERMISSION_DENIED;
import static android.view.contentprotection.flags.Flags.createAccessibilityOverlayAppOpEnabled;
import static com.android.hardware.input.Flags.emojiAndScreenshotKeycodesAvailable;
+import static com.android.server.flags.Flags.modifierShortcutManagerMultiuser;
import static com.android.server.flags.Flags.newBugreportKeyboardShortcut;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.SCREENSHOT_KEYCHORD_DELAY;
import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.CAMERA_LENS_COVERED;
@@ -2281,7 +2282,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
mWakeGestureListener = new MyWakeGestureListener(mContext, mHandler);
mSettingsObserver = new SettingsObserver(mHandler);
mSettingsObserver.observe();
- mModifierShortcutManager = new ModifierShortcutManager(mContext, mHandler);
+ mModifierShortcutManager = new ModifierShortcutManager(
+ mContext, mHandler, UserHandle.of(mCurrentUserId));
mUiMode = mContext.getResources().getInteger(
com.android.internal.R.integer.config_defaultUiModeType);
mHomeIntent = new Intent(Intent.ACTION_MAIN, null);
@@ -6506,6 +6508,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
if (statusBar != null) {
statusBar.setCurrentUser(newUserId);
}
+ if (modifierShortcutManagerMultiuser()) {
+ mModifierShortcutManager.setCurrentUser(UserHandle.of(newUserId));
+ }
}
@Override
diff --git a/services/core/java/com/android/server/power/PowerGroup.java b/services/core/java/com/android/server/power/PowerGroup.java
index 77bdc45761c5..72594b3a73c5 100644
--- a/services/core/java/com/android/server/power/PowerGroup.java
+++ b/services/core/java/com/android/server/power/PowerGroup.java
@@ -430,8 +430,8 @@ public class PowerGroup {
return mDisplayPowerRequest.policy;
}
- boolean updateLocked(float screenBrightnessOverride, boolean useProximitySensor,
- boolean boostScreenBrightness, int dozeScreenState,
+ boolean updateLocked(float screenBrightnessOverride, CharSequence overrideTag,
+ boolean useProximitySensor, boolean boostScreenBrightness, int dozeScreenState,
@Display.StateReason int dozeScreenStateReason,
float dozeScreenBrightness, boolean overrideDrawWakeLock,
PowerSaveState powerSaverState, boolean quiescent,
@@ -441,6 +441,7 @@ public class PowerGroup {
mDisplayPowerRequest.policy = getDesiredScreenPolicyLocked(quiescent, dozeAfterScreenOff,
bootCompleted, screenBrightnessBoostInProgress, brightWhenDozing);
mDisplayPowerRequest.screenBrightnessOverride = screenBrightnessOverride;
+ mDisplayPowerRequest.screenBrightnessOverrideTag = overrideTag;
mDisplayPowerRequest.useProximitySensor = useProximitySensor;
mDisplayPowerRequest.boostScreenBrightness = boostScreenBrightness;
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index 6fe1ccde7a4a..10faf1455995 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -629,6 +629,9 @@ public final class PowerManagerService extends SystemService
private float mScreenBrightnessOverrideFromWindowManager =
PowerManager.BRIGHTNESS_INVALID_FLOAT;
+ // Tag identifying the window/activity that requested the brightness override.
+ private CharSequence mScreenBrightnessOverrideFromWmTag = null;
+
// The window manager has determined the user to be inactive via other means.
// Set this to false to disable.
private boolean mUserInactiveOverrideFromWindowManager;
@@ -3623,16 +3626,18 @@ public final class PowerManagerService extends SystemService
// Determine appropriate screen brightness.
final float screenBrightnessOverride;
+ CharSequence overrideTag = null;
if (!mBootCompleted) {
// Keep the brightness steady during boot. This requires the
// bootloader brightness and the default brightness to be identical.
screenBrightnessOverride = mScreenBrightnessDefault;
} else if (isValidBrightness(mScreenBrightnessOverrideFromWindowManager)) {
screenBrightnessOverride = mScreenBrightnessOverrideFromWindowManager;
+ overrideTag = mScreenBrightnessOverrideFromWmTag;
} else {
screenBrightnessOverride = PowerManager.BRIGHTNESS_INVALID_FLOAT;
}
- boolean ready = powerGroup.updateLocked(screenBrightnessOverride,
+ boolean ready = powerGroup.updateLocked(screenBrightnessOverride, overrideTag,
shouldUseProximitySensorLocked(), shouldBoostScreenBrightness(),
mDozeScreenStateOverrideFromDreamManager,
mDozeScreenStateOverrideReasonFromDreamManager,
@@ -4417,11 +4422,13 @@ public final class PowerManagerService extends SystemService
}
}
- private void setScreenBrightnessOverrideFromWindowManagerInternal(float brightness) {
+ private void setScreenBrightnessOverrideFromWindowManagerInternal(
+ float brightness, CharSequence tag) {
synchronized (mLock) {
if (!BrightnessSynchronizer.floatEquals(mScreenBrightnessOverrideFromWindowManager,
brightness)) {
mScreenBrightnessOverrideFromWindowManager = brightness;
+ mScreenBrightnessOverrideFromWmTag = tag;
mDirty |= DIRTY_SETTINGS;
updatePowerStateLocked();
}
@@ -4760,6 +4767,8 @@ public final class PowerManagerService extends SystemService
pw.println(" mStayOnWhilePluggedInSetting=" + mStayOnWhilePluggedInSetting);
pw.println(" mScreenBrightnessOverrideFromWindowManager="
+ mScreenBrightnessOverrideFromWindowManager);
+ pw.println(" mScreenBrightnessOverrideFromWmTag="
+ + mScreenBrightnessOverrideFromWmTag);
pw.println(" mUserActivityTimeoutOverrideFromWindowManager="
+ mUserActivityTimeoutOverrideFromWindowManager);
pw.println(" mUserInactiveOverrideFromWindowManager="
@@ -7074,12 +7083,14 @@ public final class PowerManagerService extends SystemService
@VisibleForTesting
final class LocalService extends PowerManagerInternal {
@Override
- public void setScreenBrightnessOverrideFromWindowManager(float screenBrightness) {
+ public void setScreenBrightnessOverrideFromWindowManager(
+ float screenBrightness, CharSequence tag) {
if (screenBrightness < PowerManager.BRIGHTNESS_MIN
|| screenBrightness > PowerManager.BRIGHTNESS_MAX) {
screenBrightness = PowerManager.BRIGHTNESS_INVALID_FLOAT;
+ tag = null;
}
- setScreenBrightnessOverrideFromWindowManagerInternal(screenBrightness);
+ setScreenBrightnessOverrideFromWindowManagerInternal(screenBrightness, tag);
}
@Override
diff --git a/services/core/java/com/android/server/power/stats/GnssPowerCalculator.java b/services/core/java/com/android/server/power/stats/GnssPowerCalculator.java
index ab22e3e3f94c..1003a8152b92 100644
--- a/services/core/java/com/android/server/power/stats/GnssPowerCalculator.java
+++ b/services/core/java/com/android/server/power/stats/GnssPowerCalculator.java
@@ -126,7 +126,7 @@ public class GnssPowerCalculator extends PowerCalculator {
long totalTime = 0;
double totalPower = 0;
for (int i = 0; i < GnssSignalQuality.NUM_GNSS_SIGNAL_QUALITY_LEVELS; i++) {
- long timePerLevel = stats.getGpsSignalQualityTime(i, rawRealtimeUs, statsType);
+ long timePerLevel = stats.getGpsSignalQualityTime(i, rawRealtimeUs, statsType) / 1000;
totalTime += timePerLevel;
totalPower += mAveragePowerPerSignalQuality[i] * timePerLevel;
}
diff --git a/services/core/java/com/android/server/power/stats/PowerStatsExporter.java b/services/core/java/com/android/server/power/stats/PowerStatsExporter.java
index 0f1349287a0f..39954b8e8dba 100644
--- a/services/core/java/com/android/server/power/stats/PowerStatsExporter.java
+++ b/services/core/java/com/android/server/power/stats/PowerStatsExporter.java
@@ -307,7 +307,10 @@ public class PowerStatsExporter {
}
}
if (powerComponentId >= BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID) {
- builder.addConsumedPowerForCustomComponent(powerComponentId, powerAllProcStates);
+ if (batteryUsageStatsBuilder.isSupportedCustomPowerComponent(powerComponentId)) {
+ builder.addConsumedPowerForCustomComponent(powerComponentId,
+ powerAllProcStates);
+ }
} else {
builder.addConsumedPower(powerComponentId, powerAllProcStates,
BatteryConsumer.POWER_MODEL_UNDEFINED);
@@ -319,7 +322,9 @@ public class PowerStatsExporter {
batteryUsageStatsBuilder.getAggregateBatteryConsumerBuilder(
BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_ALL_APPS);
if (powerComponentId >= BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID) {
- allAppsScope.addConsumedPowerForCustomComponent(powerComponentId, powerAllApps);
+ if (batteryUsageStatsBuilder.isSupportedCustomPowerComponent(powerComponentId)) {
+ allAppsScope.addConsumedPowerForCustomComponent(powerComponentId, powerAllApps);
+ }
} else {
BatteryConsumer.Key key = allAppsScope.getKey(powerComponentId,
BatteryConsumer.PROCESS_STATE_ANY, screenState, powerState);
diff --git a/services/core/java/com/android/server/vibrator/Vibration.java b/services/core/java/com/android/server/vibrator/Vibration.java
index 5fab13bdc402..689b495ec1ca 100644
--- a/services/core/java/com/android/server/vibrator/Vibration.java
+++ b/services/core/java/com/android/server/vibrator/Vibration.java
@@ -44,9 +44,9 @@ import java.util.concurrent.atomic.AtomicInteger;
*/
abstract class Vibration {
private static final DateTimeFormatter DEBUG_TIME_FORMATTER = DateTimeFormatter.ofPattern(
- "HH:mm:ss.SSS").withZone(ZoneId.systemDefault());
+ "HH:mm:ss.SSS");
private static final DateTimeFormatter DEBUG_DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern(
- "MM-dd HH:mm:ss.SSS").withZone(ZoneId.systemDefault());
+ "MM-dd HH:mm:ss.SSS");
// Used to generate globally unique vibration ids.
private static final AtomicInteger sNextVibrationId = new AtomicInteger(1); // 0 = no callback
@@ -244,12 +244,10 @@ abstract class Vibration {
@Override
public String toString() {
- return "createTime: " + DEBUG_DATE_TIME_FORMATTER.format(
- Instant.ofEpochMilli(mCreateTime))
- + ", startTime: " + DEBUG_DATE_TIME_FORMATTER.format(
- Instant.ofEpochMilli(mStartTime))
- + ", endTime: " + (mEndTime == 0 ? null : DEBUG_DATE_TIME_FORMATTER.format(
- Instant.ofEpochMilli(mEndTime)))
+ return "createTime: " + formatTime(mCreateTime, /*includeDate=*/ true)
+ + ", startTime: " + formatTime(mStartTime, /*includeDate=*/ true)
+ + ", endTime: " + (mEndTime == 0 ? null : formatTime(mEndTime,
+ /*includeDate=*/ true))
+ ", durationMs: " + mDurationMs
+ ", status: " + mStatus.name().toLowerCase(Locale.ROOT)
+ ", playedEffect: " + mPlayedEffect
@@ -273,14 +271,12 @@ abstract class Vibration {
boolean isExternalVibration = mPlayedEffect == null;
String timingsStr = String.format(Locale.ROOT,
"%s | %8s | %20s | duration: %5dms | start: %12s | end: %12s",
- DEBUG_DATE_TIME_FORMATTER.format(Instant.ofEpochMilli(mCreateTime)),
+ formatTime(mCreateTime, /*includeDate=*/ true),
isExternalVibration ? "external" : "effect",
mStatus.name().toLowerCase(Locale.ROOT),
mDurationMs,
- mStartTime == 0 ? ""
- : DEBUG_TIME_FORMATTER.format(Instant.ofEpochMilli(mStartTime)),
- mEndTime == 0 ? ""
- : DEBUG_TIME_FORMATTER.format(Instant.ofEpochMilli(mEndTime)));
+ mStartTime == 0 ? "" : formatTime(mStartTime, /*includeDate=*/ false),
+ mEndTime == 0 ? "" : formatTime(mEndTime, /*includeDate=*/ false));
String paramStr = String.format(Locale.ROOT,
" | scale: %8s (adaptive=%.2f) | flags: %4s | usage: %s",
VibrationScaler.scaleLevelToString(mScaleLevel), mAdaptiveScale,
@@ -315,12 +311,10 @@ abstract class Vibration {
pw.increaseIndent();
pw.println("status = " + mStatus.name().toLowerCase(Locale.ROOT));
pw.println("durationMs = " + mDurationMs);
- pw.println("createTime = " + DEBUG_DATE_TIME_FORMATTER.format(
- Instant.ofEpochMilli(mCreateTime)));
- pw.println("startTime = " + DEBUG_DATE_TIME_FORMATTER.format(
- Instant.ofEpochMilli(mStartTime)));
+ pw.println("createTime = " + formatTime(mCreateTime, /*includeDate=*/ true));
+ pw.println("startTime = " + formatTime(mStartTime, /*includeDate=*/ true));
pw.println("endTime = " + (mEndTime == 0 ? null
- : DEBUG_DATE_TIME_FORMATTER.format(Instant.ofEpochMilli(mEndTime))));
+ : formatTime(mEndTime, /*includeDate=*/ true)));
pw.println("playedEffect = " + mPlayedEffect);
pw.println("originalEffect = " + mOriginalEffect);
pw.println("scale = " + VibrationScaler.scaleLevelToString(mScaleLevel));
@@ -458,5 +452,12 @@ abstract class Vibration {
proto.write(PrimitiveSegmentProto.DELAY, segment.getDelay());
proto.end(token);
}
+
+ private String formatTime(long timeInMillis, boolean includeDate) {
+ return (includeDate ? DEBUG_DATE_TIME_FORMATTER : DEBUG_TIME_FORMATTER)
+ // Ensure timezone is retrieved at formatting time
+ .withZone(ZoneId.systemDefault())
+ .format(Instant.ofEpochMilli(timeInMillis));
+ }
}
}
diff --git a/services/core/java/com/android/server/vibrator/VibratorControlService.java b/services/core/java/com/android/server/vibrator/VibratorControlService.java
index f82ff673d74e..4da6585a57aa 100644
--- a/services/core/java/com/android/server/vibrator/VibratorControlService.java
+++ b/services/core/java/com/android/server/vibrator/VibratorControlService.java
@@ -68,7 +68,7 @@ final class VibratorControlService extends IVibratorControlService.Stub {
private static final int NO_SCALE = -1;
private static final DateTimeFormatter DEBUG_DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern(
- "MM-dd HH:mm:ss.SSS").withZone(ZoneId.systemDefault());
+ "MM-dd HH:mm:ss.SSS");
private final VibrationParamsRecords mVibrationParamsRecords;
private final VibratorControllerHolder mVibratorControllerHolder;
@@ -591,7 +591,8 @@ final class VibratorControlService extends IVibratorControlService.Stub {
public void dump(IndentingPrintWriter pw) {
String line = String.format(Locale.ROOT,
"%s | %6s | scale: %5s | typesMask: %6s | usages: %s",
- DEBUG_DATE_TIME_FORMATTER.format(Instant.ofEpochMilli(mCreateTime)),
+ DEBUG_DATE_TIME_FORMATTER.withZone(ZoneId.systemDefault()).format(
+ Instant.ofEpochMilli(mCreateTime)),
mOperation.name().toLowerCase(Locale.ROOT),
(mScale == NO_SCALE) ? "" : String.format(Locale.ROOT, "%.2f", mScale),
Long.toBinaryString(mTypesMask), createVibrationUsagesString());
diff --git a/services/core/java/com/android/server/wm/Dimmer.java b/services/core/java/com/android/server/wm/Dimmer.java
index 7ce9de4e1c24..7c31177e98f6 100644
--- a/services/core/java/com/android/server/wm/Dimmer.java
+++ b/services/core/java/com/android/server/wm/Dimmer.java
@@ -16,56 +16,170 @@
package com.android.server.wm;
+import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DIMMER;
+import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
+import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
+
import android.annotation.NonNull;
import android.graphics.Rect;
+import android.util.Log;
+import android.view.Surface;
import android.view.SurfaceControl;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.window.flags.Flags;
-
-/**
- * Utility class for use by a WindowContainer implementation to add "DimLayer" support, that is
- * black layers of varying opacity at various Z-levels which create the effect of a Dim.
- */
-public abstract class Dimmer {
+import com.android.internal.protolog.ProtoLog;
- static final boolean DIMMER_REFACTOR = Flags.introduceSmootherDimmer();
+class Dimmer {
/**
* The {@link WindowContainer} that our Dims are bounded to. We may be dimming on behalf of the
* host, some controller of it, or one of the hosts children.
*/
- protected final WindowContainer mHost;
+ private final WindowContainer<?> mHost;
- protected Dimmer(WindowContainer host) {
- mHost = host;
+ private static final String TAG = TAG_WITH_CLASS_NAME ? "Dimmer" : TAG_WM;
+ DimState mDimState;
+ final DimmerAnimationHelper.AnimationAdapterFactory mAnimationAdapterFactory;
+
+ /**
+ * Controls the dim behaviour
+ */
+ protected class DimState {
+ /** Related objects */
+ SurfaceControl mDimSurface;
+ final WindowContainer<?> mHostContainer;
+ // The last container to request to dim
+ private WindowContainer<?> mLastRequestedDimContainer;
+ /** Animation */
+ private final DimmerAnimationHelper mAnimationHelper;
+ boolean mSkipAnimation = false;
+ // Determines whether the dim layer should animate before destroying.
+ boolean mAnimateExit = true;
+ /** Surface visibility and bounds */
+ private boolean mIsVisible = false;
+ // TODO(b/64816140): Remove after confirming dimmer layer always matches its container.
+ final Rect mDimBounds = new Rect();
+
+ DimState() {
+ mHostContainer = mHost;
+ mAnimationHelper = new DimmerAnimationHelper(mAnimationAdapterFactory);
+ try {
+ mDimSurface = makeDimLayer();
+ } catch (Surface.OutOfResourcesException e) {
+ Log.w(TAG, "OutOfResourcesException creating dim surface");
+ }
+ }
+
+ void ensureVisible(@NonNull SurfaceControl.Transaction t) {
+ if (!mIsVisible) {
+ t.show(mDimSurface);
+ t.setAlpha(mDimSurface, 0f);
+ mIsVisible = true;
+ }
+ }
+
+ void adjustSurfaceLayout(@NonNull SurfaceControl.Transaction t) {
+ // TODO: Once we use geometry from hierarchy this falls away.
+ t.setPosition(mDimSurface, mDimBounds.left, mDimBounds.top);
+ t.setWindowCrop(mDimSurface, mDimBounds.width(), mDimBounds.height());
+ }
+
+ /**
+ * Set the parameters to prepare the dim to change its appearance
+ */
+ void prepareLookChange(float alpha, int blurRadius) {
+ mAnimationHelper.setRequestedAppearance(alpha, blurRadius);
+ }
+
+ /**
+ * Prepare the dim for the exit animation
+ */
+ void exit(@NonNull SurfaceControl.Transaction t) {
+ if (!mAnimateExit) {
+ remove(t);
+ } else {
+ mAnimationHelper.setExitParameters();
+ setReady(t);
+ }
+ }
+
+ void remove(@NonNull SurfaceControl.Transaction t) {
+ mAnimationHelper.stopCurrentAnimation(mDimSurface);
+ if (mDimSurface.isValid()) {
+ t.remove(mDimSurface);
+ ProtoLog.d(WM_DEBUG_DIMMER,
+ "Removing dim surface %s on transaction %s", this, t);
+ } else {
+ Log.w(TAG, "Tried to remove " + mDimSurface + " multiple times\n");
+ }
+ }
+
+ @Override
+ public String toString() {
+ return "Dimmer#DimState with host=" + mHostContainer + ", surface=" + mDimSurface;
+ }
+
+ /**
+ * Set the parameters to prepare the dim to be relative parented to the dimming container
+ */
+ void prepareReparent(@NonNull WindowContainer<?> relativeParent, int relativeLayer) {
+ mAnimationHelper.setRequestedRelativeParent(relativeParent, relativeLayer);
+ }
+
+ /**
+ * Call when all the changes have been requested to have them applied
+ * @param t The transaction in which to apply the changes
+ */
+ void setReady(@NonNull SurfaceControl.Transaction t) {
+ mAnimationHelper.applyChanges(t, this);
+ }
+
+ /**
+ * Whether anyone is currently requesting the dim
+ */
+ boolean isDimming() {
+ return mLastRequestedDimContainer != null;
+ }
+
+ private SurfaceControl makeDimLayer() {
+ return mHost.makeChildSurface(null)
+ .setParent(mHost.getSurfaceControl())
+ .setColorLayer()
+ .setName("Dim Layer for - " + mHost.getName())
+ .setCallsite("DimLayer.makeDimLayer")
+ .build();
+ }
}
- // Constructs the correct type of dimmer
- static Dimmer create(WindowContainer host) {
- return DIMMER_REFACTOR ? new SmoothDimmer(host) : new LegacyDimmer(host);
+ protected Dimmer(@NonNull WindowContainer<?> host) {
+ this(host, new DimmerAnimationHelper.AnimationAdapterFactory());
}
- @NonNull
- WindowContainer<?> getHost() {
- return mHost;
+ @VisibleForTesting
+ Dimmer(@NonNull WindowContainer host,
+ @NonNull DimmerAnimationHelper.AnimationAdapterFactory animationFactory) {
+ mHost = host;
+ mAnimationAdapterFactory = animationFactory;
+ }
+
+ public boolean hostIsTask() {
+ return mHost.asTask() != null;
}
/**
- * Position the dim relatively to the dimming container.
- * Normally called together with #setAppearance, it can be called alone to keep the dim parented
- * to a visible container until the next dimming container is ready.
- * If multiple containers call this method, only the changes relative to the topmost will be
- * applied.
+ * Mark all dims as pending completion on the next call to {@link #updateDims}
*
- * For each call to {@link WindowContainer#prepareSurfaces()} the DimState will be reset, and
- * the child of the host should call adjustRelativeLayer and {@link Dimmer#adjustAppearance} to
- * continue dimming. Indeed, this method won't be able to keep dimming or get a new DimState
- * without also adjusting the appearance.
- * @param container The container which to dim above. Should be a child of the host.
- * @param relativeLayer The position of the dim wrt the container
+ * Called before iterating on mHost's children, first step of dimming.
+ * This is intended for us by the host container, to be called at the beginning of
+ * {@link WindowContainer#prepareSurfaces}. After calling this, the container should
+ * chain {@link WindowContainer#prepareSurfaces} down to its children to give them
+ * a chance to request dims to continue.
*/
- protected abstract void adjustRelativeLayer(WindowContainer container, int relativeLayer);
+ void resetDimStates() {
+ if (mDimState != null) {
+ mDimState.mLastRequestedDimContainer = null;
+ }
+ }
/**
* Set the aspect of the dim layer, and request to keep dimming.
@@ -73,31 +187,36 @@ public abstract class Dimmer {
* child should call setAppearance again to request the Dim to continue.
* If multiple containers call this method, only the changes relative to the topmost will be
* applied.
- * @param container Container requesting the dim
+ * @param dimmingContainer Container requesting the dim
* @param alpha Dim amount
* @param blurRadius Blur amount
*/
- protected abstract void adjustAppearance(
- WindowContainer container, float alpha, int blurRadius);
+ protected void adjustAppearance(@NonNull WindowContainer<?> dimmingContainer,
+ float alpha, int blurRadius) {
+ final DimState d = obtainDimState(dimmingContainer);
+ d.prepareLookChange(alpha, blurRadius);
+ }
/**
- * Mark all dims as pending completion on the next call to {@link #updateDims}
+ * Position the dim relatively to the dimming container.
+ * Normally called together with #setAppearance, it can be called alone to keep the dim parented
+ * to a visible container until the next dimming container is ready.
+ * If multiple containers call this method, only the changes relative to the topmost will be
+ * applied.
*
- * Called before iterating on mHost's children, first step of dimming.
- * This is intended for us by the host container, to be called at the beginning of
- * {@link WindowContainer#prepareSurfaces}. After calling this, the container should
- * chain {@link WindowContainer#prepareSurfaces} down to it's children to give them
- * a chance to request dims to continue.
+ * For each call to {@link WindowContainer#prepareSurfaces()} the DimState will be reset, and
+ * the child of the host should call adjustRelativeLayer and {@link Dimmer#adjustAppearance} to
+ * continue dimming. Indeed, this method won't be able to keep dimming or get a new DimState
+ * without also adjusting the appearance.
+ * @param dimmingContainer The container which to dim above. Should be a child of the host.
+ * @param relativeLayer The position of the dim wrt the container
*/
- abstract void resetDimStates();
-
- /** Returns non-null bounds if the dimmer is showing. */
- abstract Rect getDimBounds();
-
- abstract void dontAnimateExit();
-
- @VisibleForTesting
- abstract SurfaceControl getDimLayer();
+ public void adjustRelativeLayer(@NonNull WindowContainer<?> dimmingContainer,
+ int relativeLayer) {
+ if (mDimState != null) {
+ mDimState.prepareReparent(dimmingContainer, relativeLayer);
+ }
+ }
/**
* Call after invoking {@link WindowContainer#prepareSurfaces} on children as
@@ -106,5 +225,51 @@ public abstract class Dimmer {
* @param t A transaction in which to update the dims.
* @return true if any Dims were updated.
*/
- abstract boolean updateDims(SurfaceControl.Transaction t);
+ boolean updateDims(@NonNull SurfaceControl.Transaction t) {
+ if (mDimState == null) {
+ return false;
+ }
+ if (!mDimState.isDimming()) {
+ // No one is dimming, fade out and remove the dim
+ mDimState.exit(t);
+ mDimState = null;
+ return false;
+ } else {
+ // Someone is dimming, show the requested changes
+ mDimState.adjustSurfaceLayout(t);
+ final WindowState ws = mDimState.mLastRequestedDimContainer.asWindowState();
+ if (!mDimState.mIsVisible && ws != null && ws.mActivityRecord != null
+ && ws.mActivityRecord.mStartingData != null) {
+ // Skip enter animation while starting window is on top of its activity
+ mDimState.mSkipAnimation = true;
+ }
+ mDimState.setReady(t);
+ return true;
+ }
+ }
+
+ @NonNull
+ private DimState obtainDimState(@NonNull WindowContainer<?> container) {
+ if (mDimState == null) {
+ mDimState = new DimState();
+ }
+ mDimState.mLastRequestedDimContainer = container;
+ return mDimState;
+ }
+
+ /** Returns non-null bounds if the dimmer is showing. */
+ @VisibleForTesting
+ SurfaceControl getDimLayer() {
+ return mDimState != null ? mDimState.mDimSurface : null;
+ }
+
+ Rect getDimBounds() {
+ return mDimState != null ? mDimState.mDimBounds : null;
+ }
+
+ void dontAnimateExit() {
+ if (mDimState != null) {
+ mDimState.mAnimateExit = false;
+ }
+ }
}
diff --git a/services/core/java/com/android/server/wm/DimmerAnimationHelper.java b/services/core/java/com/android/server/wm/DimmerAnimationHelper.java
index 22fa88f12386..df1549e6a0f0 100644
--- a/services/core/java/com/android/server/wm/DimmerAnimationHelper.java
+++ b/services/core/java/com/android/server/wm/DimmerAnimationHelper.java
@@ -25,6 +25,7 @@ import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_DIMMER;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
+import android.annotation.NonNull;
import android.util.Log;
import android.util.proto.ProtoOutputStream;
import android.view.SurfaceControl;
@@ -46,13 +47,13 @@ public class DimmerAnimationHelper {
static class Change {
private float mAlpha = -1f;
private int mBlurRadius = -1;
- private WindowContainer mDimmingContainer = null;
+ private WindowContainer<?> mDimmingContainer = null;
private int mRelativeLayer = -1;
private static final float EPSILON = 0.0001f;
Change() {}
- Change(Change other) {
+ Change(@NonNull Change other) {
mAlpha = other.mAlpha;
mBlurRadius = other.mBlurRadius;
mDimmingContainer = other.mDimmingContainer;
@@ -60,15 +61,15 @@ public class DimmerAnimationHelper {
}
// Same alpha and blur
- boolean hasSameVisualProperties(Change other) {
+ boolean hasSameVisualProperties(@NonNull Change other) {
return Math.abs(mAlpha - other.mAlpha) < EPSILON && mBlurRadius == other.mBlurRadius;
}
- boolean hasSameDimmingContainer(Change other) {
+ boolean hasSameDimmingContainer(@NonNull Change other) {
return mDimmingContainer != null && mDimmingContainer == other.mDimmingContainer;
}
- void inheritPropertiesFromAnimation(AnimationSpec anim) {
+ void inheritPropertiesFromAnimation(@NonNull AnimationSpec anim) {
mAlpha = anim.mCurrentAlpha;
mBlurRadius = anim.mCurrentBlur;
}
@@ -97,7 +98,7 @@ public class DimmerAnimationHelper {
}
// Sets a requested change without applying it immediately
- void setRequestedRelativeParent(WindowContainer relativeParent, int relativeLayer) {
+ void setRequestedRelativeParent(@NonNull WindowContainer<?> relativeParent, int relativeLayer) {
mRequestedProperties.mDimmingContainer = relativeParent;
mRequestedProperties.mRelativeLayer = relativeLayer;
}
@@ -114,7 +115,7 @@ public class DimmerAnimationHelper {
* {@link Change#setRequestedRelativeParent(WindowContainer, int)}, or
* {@link Change#setRequestedAppearance(float, int)}
*/
- void applyChanges(SurfaceControl.Transaction t, SmoothDimmer.DimState dim) {
+ void applyChanges(@NonNull SurfaceControl.Transaction t, @NonNull Dimmer.DimState dim) {
if (mRequestedProperties.mDimmingContainer == null) {
Log.e(TAG, this + " does not have a dimming container. Have you forgotten to "
+ "call adjustRelativeLayer?");
@@ -160,7 +161,7 @@ public class DimmerAnimationHelper {
}
private void startAnimation(
- SurfaceControl.Transaction t, SmoothDimmer.DimState dim) {
+ @NonNull SurfaceControl.Transaction t, @NonNull Dimmer.DimState dim) {
ProtoLog.v(WM_DEBUG_DIMMER, "Starting animation on %s", dim);
mAlphaAnimationSpec = getRequestedAnimationSpec();
mLocalAnimationAdapter = mAnimationAdapterFactory.get(mAlphaAnimationSpec,
@@ -186,7 +187,7 @@ public class DimmerAnimationHelper {
return mAlphaAnimationSpec != null;
}
- void stopCurrentAnimation(SurfaceControl surface) {
+ void stopCurrentAnimation(@NonNull SurfaceControl surface) {
if (mLocalAnimationAdapter != null && isAnimating()) {
// Save the current animation progress and cancel the animation
mCurrentProperties.inheritPropertiesFromAnimation(mAlphaAnimationSpec);
@@ -196,6 +197,7 @@ public class DimmerAnimationHelper {
}
}
+ @NonNull
private AnimationSpec getRequestedAnimationSpec() {
final float startAlpha = Math.max(mCurrentProperties.mAlpha, 0f);
final int startBlur = Math.max(mCurrentProperties.mBlurRadius, 0);
@@ -214,8 +216,8 @@ public class DimmerAnimationHelper {
/**
* Change the relative parent of this dim layer
*/
- void relativeReparent(SurfaceControl dimLayer, SurfaceControl relativeParent,
- int relativePosition, SurfaceControl.Transaction t) {
+ void relativeReparent(@NonNull SurfaceControl dimLayer, @NonNull SurfaceControl relativeParent,
+ int relativePosition, @NonNull SurfaceControl.Transaction t) {
try {
t.setRelativeLayer(dimLayer, relativeParent, relativePosition);
} catch (NullPointerException e) {
@@ -223,7 +225,8 @@ public class DimmerAnimationHelper {
}
}
- void setAlphaBlur(SurfaceControl sc, float alpha, int blur, SurfaceControl.Transaction t) {
+ void setAlphaBlur(@NonNull SurfaceControl sc, float alpha, int blur,
+ @NonNull SurfaceControl.Transaction t) {
try {
t.setAlpha(sc, alpha);
t.setBackgroundBlurRadius(sc, blur);
@@ -232,7 +235,7 @@ public class DimmerAnimationHelper {
}
}
- private long getDimDuration(WindowContainer container) {
+ private long getDimDuration(@NonNull WindowContainer<?> container) {
// Use the same duration as the animation on the WindowContainer
AnimationAdapter animationAdapter = container.mSurfaceAnimator.getAnimation();
final float durationScale = container.mWmService.getTransitionAnimationScaleLocked();
@@ -282,7 +285,8 @@ public class DimmerAnimationHelper {
}
@Override
- public void apply(SurfaceControl.Transaction t, SurfaceControl sc, long currentPlayTime) {
+ public void apply(@NonNull SurfaceControl.Transaction t, @NonNull SurfaceControl sc,
+ long currentPlayTime) {
if (!mStarted) {
// The first frame would end up in the sync transaction, and since this could be
// applied after the animation transaction, we avoid putting visible changes here.
diff --git a/services/core/java/com/android/server/wm/DisplayArea.java b/services/core/java/com/android/server/wm/DisplayArea.java
index def495f3daa5..75724eb6c3be 100644
--- a/services/core/java/com/android/server/wm/DisplayArea.java
+++ b/services/core/java/com/android/server/wm/DisplayArea.java
@@ -817,7 +817,7 @@ public class DisplayArea<T extends WindowContainer> extends WindowContainer<T> {
* DisplayArea that can be dimmed.
*/
static class Dimmable extends DisplayArea<DisplayArea> {
- private final Dimmer mDimmer = Dimmer.create(this);
+ private final Dimmer mDimmer = new Dimmer(this);
Dimmable(WindowManagerService wms, Type type, String name, int featureId) {
super(wms, type, name, featureId);
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index fa603682bc40..1efb3ef144d9 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -619,8 +619,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
private static final long FIXED_ROTATION_HIDE_ANIMATION_DEBOUNCE_DELAY_MS = 250;
private AsyncRotationController mAsyncRotationController;
- final FixedRotationTransitionListener mFixedRotationTransitionListener =
- new FixedRotationTransitionListener();
+ final FixedRotationTransitionListener mFixedRotationTransitionListener;
@VisibleForTesting
final DeviceStateController mDeviceStateController;
@@ -1163,6 +1162,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
TAG_WM + "/displayId:" + mDisplayId, mDisplayId);
mHoldScreenWakeLock.setReferenceCounted(false);
+ mFixedRotationTransitionListener = new FixedRotationTransitionListener(mDisplayId);
mAppTransition = new AppTransition(mWmService.mContext, mWmService, this);
mAppTransition.registerListenerLocked(mWmService.mActivityManagerAppTransitionNotifier);
mAppTransition.registerListenerLocked(mFixedRotationTransitionListener);
@@ -6927,8 +6927,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
/** Whether {@link #mAnimatingRecents} is going to be the top activity. */
private boolean mRecentsWillBeTop;
- FixedRotationTransitionListener() {
- super(DisplayContent.this.mDisplayId);
+ FixedRotationTransitionListener(int displayId) {
+ super(displayId);
}
/**
@@ -7017,7 +7017,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
// by finishing the recents animation and moving it to top. That also avoids flickering
// due to wait for previous activity to be paused if it supports PiP that ignores the
// effect of resume-while-pausing.
- if (r == null || r == mAnimatingRecents || r.getDisplayId() != mDisplayId) {
+ if (r == null || r == mAnimatingRecents) {
return;
}
if (mAnimatingRecents != null && mRecentsWillBeTop) {
@@ -7180,8 +7180,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
@Override
public void setImeInputTargetRequestedVisibility(boolean visible) {
if (android.view.inputmethod.Flags.refactorInsetsController()) {
+ // TODO(b/329229469) we won't have the statsToken in all cases, but should still log
try {
- // TODO stats token
mRemoteInsetsController.setImeInputTargetRequestedVisibility(visible);
} catch (RemoteException e) {
Slog.w(TAG, "Failed to deliver setImeInputTargetRequestedVisibility", e);
diff --git a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
index 91c61b1bd550..4f4daa132859 100644
--- a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
@@ -89,6 +89,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
@Override
void onPostLayout() {
+ boolean wasServerVisible = mServerVisible;
super.onPostLayout();
if (android.view.inputmethod.Flags.refactorInsetsController()) {
@@ -101,11 +102,32 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
// again, so that the control with leash can be eventually dispatched
if (!mGivenInsetsReady && mServerVisible && !givenInsetsPending) {
mGivenInsetsReady = true;
+ ImeTracker.forLogging().onProgress(mStatsToken,
+ ImeTracker.PHASE_WM_POST_LAYOUT_NOTIFY_CONTROLS_CHANGED);
mStateController.notifyControlChanged(mControlTarget);
+ } else if (wasServerVisible && mServerVisible && mGivenInsetsReady
+ && givenInsetsPending) {
+ // If the server visibility didn't change (still visible), and mGivenInsetsReady
+ // is set, we won't call into notifyControlChanged. Therefore, we can reset the
+ // statsToken, if available.
+ ImeTracker.forLogging().onCancelled(mStatsToken,
+ ImeTracker.PHASE_WM_POST_LAYOUT_NOTIFY_CONTROLS_CHANGED);
+ mStatsToken = null;
}
}
}
+ @Nullable
+ ImeTracker.Token getAndClearStatsToken() {
+ if (android.view.inputmethod.Flags.refactorInsetsController()) {
+ ImeTracker.Token statsToken = mStatsToken;
+ mStatsToken = null;
+ return statsToken;
+ } else {
+ return null;
+ }
+ }
+
@Override
protected boolean isLeashReadyForDispatching() {
if (android.view.inputmethod.Flags.refactorInsetsController()) {
@@ -142,6 +164,14 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
}
control.setSkipAnimationOnce(startingData != null && startingData.hasImeSurface());
}
+ if (android.view.inputmethod.Flags.refactorInsetsController()) {
+ if (control != null && control.getLeash() != null) {
+ ImeTracker.Token statsToken = getAndClearStatsToken();
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_WM_GET_CONTROL_WITH_LEASH);
+ control.setImeStatsToken(statsToken);
+ }
+ }
return control;
}
@@ -168,7 +198,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
if (android.view.inputmethod.Flags.refactorInsetsController()) {
if (!serverVisible && !mFrozen) {
mGivenInsetsReady = false;
- updateControlForTarget(mControlTarget, true /* force */);
+ updateControlForTarget(mControlTarget, true /* force */, null /* statsToken */);
}
}
}
@@ -214,22 +244,29 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
}
@Override
- void updateControlForTarget(@Nullable InsetsControlTarget target, boolean force) {
+ void updateControlForTarget(@Nullable InsetsControlTarget target, boolean force,
+ @NonNull ImeTracker.Token statsToken) {
if (target != null && target.getWindow() != null) {
// ime control target could be a different window.
// Refer WindowState#getImeControlTarget().
target = target.getWindow().getImeControlTarget();
}
- super.updateControlForTarget(target, force);
+ // TODO(b/329229469) make sure that the statsToken of all callers is non-null (currently
+ // not the case)
+ super.updateControlForTarget(target, force, statsToken);
if (Flags.refactorInsetsController()) {
+ // TODO(b/353463205) investigate if we should fail the statsToken, or if it's only
+ // temporary null.
if (target != null) {
- invokeOnImeRequestedChangedListener(target.getWindow());
+ invokeOnImeRequestedChangedListener(target.getWindow(), statsToken);
}
}
}
+ // TODO(b/353463205) change statsToken to be NonNull, after the flag is permanently enabled
@Override
- protected boolean updateClientVisibility(InsetsControlTarget caller) {
+ protected boolean updateClientVisibility(InsetsControlTarget caller,
+ @Nullable ImeTracker.Token statsToken) {
InsetsControlTarget controlTarget = getControlTarget();
if (caller != controlTarget) {
if (Flags.refactorInsetsController()) {
@@ -240,6 +277,8 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
// its new requested visibility for the IME
boolean imeVisible = caller.isRequestedVisible(WindowInsets.Type.ime());
if (controlTarget != null) {
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_WM_SET_REMOTE_TARGET_IME_VISIBILITY);
controlTarget.setImeInputTargetRequestedVisibility(imeVisible);
} else {
// In case of a virtual display that cannot show the IME, the
@@ -249,17 +288,24 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
controlTarget = mDisplayContent.getImeHostOrFallback(caller.getWindow());
if (controlTarget != caller) {
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_WM_SET_REMOTE_TARGET_IME_VISIBILITY);
controlTarget.setImeInputTargetRequestedVisibility(imeVisible);
+ } else {
+ ImeTracker.forLogging().onFailed(statsToken,
+ ImeTracker.PHASE_WM_SET_REMOTE_TARGET_IME_VISIBILITY);
}
}
WindowState windowState = caller.getWindow();
- invokeOnImeRequestedChangedListener(windowState);
+ invokeOnImeRequestedChangedListener(windowState, statsToken);
+ } else {
+ // TODO(b/353463205) add ImeTracker?
}
}
return false;
}
- boolean changed = super.updateClientVisibility(caller);
+ boolean changed = super.updateClientVisibility(caller, statsToken);
if (!Flags.refactorInsetsController()) {
if (changed && caller.isRequestedVisible(mSource.getType())) {
reportImeDrawnForOrganizerIfNeeded(caller);
@@ -273,7 +319,11 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
WindowState windowState = caller.getWindow() != null ? caller.getWindow()
: ((mDisplayContent.getImeInputTarget() != null)
? mDisplayContent.getImeInputTarget().getWindowState() : null);
- invokeOnImeRequestedChangedListener(windowState);
+ invokeOnImeRequestedChangedListener(windowState, statsToken);
+ } else {
+ // TODO(b/329229469) change phase and check cancelled / failed
+ ImeTracker.forLogging().onCancelled(statsToken,
+ ImeTracker.PHASE_CLIENT_REPORT_REQUESTED_VISIBLE_TYPES);
}
}
return changed;
@@ -288,22 +338,34 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
// know about the new requestedVisibleTypes for the IME.
if (imeControlTarget != null) {
imeControlTarget.setImeInputTargetRequestedVisibility(
- (targetWin.getRequestedVisibleTypes()
- & WindowInsets.Type.ime()) != 0);
+ (targetWin.getRequestedVisibleTypes() & WindowInsets.Type.ime()) != 0);
}
}
}
}
- private void invokeOnImeRequestedChangedListener(WindowState windowState) {
+ // TODO(b/353463205) check callers to see if we can make statsToken @NonNull
+ private void invokeOnImeRequestedChangedListener(WindowState windowState,
+ @Nullable ImeTracker.Token statsToken) {
final var imeListener = mDisplayContent.mWmService.mOnImeRequestedChangedListener;
if (imeListener != null) {
if (windowState != null) {
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_WM_POSTING_CHANGED_IME_VISIBILITY);
mDisplayContent.mWmService.mH.post(() -> {
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_WM_INVOKING_IME_REQUESTED_LISTENER);
imeListener.onImeRequestedChanged(windowState.mClient.asBinder(),
- windowState.isRequestedVisible(WindowInsets.Type.ime()));
+ windowState.isRequestedVisible(WindowInsets.Type.ime()), statsToken);
});
+ } else {
+ ImeTracker.forLogging().onFailed(statsToken,
+ ImeTracker.PHASE_WM_POSTING_CHANGED_IME_VISIBILITY);
}
+ } else {
+ // TODO(b/353463205) We could combine the upper if's and remove the additional phase.
+ ImeTracker.forLogging().onFailed(statsToken,
+ ImeTracker.PHASE_WM_DISPATCH_IME_REQUESTED_CHANGED);
}
}
@@ -399,9 +461,9 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
// This can later become ready, so we don't want to cancel the pending request here.
return;
}
+ // TODO(b/329229469) check if this is still triggered, as we don't go into STATE_SHOW_IME
+ // (DefaultImeVisibilityApplier)
if (android.view.inputmethod.Flags.refactorInsetsController()) {
- // Clear token here so we don't report an error in abortShowImePostLayout().
- abortShowImePostLayout();
// The IME is drawn, so call into {@link WindowState#notifyInsetsControlChanged}
// if we have a leash
if (mControl != null && mControl.getLeash() != null
@@ -517,6 +579,33 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider {
}
/**
+ * Sets the statsToken before the IMS was shown/hidden.
+ * @param visible {@code true} to make it visible, false to hide it.
+ * @param statsToken the token tracking the current IME request.
+ */
+ void receiveImeStatsToken(boolean visible,
+ @NonNull ImeTracker.Token statsToken) {
+ if (!android.view.inputmethod.Flags.refactorInsetsController()) {
+ return;
+ }
+
+ if (mStatsToken != null) {
+ // We have an ongoing show request will be cancelled by the newly received show
+ // request (cancelling the initial show) or hide request (aborting the initial show).
+ logIsScheduledAndReadyToShowIme(!visible /* aborted */);
+ }
+ if (visible) {
+ ImeTracker.forLogging().onCancelled(
+ mStatsToken, ImeTracker.PHASE_WM_ABORT_SHOW_IME_POST_LAYOUT);
+ mStatsToken = statsToken;
+ } else {
+ ImeTracker.forLogging().onFailed(
+ mStatsToken, ImeTracker.PHASE_WM_ABORT_SHOW_IME_POST_LAYOUT);
+ mStatsToken = null;
+ }
+ }
+
+ /**
* Logs the current state that can be checked by {@link #isScheduledAndReadyToShowIme}.
*
* @param aborted whether the scheduled show IME request was aborted or cancelled.
diff --git a/services/core/java/com/android/server/wm/InsetsPolicy.java b/services/core/java/com/android/server/wm/InsetsPolicy.java
index 6288a429af81..62bef743a354 100644
--- a/services/core/java/com/android/server/wm/InsetsPolicy.java
+++ b/services/core/java/com/android/server/wm/InsetsPolicy.java
@@ -47,6 +47,7 @@ import android.view.WindowInsets.Type.InsetsType;
import android.view.WindowInsetsAnimation;
import android.view.WindowInsetsAnimation.Bounds;
import android.view.WindowManager;
+import android.view.inputmethod.ImeTracker;
import android.view.inputmethod.InputMethodManager;
import com.android.internal.R;
@@ -433,8 +434,9 @@ class InsetsPolicy {
return originalState;
}
- void onRequestedVisibleTypesChanged(InsetsControlTarget caller) {
- mStateController.onRequestedVisibleTypesChanged(caller);
+ void onRequestedVisibleTypesChanged(InsetsControlTarget caller,
+ @Nullable ImeTracker.Token statsToken) {
+ mStateController.onRequestedVisibleTypesChanged(caller, statsToken);
checkAbortTransient(caller);
updateBarControlTarget(mFocusedWin);
}
@@ -803,7 +805,8 @@ class InsetsPolicy {
}
@Override
- public void updateRequestedVisibleTypes(int types) { }
+ public void updateRequestedVisibleTypes(int types, @Nullable ImeTracker.Token statsToken) {
+ }
@Override
public boolean hasAnimationCallbacks() {
diff --git a/services/core/java/com/android/server/wm/InsetsSourceProvider.java b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
index 33dea54574e6..f5c92f60b26a 100644
--- a/services/core/java/com/android/server/wm/InsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
@@ -46,6 +46,7 @@ import android.view.InsetsSourceControl;
import android.view.SurfaceControl;
import android.view.SurfaceControl.Transaction;
import android.view.WindowInsets;
+import android.view.inputmethod.ImeTracker;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.protolog.ProtoLog;
@@ -498,7 +499,8 @@ class InsetsSourceProvider {
);
}
- void updateControlForTarget(@Nullable InsetsControlTarget target, boolean force) {
+ void updateControlForTarget(@Nullable InsetsControlTarget target, boolean force,
+ @Nullable ImeTracker.Token statsToken) {
if (mSeamlessRotating) {
// We are un-rotating the window against the display rotation. We don't want the target
// to control the window for now.
@@ -570,7 +572,8 @@ class InsetsSourceProvider {
mSeamlessRotating = false;
}
- boolean updateClientVisibility(InsetsControlTarget caller) {
+ boolean updateClientVisibility(InsetsControlTarget caller,
+ @Nullable ImeTracker.Token statsToken) {
final boolean requestedVisible = caller.isRequestedVisible(mSource.getType());
if (caller != mControlTarget || requestedVisible == mClientVisible) {
return false;
diff --git a/services/core/java/com/android/server/wm/InsetsStateController.java b/services/core/java/com/android/server/wm/InsetsStateController.java
index dcadb0f31085..9c2a8def4d56 100644
--- a/services/core/java/com/android/server/wm/InsetsStateController.java
+++ b/services/core/java/com/android/server/wm/InsetsStateController.java
@@ -40,6 +40,7 @@ import android.view.InsetsSourceControl;
import android.view.InsetsState;
import android.view.WindowInsets;
import android.view.WindowInsets.Type.InsetsType;
+import android.view.inputmethod.ImeTracker;
import com.android.internal.protolog.ProtoLog;
import com.android.server.inputmethod.InputMethodManagerInternal;
@@ -216,10 +217,14 @@ class InsetsStateController {
}
}
- void onRequestedVisibleTypesChanged(InsetsControlTarget caller) {
+ void onRequestedVisibleTypesChanged(InsetsControlTarget caller,
+ @Nullable ImeTracker.Token statsToken) {
boolean changed = false;
for (int i = mProviders.size() - 1; i >= 0; i--) {
- changed |= mProviders.valueAt(i).updateClientVisibility(caller);
+ final InsetsSourceProvider provider = mProviders.valueAt(i);
+ final boolean isImeProvider = provider.getSource().getType() == WindowInsets.Type.ime();
+ changed |= provider.updateClientVisibility(caller,
+ isImeProvider ? statsToken : null);
}
if (!android.view.inputmethod.Flags.refactorInsetsController()) {
if (changed) {
@@ -310,7 +315,9 @@ class InsetsStateController {
// aborted.
provider.updateFakeControlTarget(target);
} else {
- provider.updateControlForTarget(target, false /* force */);
+ // TODO(b/329229469) if the IME controlTarget changes, any pending requests should fail
+ provider.updateControlForTarget(target, false /* force */,
+ null /* TODO(b/329229469) check if needed here */);
// Get control target again in case the provider didn't accept the one we passed to it.
target = provider.getControlTarget();
@@ -394,7 +401,9 @@ class InsetsStateController {
// to the clients, so that the clients can change the current visibilities to the
// requested visibilities with animations.
for (int i = newControlTargets.size() - 1; i >= 0; i--) {
- onRequestedVisibleTypesChanged(newControlTargets.valueAt(i));
+ // TODO(b/353463205) the statsToken shouldn't be null as it is used later in the
+ // IME provider. Check if we have to create a new request here
+ onRequestedVisibleTypesChanged(newControlTargets.valueAt(i), null /* statsToken */);
}
newControlTargets.clear();
if (!android.view.inputmethod.Flags.refactorInsetsController()) {
diff --git a/services/core/java/com/android/server/wm/LegacyDimmer.java b/services/core/java/com/android/server/wm/LegacyDimmer.java
deleted file mode 100644
index 3265e605ab15..000000000000
--- a/services/core/java/com/android/server/wm/LegacyDimmer.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * 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.server.wm;
-
-import static com.android.server.wm.AlphaAnimationSpecProto.DURATION_MS;
-import static com.android.server.wm.AlphaAnimationSpecProto.FROM;
-import static com.android.server.wm.AlphaAnimationSpecProto.TO;
-import static com.android.server.wm.AnimationSpecProto.ALPHA;
-import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_DIMMER;
-import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
-import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
-
-import android.graphics.Rect;
-import android.util.Log;
-import android.util.proto.ProtoOutputStream;
-import android.view.Surface;
-import android.view.SurfaceControl;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-import java.io.PrintWriter;
-
-public class LegacyDimmer extends Dimmer {
- private static final String TAG = TAG_WITH_CLASS_NAME ? "Dimmer" : TAG_WM;
- // This is in milliseconds.
- private static final int DEFAULT_DIM_ANIM_DURATION = 200;
- DimState mDimState;
- private WindowContainer mLastRequestedDimContainer;
- private final SurfaceAnimatorStarter mSurfaceAnimatorStarter;
-
- private class DimAnimatable implements SurfaceAnimator.Animatable {
- private SurfaceControl mDimLayer;
-
- private DimAnimatable(SurfaceControl dimLayer) {
- mDimLayer = dimLayer;
- }
-
- @Override
- public SurfaceControl.Transaction getSyncTransaction() {
- return mHost.getSyncTransaction();
- }
-
- @Override
- public SurfaceControl.Transaction getPendingTransaction() {
- return mHost.getPendingTransaction();
- }
-
- @Override
- public void commitPendingTransaction() {
- mHost.commitPendingTransaction();
- }
-
- @Override
- public void onAnimationLeashCreated(SurfaceControl.Transaction t, SurfaceControl leash) {
- }
-
- @Override
- public void onAnimationLeashLost(SurfaceControl.Transaction t) {
- }
-
- @Override
- public SurfaceControl.Builder makeAnimationLeash() {
- return mHost.makeAnimationLeash();
- }
-
- @Override
- public SurfaceControl getAnimationLeashParent() {
- return mHost.getSurfaceControl();
- }
-
- @Override
- public SurfaceControl getSurfaceControl() {
- return mDimLayer;
- }
-
- @Override
- public SurfaceControl getParentSurfaceControl() {
- return mHost.getSurfaceControl();
- }
-
- @Override
- public int getSurfaceWidth() {
- // This will determine the size of the leash created. This should be the size of the
- // host and not the dim layer since the dim layer may get bigger during animation. If
- // that occurs, the leash size cannot change so we need to ensure the leash is big
- // enough that the dim layer can grow.
- // This works because the mHost will be a Task which has the display bounds.
- return mHost.getSurfaceWidth();
- }
-
- @Override
- public int getSurfaceHeight() {
- // See getSurfaceWidth() above for explanation.
- return mHost.getSurfaceHeight();
- }
-
- void removeSurface() {
- if (mDimLayer != null && mDimLayer.isValid()) {
- getSyncTransaction().remove(mDimLayer);
- }
- mDimLayer = null;
- }
- }
-
- @VisibleForTesting
- class DimState {
- /**
- * The layer where property changes should be invoked on.
- */
- SurfaceControl mDimLayer;
- boolean mDimming;
- boolean mIsVisible;
-
- // TODO(b/64816140): Remove after confirming dimmer layer always matches its container.
- final Rect mDimBounds = new Rect();
-
- /**
- * Determines whether the dim layer should animate before destroying.
- */
- boolean mAnimateExit = true;
-
- /**
- * Used for Dims not associated with a WindowContainer.
- * See {@link Dimmer#adjustRelativeLayer(WindowContainer, int)} for details on Dim
- * lifecycle.
- */
- boolean mDontReset;
- SurfaceAnimator mSurfaceAnimator;
-
- DimState(SurfaceControl dimLayer) {
- mDimLayer = dimLayer;
- mDimming = true;
- final DimAnimatable dimAnimatable = new DimAnimatable(dimLayer);
- mSurfaceAnimator = new SurfaceAnimator(dimAnimatable, (type, anim) -> {
- if (!mDimming) {
- dimAnimatable.removeSurface();
- }
- }, mHost.mWmService);
- }
- }
-
- @VisibleForTesting
- interface SurfaceAnimatorStarter {
- void startAnimation(SurfaceAnimator surfaceAnimator, SurfaceControl.Transaction t,
- AnimationAdapter anim, boolean hidden, @SurfaceAnimator.AnimationType int type);
- }
-
- protected LegacyDimmer(WindowContainer host) {
- this(host, SurfaceAnimator::startAnimation);
- }
-
- LegacyDimmer(WindowContainer host, SurfaceAnimatorStarter surfaceAnimatorStarter) {
- super(host);
- mSurfaceAnimatorStarter = surfaceAnimatorStarter;
- }
-
- private DimState obtainDimState(WindowContainer container) {
- if (mDimState == null) {
- try {
- final SurfaceControl ctl = makeDimLayer();
- mDimState = new DimState(ctl);
- } catch (Surface.OutOfResourcesException e) {
- Log.w(TAG, "OutOfResourcesException creating dim surface");
- }
- }
-
- mLastRequestedDimContainer = container;
- return mDimState;
- }
-
- private SurfaceControl makeDimLayer() {
- return mHost.makeChildSurface(null)
- .setParent(mHost.getSurfaceControl())
- .setColorLayer()
- .setName("Dim Layer for - " + mHost.getName())
- .setCallsite("Dimmer.makeDimLayer")
- .build();
- }
-
- @Override
- SurfaceControl getDimLayer() {
- return mDimState != null ? mDimState.mDimLayer : null;
- }
-
- @Override
- void resetDimStates() {
- if (mDimState == null) {
- return;
- }
- if (!mDimState.mDontReset) {
- mDimState.mDimming = false;
- }
- }
-
- @Override
- Rect getDimBounds() {
- return mDimState != null ? mDimState.mDimBounds : null;
- }
-
- @Override
- void dontAnimateExit() {
- if (mDimState != null) {
- mDimState.mAnimateExit = false;
- }
- }
-
- @Override
- protected void adjustAppearance(WindowContainer container, float alpha, int blurRadius) {
- final DimState d = obtainDimState(container);
- if (d == null) {
- return;
- }
-
- // The dim method is called from WindowState.prepareSurfaces(), which is always called
- // in the correct Z from lowest Z to highest. This ensures that the dim layer is always
- // relative to the highest Z layer with a dim.
- SurfaceControl.Transaction t = mHost.getPendingTransaction();
- t.setAlpha(d.mDimLayer, alpha);
- t.setBackgroundBlurRadius(d.mDimLayer, blurRadius);
- d.mDimming = true;
- }
-
- @Override
- protected void adjustRelativeLayer(WindowContainer container, int relativeLayer) {
- final DimState d = mDimState;
- if (d != null) {
- SurfaceControl.Transaction t = mHost.getPendingTransaction();
- t.setRelativeLayer(d.mDimLayer, container.getSurfaceControl(), relativeLayer);
- }
- }
-
- @Override
- boolean updateDims(SurfaceControl.Transaction t) {
- if (mDimState == null) {
- return false;
- }
-
- if (!mDimState.mDimming) {
- if (!mDimState.mAnimateExit) {
- if (mDimState.mDimLayer.isValid()) {
- t.remove(mDimState.mDimLayer);
- }
- } else {
- startDimExit(mLastRequestedDimContainer,
- mDimState.mSurfaceAnimator, t);
- }
- mDimState = null;
- return false;
- } else {
- final Rect bounds = mDimState.mDimBounds;
- // TODO: Once we use geometry from hierarchy this falls away.
- t.setPosition(mDimState.mDimLayer, bounds.left, bounds.top);
- t.setWindowCrop(mDimState.mDimLayer, bounds.width(), bounds.height());
- if (!mDimState.mIsVisible) {
- mDimState.mIsVisible = true;
- t.show(mDimState.mDimLayer);
- // Skip enter animation while starting window is on top of its activity
- final WindowState ws = mLastRequestedDimContainer.asWindowState();
- if (ws == null || ws.mActivityRecord == null
- || ws.mActivityRecord.mStartingData == null) {
- startDimEnter(mLastRequestedDimContainer,
- mDimState.mSurfaceAnimator, t);
- }
- }
- return true;
- }
- }
-
- private long getDimDuration(WindowContainer container) {
- // Use the same duration as the animation on the WindowContainer
- AnimationAdapter animationAdapter = container.mSurfaceAnimator.getAnimation();
- final float durationScale = container.mWmService.getTransitionAnimationScaleLocked();
- return animationAdapter == null ? (long) (DEFAULT_DIM_ANIM_DURATION * durationScale)
- : animationAdapter.getDurationHint();
- }
-
- private void startDimEnter(WindowContainer container, SurfaceAnimator animator,
- SurfaceControl.Transaction t) {
- startAnim(container, animator, t, 0 /* startAlpha */, 1 /* endAlpha */);
- }
-
- private void startDimExit(WindowContainer container, SurfaceAnimator animator,
- SurfaceControl.Transaction t) {
- startAnim(container, animator, t, 1 /* startAlpha */, 0 /* endAlpha */);
- }
-
- private void startAnim(WindowContainer container, SurfaceAnimator animator,
- SurfaceControl.Transaction t, float startAlpha, float endAlpha) {
- mSurfaceAnimatorStarter.startAnimation(animator, t, new LocalAnimationAdapter(
- new AlphaAnimationSpec(startAlpha, endAlpha, getDimDuration(container)),
- mHost.mWmService.mSurfaceAnimationRunner), false /* hidden */,
- ANIMATION_TYPE_DIMMER);
- }
-
- private static class AlphaAnimationSpec implements LocalAnimationAdapter.AnimationSpec {
- private final long mDuration;
- private final float mFromAlpha;
- private final float mToAlpha;
-
- AlphaAnimationSpec(float fromAlpha, float toAlpha, long duration) {
- mFromAlpha = fromAlpha;
- mToAlpha = toAlpha;
- mDuration = duration;
- }
-
- @Override
- public long getDuration() {
- return mDuration;
- }
-
- @Override
- public void apply(SurfaceControl.Transaction t, SurfaceControl sc, long currentPlayTime) {
- final float fraction = getFraction(currentPlayTime);
- final float alpha = fraction * (mToAlpha - mFromAlpha) + mFromAlpha;
- t.setAlpha(sc, alpha);
- }
-
- @Override
- public void dump(PrintWriter pw, String prefix) {
- pw.print(prefix); pw.print("from="); pw.print(mFromAlpha);
- pw.print(" to="); pw.print(mToAlpha);
- pw.print(" duration="); pw.println(mDuration);
- }
-
- @Override
- public void dumpDebugInner(ProtoOutputStream proto) {
- final long token = proto.start(ALPHA);
- proto.write(FROM, mFromAlpha);
- proto.write(TO, mToAlpha);
- proto.write(DURATION_MS, mDuration);
- proto.end(token);
- }
- }
-}
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index f2ccbc4e1aeb..bded98c6c07f 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -183,6 +183,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
private Object mLastWindowFreezeSource = null;
private float mScreenBrightnessOverride = PowerManager.BRIGHTNESS_INVALID_FLOAT;
+ private CharSequence mScreenBrightnessOverrideTag;
private long mUserActivityTimeout = -1;
private boolean mUpdateRotation = false;
// Only set while traversing the default display based on its content.
@@ -770,6 +771,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
}
mScreenBrightnessOverride = PowerManager.BRIGHTNESS_INVALID_FLOAT;
+ mScreenBrightnessOverrideTag = null;
mUserActivityTimeout = -1;
mObscureApplicationContentOnSecondaryDisplays = false;
mSustainedPerformanceModeCurrent = false;
@@ -881,11 +883,15 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
final float brightnessOverride = mScreenBrightnessOverride < PowerManager.BRIGHTNESS_MIN
|| mScreenBrightnessOverride > PowerManager.BRIGHTNESS_MAX
? PowerManager.BRIGHTNESS_INVALID_FLOAT : mScreenBrightnessOverride;
+ CharSequence overrideTag = null;
+ if (brightnessOverride != PowerManager.BRIGHTNESS_INVALID_FLOAT) {
+ overrideTag = mScreenBrightnessOverrideTag;
+ }
int brightnessFloatAsIntBits = Float.floatToIntBits(brightnessOverride);
// Post these on a handler such that we don't call into power manager service while
// holding the window manager lock to avoid lock contention with power manager lock.
mHandler.obtainMessage(SET_SCREEN_BRIGHTNESS_OVERRIDE, brightnessFloatAsIntBits,
- 0).sendToTarget();
+ 0, overrideTag).sendToTarget();
mHandler.obtainMessage(SET_USER_ACTIVITY_TIMEOUT, mUserActivityTimeout).sendToTarget();
}
@@ -1040,6 +1046,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
if (!syswin && w.mAttrs.screenBrightness >= 0
&& Float.isNaN(mScreenBrightnessOverride)) {
mScreenBrightnessOverride = w.mAttrs.screenBrightness;
+ mScreenBrightnessOverrideTag = w.getWindowTag();
}
// This function assumes that the contents of the default display are processed first
@@ -1112,7 +1119,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
switch (msg.what) {
case SET_SCREEN_BRIGHTNESS_OVERRIDE:
mWmService.mPowerManagerInternal.setScreenBrightnessOverrideFromWindowManager(
- Float.intBitsToFloat(msg.arg1));
+ Float.intBitsToFloat(msg.arg1), (CharSequence) msg.obj);
break;
case SET_USER_ACTIVITY_TIMEOUT:
mWmService.mPowerManagerInternal.
diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java
index cc95518cce39..32ec020580d9 100644
--- a/services/core/java/com/android/server/wm/Session.java
+++ b/services/core/java/com/android/server/wm/Session.java
@@ -37,6 +37,7 @@ import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
import static android.view.WindowManager.LayoutParams.isSystemAlertWindowType;
+import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME;
import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
@@ -78,6 +79,7 @@ import android.view.WindowInsets;
import android.view.WindowInsets.Type.InsetsType;
import android.view.WindowManager;
import android.view.WindowRelayoutResult;
+import android.view.inputmethod.ImeTracker;
import android.window.InputTransferToken;
import android.window.OnBackInvokedCallbackInfo;
@@ -710,13 +712,20 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient {
}
@Override
- public void updateRequestedVisibleTypes(IWindow window, @InsetsType int requestedVisibleTypes) {
+ public void updateRequestedVisibleTypes(IWindow window, @InsetsType int requestedVisibleTypes,
+ @Nullable ImeTracker.Token imeStatsToken) {
synchronized (mService.mGlobalLock) {
final WindowState win = mService.windowForClientLocked(this, window,
false /* throwOnError */);
if (win != null) {
+ ImeTracker.forLogging().onProgress(imeStatsToken,
+ ImeTracker.PHASE_WM_UPDATE_REQUESTED_VISIBLE_TYPES);
win.setRequestedVisibleTypes(requestedVisibleTypes);
- win.getDisplayContent().getInsetsPolicy().onRequestedVisibleTypesChanged(win);
+ win.getDisplayContent().getInsetsPolicy().onRequestedVisibleTypesChanged(win,
+ imeStatsToken);
+ } else {
+ ImeTracker.forLogging().onFailed(imeStatsToken,
+ ImeTracker.PHASE_WM_UPDATE_REQUESTED_VISIBLE_TYPES);
}
}
}
@@ -985,4 +994,28 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient {
}
}
}
+
+ @Override
+ public void notifyImeWindowVisibilityChangedFromClient(IWindow window, boolean visible,
+ @NonNull ImeTracker.Token statsToken) {
+ synchronized (mService.mGlobalLock) {
+ // TODO(b/353463205) check if we can use mService.getDefaultDisplayContentLocked()
+ // instead of window
+ final WindowState win = mService.windowForClientLocked(this, window,
+ false /* throwOnError */);
+ if (win != null) {
+ final InsetsStateController insetsStateController =
+ win.getDisplayContent().getInsetsStateController();
+ ProtoLog.d(WM_DEBUG_IME, "notifyImeWindowVisibilityChangedFromClient: %s",
+ insetsStateController.getImeSourceProvider());
+ ImeTracker.forLogging().onProgress(statsToken,
+ ImeTracker.PHASE_WM_NOTIFY_IME_VISIBILITY_CHANGED_FROM_CLIENT);
+ insetsStateController.getImeSourceProvider().receiveImeStatsToken(visible,
+ statsToken);
+ } else {
+ ImeTracker.forLogging().onFailed(statsToken,
+ ImeTracker.PHASE_WM_NOTIFY_IME_VISIBILITY_CHANGED_FROM_CLIENT);
+ }
+ }
+ }
}
diff --git a/services/core/java/com/android/server/wm/SmoothDimmer.java b/services/core/java/com/android/server/wm/SmoothDimmer.java
deleted file mode 100644
index 2b4d901e8231..000000000000
--- a/services/core/java/com/android/server/wm/SmoothDimmer.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * 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.server.wm;
-
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DIMMER;
-import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
-import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
-
-import android.graphics.Rect;
-import android.util.Log;
-import android.view.Surface;
-import android.view.SurfaceControl;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.protolog.ProtoLog;
-
-class SmoothDimmer extends Dimmer {
-
- private static final String TAG = TAG_WITH_CLASS_NAME ? "Dimmer" : TAG_WM;
- DimState mDimState;
- final DimmerAnimationHelper.AnimationAdapterFactory mAnimationAdapterFactory;
-
- /**
- * Controls the dim behaviour
- */
- @VisibleForTesting
- class DimState {
- /** Related objects */
- SurfaceControl mDimSurface;
- final WindowContainer mHostContainer;
- // The last container to request to dim
- private WindowContainer mLastRequestedDimContainer;
- /** Animation */
- private final DimmerAnimationHelper mAnimationHelper;
- boolean mSkipAnimation = false;
- // Determines whether the dim layer should animate before destroying.
- boolean mAnimateExit = true;
- /** Surface visibility and bounds */
- private boolean mIsVisible = false;
- // TODO(b/64816140): Remove after confirming dimmer layer always matches its container.
- final Rect mDimBounds = new Rect();
-
- DimState() {
- mHostContainer = mHost;
- mAnimationHelper = new DimmerAnimationHelper(mAnimationAdapterFactory);
- try {
- mDimSurface = makeDimLayer();
- } catch (Surface.OutOfResourcesException e) {
- Log.w(TAG, "OutOfResourcesException creating dim surface");
- }
- }
-
- void ensureVisible(SurfaceControl.Transaction t) {
- if (!mIsVisible) {
- t.show(mDimSurface);
- t.setAlpha(mDimSurface, 0f);
- mIsVisible = true;
- }
- }
-
- void adjustSurfaceLayout(SurfaceControl.Transaction t) {
- // TODO: Once we use geometry from hierarchy this falls away.
- t.setPosition(mDimSurface, mDimBounds.left, mDimBounds.top);
- t.setWindowCrop(mDimSurface, mDimBounds.width(), mDimBounds.height());
- }
-
- /**
- * Set the parameters to prepare the dim to change its appearance
- */
- void prepareLookChange(float alpha, int blurRadius) {
- mAnimationHelper.setRequestedAppearance(alpha, blurRadius);
- }
-
- /**
- * Prepare the dim for the exit animation
- */
- void exit(SurfaceControl.Transaction t) {
- if (!mAnimateExit) {
- remove(t);
- } else {
- mAnimationHelper.setExitParameters();
- setReady(t);
- }
- }
-
- void remove(SurfaceControl.Transaction t) {
- mAnimationHelper.stopCurrentAnimation(mDimSurface);
- if (mDimSurface.isValid()) {
- t.remove(mDimSurface);
- ProtoLog.d(WM_DEBUG_DIMMER,
- "Removing dim surface %s on transaction %s", this, t);
- } else {
- Log.w(TAG, "Tried to remove " + mDimSurface + " multiple times\n");
- }
- }
-
- @Override
- public String toString() {
- return "SmoothDimmer#DimState with host=" + mHostContainer + ", surface=" + mDimSurface;
- }
-
- /**
- * Set the parameters to prepare the dim to be relative parented to the dimming container
- */
- void prepareReparent(WindowContainer relativeParent, int relativeLayer) {
- mAnimationHelper.setRequestedRelativeParent(relativeParent, relativeLayer);
- }
-
- /**
- * Call when all the changes have been requested to have them applied
- * @param t The transaction in which to apply the changes
- */
- void setReady(SurfaceControl.Transaction t) {
- mAnimationHelper.applyChanges(t, this);
- }
-
- /**
- * Whether anyone is currently requesting the dim
- */
- boolean isDimming() {
- return mLastRequestedDimContainer != null;
- }
-
- private SurfaceControl makeDimLayer() {
- return mHost.makeChildSurface(null)
- .setParent(mHost.getSurfaceControl())
- .setColorLayer()
- .setName("Dim Layer for - " + mHost.getName())
- .setCallsite("DimLayer.makeDimLayer")
- .build();
- }
- }
-
- protected SmoothDimmer(WindowContainer host) {
- this(host, new DimmerAnimationHelper.AnimationAdapterFactory());
- }
-
- @VisibleForTesting
- SmoothDimmer(WindowContainer host,
- DimmerAnimationHelper.AnimationAdapterFactory animationFactory) {
- super(host);
- mAnimationAdapterFactory = animationFactory;
- }
-
- @Override
- void resetDimStates() {
- if (mDimState != null) {
- mDimState.mLastRequestedDimContainer = null;
- }
- }
-
- @Override
- protected void adjustAppearance(WindowContainer container, float alpha, int blurRadius) {
- final DimState d = obtainDimState(container);
- d.prepareLookChange(alpha, blurRadius);
- }
-
- @Override
- protected void adjustRelativeLayer(WindowContainer container, int relativeLayer) {
- if (mDimState != null) {
- mDimState.prepareReparent(container, relativeLayer);
- }
- }
-
- @Override
- boolean updateDims(SurfaceControl.Transaction t) {
- if (mDimState == null) {
- return false;
- }
- if (!mDimState.isDimming()) {
- // No one is dimming, fade out and remove the dim
- mDimState.exit(t);
- mDimState = null;
- return false;
- } else {
- // Someone is dimming, show the requested changes
- mDimState.adjustSurfaceLayout(t);
- final WindowState ws = mDimState.mLastRequestedDimContainer.asWindowState();
- if (!mDimState.mIsVisible && ws != null && ws.mActivityRecord != null
- && ws.mActivityRecord.mStartingData != null) {
- // Skip enter animation while starting window is on top of its activity
- mDimState.mSkipAnimation = true;
- }
- mDimState.setReady(t);
- return true;
- }
- }
-
- private DimState obtainDimState(WindowContainer container) {
- if (mDimState == null) {
- mDimState = new DimState();
- }
- mDimState.mLastRequestedDimContainer = container;
- return mDimState;
- }
-
- @Override
- @VisibleForTesting
- SurfaceControl getDimLayer() {
- return mDimState != null ? mDimState.mDimSurface : null;
- }
-
- @Override
- Rect getDimBounds() {
- return mDimState != null ? mDimState.mDimBounds : null;
- }
-
- @Override
- void dontAnimateExit() {
- if (mDimState != null) {
- mDimState.mAnimateExit = false;
- }
- }
-}
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 8f83a7c2c853..259ca83f47e0 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -3214,7 +3214,7 @@ class Task extends TaskFragment {
// Once at the root task level, we want to check {@link #isTranslucent(ActivityRecord)}.
// If true, we want to get the Dimmer from the level above since we don't want to animate
// the dim with the Task.
- if (!isRootTask() || (Dimmer.DIMMER_REFACTOR && isTranslucentAndVisible())
+ if (!isRootTask() || isTranslucentAndVisible()
|| (Flags.getDimmerOnClosing() ? isTranslucentForTransition()
: isTranslucent(null))) {
return super.getDimmer();
diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java
index 242a342b2984..61f5f5272e88 100644
--- a/services/core/java/com/android/server/wm/TaskFragment.java
+++ b/services/core/java/com/android/server/wm/TaskFragment.java
@@ -216,8 +216,7 @@ class TaskFragment extends WindowContainer<WindowContainer> {
*/
int mMinHeight;
- Dimmer mDimmer = Dimmer.DIMMER_REFACTOR
- ? new SmoothDimmer(this) : new LegacyDimmer(this);
+ Dimmer mDimmer = new Dimmer(this);
/** Apply the dim layer on the embedded TaskFragment. */
static final int EMBEDDED_DIM_AREA_TASK_FRAGMENT = 0;
@@ -2434,7 +2433,7 @@ class TaskFragment extends WindowContainer<WindowContainer> {
inOutConfig.smallestScreenWidthDp = (int) (0.5f
+ Math.min(mTmpFullBounds.width(), mTmpFullBounds.height()) / density);
} else if (windowingMode == WINDOWING_MODE_MULTI_WINDOW && mIsEmbedded
- && insideParentBounds && !resolvedBounds.equals(parentBounds)) {
+ && !resolvedBounds.equals(parentBounds)) {
// For embedded TFs, the smallest width should be updated. Otherwise, inherit
// from the parent task would result in applications loaded wrong resource.
inOutConfig.smallestScreenWidthDp =
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index 65bc9a226f55..cf5a1e61d450 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -467,7 +467,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
if (dimmer == null) {
return false;
}
- if (dimmer.getHost().asTask() != null) {
+ if (dimmer.hostIsTask()) {
// Always allow to dim if the host only affects its task.
return true;
}
diff --git a/services/core/java/com/android/server/wm/TransitionController.java b/services/core/java/com/android/server/wm/TransitionController.java
index 1df251cf3225..67d7b37396c0 100644
--- a/services/core/java/com/android/server/wm/TransitionController.java
+++ b/services/core/java/com/android/server/wm/TransitionController.java
@@ -1350,7 +1350,8 @@ class TransitionController {
private static boolean shouldDispatchLegacyListener(
WindowManagerInternal.AppTransitionListener listener, int displayId) {
// INVALID_DISPLAY means that it is a global listener.
- return listener.mDisplayId == Display.INVALID_DISPLAY || listener.mDisplayId == displayId;
+ return listener.mTargetDisplayId == Display.INVALID_DISPLAY
+ || listener.mTargetDisplayId == displayId;
}
void dispatchLegacyAppTransitionPending(int displayId) {
diff --git a/services/core/java/com/android/server/wm/WindowManagerInternal.java b/services/core/java/com/android/server/wm/WindowManagerInternal.java
index 132e1ee99914..8ae1cf0e0709 100644
--- a/services/core/java/com/android/server/wm/WindowManagerInternal.java
+++ b/services/core/java/com/android/server/wm/WindowManagerInternal.java
@@ -247,7 +247,7 @@ public abstract class WindowManagerInternal {
* The display this listener is interested in. If it is INVALID_DISPLAY, then which display
* should be notified depends on the dispatcher.
*/
- public final int mDisplayId;
+ public final int mTargetDisplayId;
/** Let transition controller decide which display should receive the callbacks. */
public AppTransitionListener() {
@@ -256,7 +256,7 @@ public abstract class WindowManagerInternal {
/** It will listen the transition on the given display. */
public AppTransitionListener(int displayId) {
- mDisplayId = displayId;
+ mTargetDisplayId = displayId;
}
/**
@@ -365,8 +365,10 @@ public abstract class WindowManagerInternal {
*
* @param windowToken The window token
* @param imeVisible {@code true} if the IME should be shown, {@code false} to hide
+ * @param statsToken the token tracking the current IME request.
*/
- void onImeRequestedChanged(IBinder windowToken, boolean imeVisible);
+ void onImeRequestedChanged(IBinder windowToken, boolean imeVisible,
+ @Nullable ImeTracker.Token statsToken);
}
/**
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index f65eea0797bf..a21806819d80 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -4717,8 +4717,10 @@ public class WindowManagerService extends IWindowManager.Stub
return;
}
dc.mRemoteInsetsControlTarget.setRequestedVisibleTypes(requestedVisibleTypes);
+ // TODO(b/353463205) the statsToken shouldn't be null as it is used later in the
+ // IME provider. Check if we have to create a new request here
dc.getInsetsStateController().onRequestedVisibleTypesChanged(
- dc.mRemoteInsetsControlTarget);
+ dc.mRemoteInsetsControlTarget, null /* statsToken */);
}
} finally {
Binder.restoreCallingIdentity(origId);
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index bd0b9633025b..240978ac96a0 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -5196,7 +5196,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
private void applyDims() {
if (((mAttrs.flags & FLAG_DIM_BEHIND) != 0 || shouldDrawBlurBehind())
- && (Dimmer.DIMMER_REFACTOR ? mWinAnimator.getShown() : isVisibleNow())
+ && mWinAnimator.getShown()
&& !mHidden && mTransitionController.canApplyDim(getTask())) {
// Only show the Dimmer when the following is satisfied:
// 1. The window has the flag FLAG_DIM_BEHIND or blur behind is requested
@@ -5277,17 +5277,12 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
void prepareSurfaces() {
mIsDimming = false;
if (mHasSurface) {
- if (!Dimmer.DIMMER_REFACTOR) {
- applyDims();
- }
updateSurfacePositionNonOrganized();
// Send information to SurfaceFlinger about the priority of the current window.
updateFrameRateSelectionPriorityIfNeeded();
updateScaleIfNeeded();
mWinAnimator.prepareSurfaceLocked(getSyncTransaction());
- if (Dimmer.DIMMER_REFACTOR) {
- applyDims();
- }
+ applyDims();
}
super.prepareSurfaces();
}
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 7cb8ace697ec..3747850ff89a 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -13975,6 +13975,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
USER_RESTRICTION_PERMISSIONS.put(
UserManager.DISALLOW_ULTRA_WIDEBAND_RADIO, new String[]{MANAGE_DEVICE_POLICY_NEARBY_COMMUNICATION});
USER_RESTRICTION_PERMISSIONS.put(
+ UserManager.DISALLOW_NEAR_FIELD_COMMUNICATION_RADIO, new String[]{MANAGE_DEVICE_POLICY_NEARBY_COMMUNICATION});
+ USER_RESTRICTION_PERMISSIONS.put(
UserManager.DISALLOW_UNIFIED_PASSWORD, new String[]{MANAGE_DEVICE_POLICY_LOCK_CREDENTIALS});
USER_RESTRICTION_PERMISSIONS.put(
UserManager.DISALLOW_UNINSTALL_APPS, new String[]{MANAGE_DEVICE_POLICY_APPS_CONTROL});
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java
index 84d2b7f54965..8e3248eaa6bf 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java
@@ -538,6 +538,9 @@ final class PolicyDefinition<V> {
USER_RESTRICTION_FLAGS.put(
UserManager.DISALLOW_ULTRA_WIDEBAND_RADIO, POLICY_FLAG_GLOBAL_ONLY_POLICY);
USER_RESTRICTION_FLAGS.put(
+ UserManager.DISALLOW_NEAR_FIELD_COMMUNICATION_RADIO,
+ POLICY_FLAG_GLOBAL_ONLY_POLICY);
+ USER_RESTRICTION_FLAGS.put(
UserManager.DISALLOW_SIM_GLOBALLY,
POLICY_FLAG_GLOBAL_ONLY_POLICY);
USER_RESTRICTION_FLAGS.put(UserManager.DISALLOW_ASSIST_CONTENT, /* flags= */ 0);
diff --git a/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java b/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java
index acdbbdee7d67..e6dac88f8a9e 100644
--- a/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java
+++ b/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java
@@ -398,17 +398,16 @@ public final class ProfcollectForwardingService extends SystemService {
if (randomNum >= traceFrequency) {
return;
}
- final int traceDelay = 1000;
final int traceDuration = 5000;
final String traceTag = "camera";
- BackgroundThread.get().getThreadHandler().postDelayed(() -> {
+ BackgroundThread.get().getThreadHandler().post(() -> {
try {
mIProfcollect.trace_process(traceTag, "android.hardware.camera.provider",
traceDuration);
} catch (RemoteException e) {
Log.e(LOG_TAG, "Failed to initiate trace: " + e.getMessage());
}
- }, traceDelay);
+ });
}
}, null);
}
diff --git a/services/tests/displayservicetests/src/com/android/server/display/brightness/BrightnessReasonTest.java b/services/tests/displayservicetests/src/com/android/server/display/brightness/BrightnessReasonTest.java
index 990c3830b76c..04b79b4f1761 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/brightness/BrightnessReasonTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/brightness/BrightnessReasonTest.java
@@ -18,7 +18,6 @@ package com.android.server.display.brightness;
import static org.junit.Assert.assertEquals;
-
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
@@ -43,17 +42,34 @@ public final class BrightnessReasonTest {
assertEquals(mBrightnessReason.getReason(), BrightnessReason.REASON_UNKNOWN);
assertEquals(mBrightnessReason.getModifier(), 0);
+ CharSequence tag = "my tag";
mBrightnessReason.set(
getReason(BrightnessReason.REASON_BOOST, BrightnessReason.MODIFIER_THROTTLED));
+ mBrightnessReason.setTag(tag);
+
assertEquals(mBrightnessReason.getReason(), BrightnessReason.REASON_BOOST);
assertEquals(mBrightnessReason.getModifier(), BrightnessReason.MODIFIER_THROTTLED);
+ assertEquals(mBrightnessReason.getTag().toString(), tag);
+ }
+
+ @Test
+ public void toStringGeneratedExpectedString() {
+ assertEquals("doze [ low_pwr ]", mBrightnessReason.toString());
}
@Test
- public void toStringGeneratesExpectedString() {
- String actualString = mBrightnessReason.toString();
- String expectedString = "doze [ low_pwr ]";
- assertEquals(actualString, expectedString);
+ public void overrideTagString() {
+ // Should not print out the tag for "doze"
+ mBrightnessReason.setTag("my/tag");
+ assertEquals("doze(my/tag) [ low_pwr ]", mBrightnessReason.toString());
+
+ // Should print out tag for "override"
+ mBrightnessReason.setReason(BrightnessReason.REASON_OVERRIDE);
+ assertEquals("override(my/tag) [ low_pwr ]", mBrightnessReason.toString());
+
+ // Should not print anything if no tag.
+ mBrightnessReason.setTag(null);
+ assertEquals("override [ low_pwr ]", mBrightnessReason.toString());
}
@Test
diff --git a/services/tests/powerservicetests/src/com/android/server/power/PowerGroupTest.java b/services/tests/powerservicetests/src/com/android/server/power/PowerGroupTest.java
index 94b8d68395a5..39def75e01be 100644
--- a/services/tests/powerservicetests/src/com/android/server/power/PowerGroupTest.java
+++ b/services/tests/powerservicetests/src/com/android/server/power/PowerGroupTest.java
@@ -256,7 +256,9 @@ public class PowerGroupTest {
.setBrightnessFactor(brightnessFactor)
.build();
+ CharSequence tag = "my/tag";
mPowerGroup.updateLocked(/* screenBrightnessOverride= */ BRIGHTNESS,
+ /* overrideTag= */ tag,
/* useProximitySensor= */ false,
/* boostScreenBrightness= */ false,
/* dozeScreenStateOverride= */ Display.STATE_ON,
@@ -274,6 +276,7 @@ public class PowerGroupTest {
mPowerGroup.mDisplayPowerRequest;
assertThat(displayPowerRequest.policy).isEqualTo(POLICY_DIM);
assertThat(displayPowerRequest.screenBrightnessOverride).isWithin(PRECISION).of(BRIGHTNESS);
+ assertThat(displayPowerRequest.screenBrightnessOverrideTag.toString()).isEqualTo(tag);
assertThat(displayPowerRequest.useProximitySensor).isEqualTo(false);
assertThat(displayPowerRequest.boostScreenBrightness).isEqualTo(false);
assertThat(displayPowerRequest.dozeScreenState).isEqualTo(Display.STATE_UNKNOWN);
@@ -297,6 +300,7 @@ public class PowerGroupTest {
mPowerGroup.setWakeLockSummaryLocked(WAKE_LOCK_DOZE);
mPowerGroup.updateLocked(/* screenBrightnessOverride= */ BRIGHTNESS,
+ /* overrideTag= */ null,
/* useProximitySensor= */ true,
/* boostScreenBrightness= */ true,
/* dozeScreenStateOverride= */ Display.STATE_ON,
@@ -336,6 +340,7 @@ public class PowerGroupTest {
assertThat(mPowerGroup.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_DOZING);
mPowerGroup.updateLocked(/* screenBrightnessOverride= */ BRIGHTNESS,
+ /* overrideTag= */ null,
/* useProximitySensor= */ true,
/* boostScreenBrightness= */ true,
/* dozeScreenStateOverride= */ Display.STATE_ON,
@@ -374,6 +379,7 @@ public class PowerGroupTest {
assertThat(mPowerGroup.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE);
mPowerGroup.updateLocked(/* screenBrightnessOverride= */ BRIGHTNESS,
+ /* overrideTag= */ null,
/* useProximitySensor= */ true,
/* boostScreenBrightness= */ true,
/* dozeScreenStateOverride= */ Display.STATE_ON,
@@ -412,6 +418,7 @@ public class PowerGroupTest {
mPowerGroup.sleepLocked(TIMESTAMP1, UID, GO_TO_SLEEP_REASON_TIMEOUT);
assertThat(mPowerGroup.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_ASLEEP);
mPowerGroup.updateLocked(/* screenBrightnessOverride= */ BRIGHTNESS,
+ /* overrideTag= */ null,
/* useProximitySensor= */ true,
/* boostScreenBrightness= */ true,
/* dozeScreenStateOverride= */ Display.STATE_ON,
@@ -451,6 +458,7 @@ public class PowerGroupTest {
assertThat(mPowerGroup.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_DREAMING);
mPowerGroup.setWakeLockSummaryLocked(WAKE_LOCK_SCREEN_BRIGHT);
mPowerGroup.updateLocked(/* screenBrightnessOverride= */ BRIGHTNESS,
+ /* overrideTag= */ null,
/* useProximitySensor= */ true,
/* boostScreenBrightness= */ true,
/* dozeScreenStateOverride= */ Display.STATE_ON,
@@ -488,6 +496,7 @@ public class PowerGroupTest {
.build();
assertThat(mPowerGroup.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE);
mPowerGroup.updateLocked(/* screenBrightnessOverride= */ BRIGHTNESS,
+ /* overrideTag= */ null,
/* useProximitySensor= */ true,
/* boostScreenBrightness= */ true,
/* dozeScreenStateOverride= */ Display.STATE_ON,
@@ -526,6 +535,7 @@ public class PowerGroupTest {
assertThat(mPowerGroup.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE);
mPowerGroup.setUserActivitySummaryLocked(USER_ACTIVITY_SCREEN_BRIGHT);
mPowerGroup.updateLocked(/* screenBrightnessOverride= */ BRIGHTNESS,
+ /* overrideTag= */ null,
/* useProximitySensor= */ true,
/* boostScreenBrightness= */ true,
/* dozeScreenStateOverride= */ Display.STATE_ON,
@@ -563,6 +573,7 @@ public class PowerGroupTest {
.build();
assertThat(mPowerGroup.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE);
mPowerGroup.updateLocked(/* screenBrightnessOverride= */ BRIGHTNESS,
+ /* overrideTag= */ null,
/* useProximitySensor= */ true,
/* boostScreenBrightness= */ true,
/* dozeScreenStateOverride= */ Display.STATE_ON,
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManagerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManagerTest.java
new file mode 100644
index 000000000000..f92eaabab3f7
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerManagerTest.java
@@ -0,0 +1,192 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.accessibility.a11ychecker;
+
+import static com.android.server.accessibility.Flags.FLAG_ENABLE_A11Y_CHECKER_LOGGING;
+import static com.android.server.accessibility.a11ychecker.AccessibilityCheckerConstants.MIN_DURATION_BETWEEN_CHECKS;
+import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_A11Y_SERVICE_CLASS_NAME;
+import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME;
+import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_ACTIVITY_NAME;
+import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_DEFAULT_BROWSER;
+import static com.android.server.accessibility.a11ychecker.TestUtils.createAtom;
+import static com.android.server.accessibility.a11ychecker.TestUtils.getMockPackageManagerWithInstalledApps;
+import static com.android.server.accessibility.a11ychecker.TestUtils.getTestAccessibilityEvent;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.ComponentName;
+import android.content.pm.PackageManager;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.view.accessibility.AccessibilityNodeInfo;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResult;
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityHierarchyCheck;
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityHierarchyCheckResult;
+import com.google.android.apps.common.testing.accessibility.framework.checks.TouchTargetSizeCheck;
+import com.google.android.apps.common.testing.accessibility.framework.uielement.AccessibilityHierarchy;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.time.Duration;
+import java.time.Instant;
+import java.util.List;
+import java.util.Set;
+
+@RunWith(AndroidJUnit4.class)
+public class AccessibilityCheckerManagerTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+ private AccessibilityCheckerManager mAccessibilityCheckerManager;
+
+ @Before
+ public void setup() throws PackageManager.NameNotFoundException {
+ PackageManager mockPackageManager = getMockPackageManagerWithInstalledApps();
+ mAccessibilityCheckerManager = new AccessibilityCheckerManager(setupMockChecks(),
+ nodeInfo -> mock(AccessibilityHierarchy.class), mockPackageManager);
+ }
+
+
+ @Test
+ @EnableFlags(FLAG_ENABLE_A11Y_CHECKER_LOGGING)
+ public void shouldRunA11yChecker_firstUpdate() {
+ assertThat(mAccessibilityCheckerManager.shouldRunA11yChecker()).isTrue();
+ }
+
+ @Test
+ @EnableFlags(FLAG_ENABLE_A11Y_CHECKER_LOGGING)
+ public void shouldRunA11yChecker_minDurationPassed() {
+ mAccessibilityCheckerManager.mTimer.setLastCheckTime(
+ Instant.now().minus(MIN_DURATION_BETWEEN_CHECKS.plus(Duration.ofSeconds(2))));
+ assertThat(mAccessibilityCheckerManager.shouldRunA11yChecker()).isTrue();
+ }
+
+ @Test
+ @EnableFlags(FLAG_ENABLE_A11Y_CHECKER_LOGGING)
+ public void shouldRunA11yChecker_tooEarly() {
+ mAccessibilityCheckerManager.mTimer.setLastCheckTime(
+ Instant.now().minus(MIN_DURATION_BETWEEN_CHECKS.minus(Duration.ofSeconds(2))));
+ assertThat(mAccessibilityCheckerManager.shouldRunA11yChecker()).isFalse();
+ }
+
+ @Test
+ @DisableFlags(FLAG_ENABLE_A11Y_CHECKER_LOGGING)
+ public void shouldRunA11yChecker_featureDisabled() {
+ assertThat(mAccessibilityCheckerManager.shouldRunA11yChecker()).isFalse();
+ }
+
+ @Test
+ @EnableFlags(FLAG_ENABLE_A11Y_CHECKER_LOGGING)
+ public void maybeRunA11yChecker_happyPath() {
+ AccessibilityNodeInfo mockNodeInfo1 =
+ new MockAccessibilityNodeInfoBuilder()
+ .setViewIdResourceName("node1")
+ .build();
+ AccessibilityNodeInfo mockNodeInfo2 =
+ new MockAccessibilityNodeInfoBuilder()
+ .setViewIdResourceName("node2")
+ .build();
+
+ Set<A11yCheckerProto.AccessibilityCheckResultReported> results =
+ mAccessibilityCheckerManager.maybeRunA11yChecker(
+ List.of(mockNodeInfo1, mockNodeInfo2), getTestAccessibilityEvent(),
+ new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME,
+ TEST_A11Y_SERVICE_CLASS_NAME), /*userId=*/ 0);
+
+ assertThat(results).containsExactly(
+ createAtom(/*viewIdResourceName=*/ "node1", TEST_ACTIVITY_NAME,
+ A11yCheckerProto.AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK,
+ A11yCheckerProto.AccessibilityCheckResultType.ERROR, /*resultId=*/ 2),
+ createAtom(/*viewIdResourceName=*/ "node2", TEST_ACTIVITY_NAME,
+ A11yCheckerProto.AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK,
+ A11yCheckerProto.AccessibilityCheckResultType.ERROR, /*resultId=*/ 2)
+ );
+ }
+
+ @Test
+ @EnableFlags(FLAG_ENABLE_A11Y_CHECKER_LOGGING)
+ public void maybeRunA11yChecker_skipsNodesFromDefaultBrowser() {
+ AccessibilityNodeInfo mockNodeInfo =
+ new MockAccessibilityNodeInfoBuilder()
+ .setPackageName(TEST_DEFAULT_BROWSER)
+ .setViewIdResourceName("node1")
+ .build();
+
+ Set<A11yCheckerProto.AccessibilityCheckResultReported> results =
+ mAccessibilityCheckerManager.maybeRunA11yChecker(
+ List.of(mockNodeInfo), getTestAccessibilityEvent(),
+ new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME,
+ TEST_A11Y_SERVICE_CLASS_NAME), /*userId=*/ 0);
+
+ assertThat(results).isEmpty();
+ }
+
+ @Test
+ @EnableFlags(FLAG_ENABLE_A11Y_CHECKER_LOGGING)
+ public void maybeRunA11yChecker_doesNotStoreDuplicates() {
+ AccessibilityNodeInfo mockNodeInfo =
+ new MockAccessibilityNodeInfoBuilder()
+ .setViewIdResourceName("node1")
+ .build();
+ AccessibilityNodeInfo mockNodeInfoDuplicate =
+ new MockAccessibilityNodeInfoBuilder()
+ .setViewIdResourceName("node1")
+ .build();
+
+ Set<A11yCheckerProto.AccessibilityCheckResultReported> results =
+ mAccessibilityCheckerManager.maybeRunA11yChecker(
+ List.of(mockNodeInfo, mockNodeInfoDuplicate), getTestAccessibilityEvent(),
+ new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME,
+ TEST_A11Y_SERVICE_CLASS_NAME), /*userId=*/ 0);
+
+ assertThat(results).containsExactly(
+ createAtom(/*viewIdResourceName=*/ "node1", TEST_ACTIVITY_NAME,
+ A11yCheckerProto.AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK,
+ A11yCheckerProto.AccessibilityCheckResultType.ERROR, /*resultId=*/ 2)
+ );
+ }
+
+ private Set<AccessibilityHierarchyCheck> setupMockChecks() {
+ AccessibilityHierarchyCheck mockCheck1 = mock(AccessibilityHierarchyCheck.class);
+ AccessibilityHierarchyCheckResult infoTypeResult =
+ new AccessibilityHierarchyCheckResult(
+ TouchTargetSizeCheck.class,
+ AccessibilityCheckResult.AccessibilityCheckResultType.INFO, null, 1, null);
+ when(mockCheck1.runCheckOnHierarchy(any())).thenReturn(List.of(infoTypeResult));
+
+ AccessibilityHierarchyCheck mockCheck2 = mock(AccessibilityHierarchyCheck.class);
+ AccessibilityHierarchyCheckResult errorTypeResult =
+ new AccessibilityHierarchyCheckResult(
+ TouchTargetSizeCheck.class,
+ AccessibilityCheckResult.AccessibilityCheckResultType.ERROR, null, 2,
+ null);
+ when(mockCheck2.runCheckOnHierarchy(any())).thenReturn(List.of(errorTypeResult));
+
+ return Set.of(mockCheck1, mockCheck2);
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtilsTest.java b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtilsTest.java
index 90d427596ab2..141f174e9615 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtilsTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/AccessibilityCheckerUtilsTest.java
@@ -18,12 +18,9 @@ package com.android.server.accessibility.a11ychecker;
import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_A11Y_SERVICE_CLASS_NAME;
import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME;
-import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_A11Y_SERVICE_SOURCE_VERSION_CODE;
-import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_ACTIVITY_NAME;
-import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_APP_PACKAGE_NAME;
-import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_APP_VERSION_CODE;
-import static com.android.server.accessibility.a11ychecker.TestUtils.TEST_WINDOW_TITLE;
+import static com.android.server.accessibility.a11ychecker.TestUtils.createAtom;
import static com.android.server.accessibility.a11ychecker.TestUtils.getMockPackageManagerWithInstalledApps;
+import static com.android.server.accessibility.a11ychecker.TestUtils.getTestAccessibilityEvent;
import static com.google.common.truth.Truth.assertThat;
@@ -99,9 +96,11 @@ public class AccessibilityCheckerUtilsTest {
TEST_A11Y_SERVICE_CLASS_NAME));
assertThat(atoms).containsExactly(
- createAtom(A11yCheckerProto.AccessibilityCheckClass.SPEAKABLE_TEXT_PRESENT_CHECK,
+ createAtom("TargetNode", "",
+ A11yCheckerProto.AccessibilityCheckClass.SPEAKABLE_TEXT_PRESENT_CHECK,
A11yCheckerProto.AccessibilityCheckResultType.WARNING, 1),
- createAtom(A11yCheckerProto.AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK,
+ createAtom("TargetNode", "",
+ A11yCheckerProto.AccessibilityCheckClass.TOUCH_TARGET_SIZE_CHECK,
A11yCheckerProto.AccessibilityCheckResultType.ERROR, 2)
);
}
@@ -140,10 +139,7 @@ public class AccessibilityCheckerUtilsTest {
@Test
public void getActivityName_hasWindowStateChangedEvent_returnsActivityName() {
- AccessibilityEvent accessibilityEvent =
- AccessibilityEvent.obtain(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
- accessibilityEvent.setPackageName(TEST_APP_PACKAGE_NAME);
- accessibilityEvent.setClassName(TEST_ACTIVITY_NAME);
+ AccessibilityEvent accessibilityEvent = getTestAccessibilityEvent();
assertThat(AccessibilityCheckerUtils.getActivityName(mMockPackageManager,
accessibilityEvent)).isEqualTo("MainActivity");
@@ -164,24 +160,4 @@ public class AccessibilityCheckerUtilsTest {
.containsExactlyElementsIn(latestCheckClasses);
}
-
- private static A11yCheckerProto.AccessibilityCheckResultReported createAtom(
- A11yCheckerProto.AccessibilityCheckClass checkClass,
- A11yCheckerProto.AccessibilityCheckResultType resultType,
- int resultId) {
- return A11yCheckerProto.AccessibilityCheckResultReported.newBuilder()
- .setPackageName(TEST_APP_PACKAGE_NAME)
- .setAppVersionCode(TEST_APP_VERSION_CODE)
- .setUiElementPath(TEST_APP_PACKAGE_NAME + ":TargetNode")
- .setWindowTitle(TEST_WINDOW_TITLE)
- .setActivityName("")
- .setSourceComponentName(new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME,
- TEST_A11Y_SERVICE_CLASS_NAME).flattenToString())
- .setSourceVersionCode(TEST_A11Y_SERVICE_SOURCE_VERSION_CODE)
- .setResultCheckClass(checkClass)
- .setResultType(resultType)
- .setResultId(resultId)
- .build();
- }
-
}
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/TestUtils.java b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/TestUtils.java
index a04bbee05730..ec1a25554a81 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/TestUtils.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/a11ychecker/TestUtils.java
@@ -16,6 +16,7 @@
package com.android.server.accessibility.a11ychecker;
+import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.when;
import android.annotation.Nullable;
@@ -23,24 +24,27 @@ import android.content.ComponentName;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
+import android.view.accessibility.AccessibilityEvent;
import org.mockito.Mockito;
public class TestUtils {
static final String TEST_APP_PACKAGE_NAME = "com.example.app";
static final int TEST_APP_VERSION_CODE = 12321;
- static final String TEST_ACTIVITY_NAME = "com.example.app.MainActivity";
+ static final String TEST_ACTIVITY_NAME = "MainActivity";
+ static final String QUALIFIED_TEST_ACTIVITY_NAME = "com.example.app.MainActivity";
static final String TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME = "com.assistive.app";
static final String TEST_A11Y_SERVICE_CLASS_NAME = "MyA11yService";
static final int TEST_A11Y_SERVICE_SOURCE_VERSION_CODE = 333555;
static final String TEST_WINDOW_TITLE = "Example window";
+ static final String TEST_DEFAULT_BROWSER = "com.android.chrome";
static PackageManager getMockPackageManagerWithInstalledApps()
throws PackageManager.NameNotFoundException {
PackageManager mockPackageManager = Mockito.mock(PackageManager.class);
ActivityInfo testActivityInfo = getTestActivityInfo();
ComponentName testActivityComponentName = new ComponentName(TEST_APP_PACKAGE_NAME,
- TEST_ACTIVITY_NAME);
+ QUALIFIED_TEST_ACTIVITY_NAME);
when(mockPackageManager.getActivityInfo(testActivityComponentName, 0))
.thenReturn(testActivityInfo);
@@ -50,13 +54,15 @@ public class TestUtils {
when(mockPackageManager.getPackageInfo(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME, 0))
.thenReturn(createPackageInfo(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME,
TEST_A11Y_SERVICE_SOURCE_VERSION_CODE, null));
+ when(mockPackageManager.getDefaultBrowserPackageNameAsUser(anyInt())).thenReturn(
+ TEST_DEFAULT_BROWSER);
return mockPackageManager;
}
static ActivityInfo getTestActivityInfo() {
ActivityInfo activityInfo = new ActivityInfo();
activityInfo.packageName = TEST_APP_PACKAGE_NAME;
- activityInfo.name = TEST_ACTIVITY_NAME;
+ activityInfo.name = QUALIFIED_TEST_ACTIVITY_NAME;
return activityInfo;
}
@@ -69,6 +75,34 @@ public class TestUtils {
packageInfo.activities = new ActivityInfo[]{activityInfo};
}
return packageInfo;
+ }
+
+ static AccessibilityEvent getTestAccessibilityEvent() {
+ AccessibilityEvent accessibilityEvent =
+ AccessibilityEvent.obtain(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+ accessibilityEvent.setPackageName(TEST_APP_PACKAGE_NAME);
+ accessibilityEvent.setClassName(QUALIFIED_TEST_ACTIVITY_NAME);
+ return accessibilityEvent;
+ }
+ static A11yCheckerProto.AccessibilityCheckResultReported createAtom(
+ String viewIdResourceName,
+ String activityName,
+ A11yCheckerProto.AccessibilityCheckClass checkClass,
+ A11yCheckerProto.AccessibilityCheckResultType resultType,
+ int resultId) {
+ return A11yCheckerProto.AccessibilityCheckResultReported.newBuilder()
+ .setPackageName(TEST_APP_PACKAGE_NAME)
+ .setAppVersionCode(TEST_APP_VERSION_CODE)
+ .setUiElementPath(TEST_APP_PACKAGE_NAME + ":" + viewIdResourceName)
+ .setWindowTitle(TEST_WINDOW_TITLE)
+ .setActivityName(activityName)
+ .setSourceComponentName(new ComponentName(TEST_A11Y_SERVICE_SOURCE_PACKAGE_NAME,
+ TEST_A11Y_SERVICE_CLASS_NAME).flattenToString())
+ .setSourceVersionCode(TEST_A11Y_SERVICE_SOURCE_VERSION_CODE)
+ .setResultCheckClass(checkClass)
+ .setResultType(resultType)
+ .setResultId(resultId)
+ .build();
}
}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/SystemZenRulesTest.java b/services/tests/uiservicestests/src/com/android/server/notification/SystemZenRulesTest.java
index 7aa208bd04c9..5de323bc819c 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/SystemZenRulesTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/SystemZenRulesTest.java
@@ -207,4 +207,28 @@ public class SystemZenRulesTest extends UiServiceTestCase {
assertThat(getTriggerDescriptionForScheduleTime(mContext, scheduleInfo))
.isEqualTo("Mon,Wed,Fri-Sat,10:00 AM-4:00 PM");
}
+
+ @Test
+ public void getShortDaysSummary_onlyDays() {
+ ScheduleInfo scheduleInfo = new ScheduleInfo();
+ scheduleInfo.startHour = 10;
+ scheduleInfo.endHour = 16;
+ scheduleInfo.days = new int[] {Calendar.MONDAY, Calendar.TUESDAY,
+ Calendar.WEDNESDAY, Calendar.THURSDAY, Calendar.FRIDAY};
+
+ assertThat(SystemZenRules.getShortDaysSummary(mContext, scheduleInfo))
+ .isEqualTo("Mon-Fri");
+ }
+
+ @Test
+ public void getTimeSummary_onlyTime() {
+ ScheduleInfo scheduleInfo = new ScheduleInfo();
+ scheduleInfo.startHour = 11;
+ scheduleInfo.endHour = 15;
+ scheduleInfo.days = new int[] {Calendar.MONDAY, Calendar.TUESDAY,
+ Calendar.WEDNESDAY, Calendar.THURSDAY, Calendar.FRIDAY};
+
+ assertThat(SystemZenRules.getTimeSummary(mContext, scheduleInfo))
+ .isEqualTo("11:00 AM-3:00 PM");
+ }
}
diff --git a/services/tests/wmtests/src/com/android/server/policy/ModifierShortcutManagerTests.java b/services/tests/wmtests/src/com/android/server/policy/ModifierShortcutManagerTests.java
index 5533ff909c50..50041d023e64 100644
--- a/services/tests/wmtests/src/com/android/server/policy/ModifierShortcutManagerTests.java
+++ b/services/tests/wmtests/src/com/android/server/policy/ModifierShortcutManagerTests.java
@@ -39,6 +39,7 @@ import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.os.Handler;
import android.os.Looper;
+import android.os.UserHandle;
import android.view.KeyEvent;
import android.view.KeyboardShortcutGroup;
import android.view.KeyboardShortcutInfo;
@@ -77,6 +78,7 @@ public class ModifierShortcutManagerTests {
XmlResourceParser testBookmarks = mResources.getXml(
com.android.frameworks.wmtests.R.xml.bookmarks);
+ doReturn(mContext).when(mContext).createContextAsUser(anyObject(), anyInt());
when(mContext.getResources()).thenReturn(mResources);
when(mContext.getPackageManager()).thenReturn(mPackageManager);
when(mResources.getXml(R.xml.bookmarks)).thenReturn(testBookmarks);
@@ -98,7 +100,8 @@ public class ModifierShortcutManagerTests {
.canonicalToCurrentPackageNames(aryEq(new String[] { "com.test2" }));
- mModifierShortcutManager = new ModifierShortcutManager(mContext, mHandler);
+ mModifierShortcutManager = new ModifierShortcutManager(
+ mContext, mHandler, UserHandle.SYSTEM);
}
@Test
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
index 551efcd5220a..faaa80f0c3e5 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
@@ -3351,7 +3351,8 @@ public class ActivityRecordTests extends WindowTestsBase {
// app1 requests IME visible.
app1.setRequestedVisibleTypes(ime(), ime());
- mDisplayContent.getInsetsStateController().onRequestedVisibleTypesChanged(app1);
+ mDisplayContent.getInsetsStateController().onRequestedVisibleTypesChanged(app1,
+ null /* statsToken */);
// Verify app1's IME insets is visible and app2's IME insets frozen flag set.
assertTrue(app1.getInsetsState().peekSource(ID_IME).isVisible());
@@ -3422,7 +3423,7 @@ public class ActivityRecordTests extends WindowTestsBase {
assertFalse(activity2.mImeInsetsFrozenUntilStartInput);
app1.setRequestedVisibleTypes(ime());
- controller.onRequestedVisibleTypesChanged(app1);
+ controller.onRequestedVisibleTypesChanged(app1, null /* statsToken */);
// Expect all activities in split-screen will get IME insets visible state
assertTrue(app1.getInsetsState().peekSource(ID_IME).isVisible());
diff --git a/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java b/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java
index 9efbe3587ab2..08f1dff7e1c0 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java
@@ -21,12 +21,10 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
-import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_DIMMER;
import static com.android.server.wm.utils.LastCallVerifier.lastCall;
import static org.junit.Assert.assertNotNull;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.reset;
@@ -34,14 +32,11 @@ import static org.mockito.Mockito.when;
import android.graphics.Rect;
import android.platform.test.annotations.Presubmit;
-import android.platform.test.annotations.RequiresFlagsDisabled;
-import android.platform.test.annotations.RequiresFlagsEnabled;
import android.view.SurfaceControl;
import android.view.SurfaceSession;
import com.android.server.testutils.StubTransaction;
import com.android.server.wm.utils.MockAnimationAdapter;
-import com.android.window.flags.Flags;
import org.junit.Before;
import org.junit.Test;
@@ -131,33 +126,19 @@ public class DimmerTests extends WindowTestsBase {
}
}
- private static class SurfaceAnimatorStarterImpl implements LegacyDimmer.SurfaceAnimatorStarter {
- @Override
- public void startAnimation(SurfaceAnimator surfaceAnimator, SurfaceControl.Transaction t,
- AnimationAdapter anim, boolean hidden, @SurfaceAnimator.AnimationType int type) {
- surfaceAnimator.mStaticAnimationFinishedCallback.onAnimationFinished(type, anim);
- }
- }
-
private MockSurfaceBuildingContainer mHost;
private Dimmer mDimmer;
private SurfaceControl.Transaction mTransaction;
private TestWindowContainer mChild;
private static AnimationAdapter sTestAnimation;
- private static LegacyDimmer.SurfaceAnimatorStarter sSurfaceAnimatorStarter;
@Before
public void setUp() throws Exception {
mHost = new MockSurfaceBuildingContainer(mWm);
mTransaction = spy(StubTransaction.class);
mChild = new TestWindowContainer(mWm);
- if (Dimmer.DIMMER_REFACTOR) {
- sTestAnimation = spy(new MockAnimationAdapter());
- mDimmer = new SmoothDimmer(mHost, new MockAnimationAdapterFactory());
- } else {
- sSurfaceAnimatorStarter = spy(new SurfaceAnimatorStarterImpl());
- mDimmer = new LegacyDimmer(mHost, sSurfaceAnimatorStarter);
- }
+ sTestAnimation = spy(new MockAnimationAdapter());
+ mDimmer = new Dimmer(mHost, new MockAnimationAdapterFactory());
}
@Test
@@ -177,8 +158,7 @@ public class DimmerTests extends WindowTestsBase {
}
@Test
- @RequiresFlagsEnabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
- public void testDimBelowWithChildSurfaceCreatesSurfaceBelowChild_Smooth() {
+ public void testDimBelowWithChildSurfaceCreatesSurfaceBelowChild() {
final float alpha = 0.7f;
final int blur = 50;
mHost.addChild(mChild, 0);
@@ -197,23 +177,7 @@ public class DimmerTests extends WindowTestsBase {
}
@Test
- @RequiresFlagsDisabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
- public void testDimBelowWithChildSurfaceCreatesSurfaceBelowChild_Legacy() {
- final float alpha = 0.7f;
- mHost.addChild(mChild, 0);
- mDimmer.adjustAppearance(mChild, alpha, 20);
- mDimmer.adjustRelativeLayer(mChild, -1);
- SurfaceControl dimLayer = mDimmer.getDimLayer();
-
- assertNotNull("Dimmer should have created a surface", dimLayer);
-
- verify(mHost.getPendingTransaction()).setAlpha(dimLayer, alpha);
- verify(mHost.getPendingTransaction()).setRelativeLayer(dimLayer, mChild.mControl, -1);
- }
-
- @Test
- @RequiresFlagsEnabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
- public void testDimBelowWithChildSurfaceDestroyedWhenReset_Smooth() {
+ public void testDimBelowWithChildSurfaceDestroyedWhenReset() {
mHost.addChild(mChild, 0);
final float alpha = 0.8f;
@@ -232,25 +196,6 @@ public class DimmerTests extends WindowTestsBase {
}
@Test
- @RequiresFlagsDisabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
- public void testDimBelowWithChildSurfaceDestroyedWhenReset_Legacy() {
- mHost.addChild(mChild, 0);
-
- final float alpha = 0.8f;
- mDimmer.adjustAppearance(mChild, alpha, 20);
- mDimmer.adjustRelativeLayer(mChild, -1);
- SurfaceControl dimLayer = mDimmer.getDimLayer();
- mDimmer.resetDimStates();
-
- mDimmer.updateDims(mTransaction);
- verify(sSurfaceAnimatorStarter).startAnimation(any(SurfaceAnimator.class),
- any(SurfaceControl.Transaction.class), any(AnimationAdapter.class),
- anyBoolean(),
- eq(ANIMATION_TYPE_DIMMER));
- verify(mHost.getPendingTransaction()).remove(dimLayer);
- }
-
- @Test
public void testDimBelowWithChildSurfaceNotDestroyedWhenPersisted() {
mHost.addChild(mChild, 0);
@@ -292,8 +237,7 @@ public class DimmerTests extends WindowTestsBase {
}
@Test
- @RequiresFlagsEnabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
- public void testRemoveDimImmediately_Smooth() {
+ public void testRemoveDimImmediately() {
mHost.addChild(mChild, 0);
mDimmer.adjustAppearance(mChild, 1, 2);
mDimmer.adjustRelativeLayer(mChild, -1);
@@ -311,48 +255,11 @@ public class DimmerTests extends WindowTestsBase {
verify(mTransaction).remove(dimLayer);
}
- @Test
- @RequiresFlagsDisabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
- public void testRemoveDimImmediately_Legacy() {
- mHost.addChild(mChild, 0);
- mDimmer.adjustAppearance(mChild, 1, 0);
- mDimmer.adjustRelativeLayer(mChild, -1);
- SurfaceControl dimLayer = mDimmer.getDimLayer();
- mDimmer.updateDims(mTransaction);
- verify(mTransaction, times(1)).show(dimLayer);
-
- reset(sSurfaceAnimatorStarter);
- mDimmer.dontAnimateExit();
- mDimmer.resetDimStates();
- mDimmer.updateDims(mTransaction);
- verify(sSurfaceAnimatorStarter, never()).startAnimation(any(SurfaceAnimator.class),
- any(SurfaceControl.Transaction.class), any(AnimationAdapter.class), anyBoolean(),
- eq(ANIMATION_TYPE_DIMMER));
- verify(mTransaction).remove(dimLayer);
- }
-
- @Test
- @RequiresFlagsDisabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
- public void testDimmerWithBlurUpdatesTransaction_Legacy() {
- mHost.addChild(mChild, 0);
-
- final int blurRadius = 50;
- mDimmer.adjustAppearance(mChild, 1, blurRadius);
- mDimmer.adjustRelativeLayer(mChild, -1);
- SurfaceControl dimLayer = mDimmer.getDimLayer();
-
- assertNotNull("Dimmer should have created a surface", dimLayer);
-
- verify(mHost.getPendingTransaction()).setBackgroundBlurRadius(dimLayer, blurRadius);
- verify(mHost.getPendingTransaction()).setRelativeLayer(dimLayer, mChild.mControl, -1);
- }
-
/**
* mChild is requesting the dim values to be set directly. In this case, dim won't play the
* standard animation, but directly apply mChild's requests to the dim surface
*/
@Test
- @RequiresFlagsEnabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
public void testContainerDimsOpeningAnimationByItself() {
mHost.addChild(mChild, 0);
@@ -384,7 +291,6 @@ public class DimmerTests extends WindowTestsBase {
* alpha is animated to 0. This corner case is needed to verify that the layer is removed anyway
*/
@Test
- @RequiresFlagsEnabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
public void testContainerDimsClosingAnimationByItself() {
mHost.addChild(mChild, 0);
@@ -413,7 +319,6 @@ public class DimmerTests extends WindowTestsBase {
* Check the handover of the dim between two windows and the consequent dim animation in between
*/
@Test
- @RequiresFlagsEnabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
public void testMultipleContainersDimmingConsecutively() {
TestWindowContainer first = mChild;
TestWindowContainer second = new TestWindowContainer(mWm);
@@ -442,7 +347,6 @@ public class DimmerTests extends WindowTestsBase {
* updateDims will be satisfied
*/
@Test
- @RequiresFlagsEnabled(Flags.FLAG_INTRODUCE_SMOOTHER_DIMMER)
public void testMultipleContainersDimmingAtTheSameTime() {
TestWindowContainer first = mChild;
TestWindowContainer second = new TestWindowContainer(mWm);
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java
index c77a4d650bb5..caeb41c78967 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyTests.java
@@ -554,7 +554,7 @@ public class DisplayPolicyTests extends WindowTestsBase {
final DisplayPolicy displayPolicy = mDisplayContent.getDisplayPolicy();
displayPolicy.addWindowLw(mNavBarWindow, mNavBarWindow.mAttrs);
final InsetsSourceProvider navBarProvider = mNavBarWindow.getControllableInsetProvider();
- navBarProvider.updateControlForTarget(mAppWindow, false);
+ navBarProvider.updateControlForTarget(mAppWindow, false, null /* statsToken */);
navBarProvider.getSource().setVisible(false);
displayPolicy.setCanSystemBarsBeShownByUser(false);
@@ -579,7 +579,7 @@ public class DisplayPolicyTests extends WindowTestsBase {
final DisplayPolicy displayPolicy = mDisplayContent.getDisplayPolicy();
displayPolicy.addWindowLw(mNavBarWindow, mNavBarWindow.mAttrs);
final InsetsSourceProvider navBarProvider = mNavBarWindow.getControllableInsetProvider();
- navBarProvider.updateControlForTarget(win, false);
+ navBarProvider.updateControlForTarget(win, false, null /* statsToken */);
navBarProvider.getSource().setVisible(false);
displayPolicy.setCanSystemBarsBeShownByUser(true);
diff --git a/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java
index eeec54fdc99a..b26c267768a7 100644
--- a/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java
@@ -361,7 +361,7 @@ public class InsetsPolicyTest extends WindowTestsBase {
mAppWindow.setRequestedVisibleTypes(
navigationBars() | statusBars(), navigationBars() | statusBars());
- policy.onRequestedVisibleTypesChanged(mAppWindow);
+ policy.onRequestedVisibleTypesChanged(mAppWindow, null /* statsToken */);
waitUntilWindowAnimatorIdle();
controls = mDisplayContent.getInsetsStateController().getControlsForDispatch(mAppWindow);
diff --git a/services/tests/wmtests/src/com/android/server/wm/InsetsSourceProviderTest.java b/services/tests/wmtests/src/com/android/server/wm/InsetsSourceProviderTest.java
index 2a025cd721b0..619080770f1e 100644
--- a/services/tests/wmtests/src/com/android/server/wm/InsetsSourceProviderTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/InsetsSourceProviderTest.java
@@ -112,13 +112,13 @@ public class InsetsSourceProviderTest extends WindowTestsBase {
statusBar.getFrame().set(0, 0, 500, 100);
// We must not have control or control target before we have the insets source window.
- mProvider.updateControlForTarget(target, true /* force */);
+ mProvider.updateControlForTarget(target, true /* force */, null /* statsToken */);
assertNull(mProvider.getControl(target));
assertNull(mProvider.getControlTarget());
// We can have the control or the control target after we have the insets source window.
mProvider.setWindowContainer(statusBar, null, null);
- mProvider.updateControlForTarget(target, false /* force */);
+ mProvider.updateControlForTarget(target, false /* force */, null /* statsToken */);
assertNotNull(mProvider.getControl(target));
assertNotNull(mProvider.getControlTarget());
@@ -127,25 +127,25 @@ public class InsetsSourceProviderTest extends WindowTestsBase {
mProvider.startSeamlessRotation();
assertNull(mProvider.getControl(target));
assertNull(mProvider.getControlTarget());
- mProvider.updateControlForTarget(target, true /* force */);
+ mProvider.updateControlForTarget(target, true /* force */, null /* statsToken */);
assertNull(mProvider.getControl(target));
assertNull(mProvider.getControlTarget());
// We can have the control and the control target after seamless rotation.
mProvider.finishSeamlessRotation();
- mProvider.updateControlForTarget(target, false /* force */);
+ mProvider.updateControlForTarget(target, false /* force */, null /* statsToken */);
assertNotNull(mProvider.getControl(target));
assertNotNull(mProvider.getControlTarget());
// We can clear the control and the control target.
- mProvider.updateControlForTarget(null, false /* force */);
+ mProvider.updateControlForTarget(null, false /* force */, null /* statsToken */);
assertNull(mProvider.getControl(target));
assertNull(mProvider.getControlTarget());
// We must not have control or control target if the insets source window doesn't have a
// surface.
statusBar.setSurfaceControl(null);
- mProvider.updateControlForTarget(target, true /* force */);
+ mProvider.updateControlForTarget(target, true /* force */, null /* statsToken */);
assertNull(mProvider.getControl(target));
assertNull(mProvider.getControlTarget());
}
@@ -173,7 +173,7 @@ public class InsetsSourceProviderTest extends WindowTestsBase {
// We must not have control or control target before we have the insets source window,
// so also no leash.
- mProvider.updateControlForTarget(target, true /* force */);
+ mProvider.updateControlForTarget(target, true /* force */, null /* statsToken */);
assertNull(mProvider.getControl(target));
assertNull(mProvider.getControlTarget());
assertNull(mProvider.getLeash(target));
@@ -181,7 +181,7 @@ public class InsetsSourceProviderTest extends WindowTestsBase {
// We can have the control or the control target after we have the insets source window,
// but no leash as this is not yet ready for dispatching.
mProvider.setWindowContainer(statusBar, null, null);
- mProvider.updateControlForTarget(target, false /* force */);
+ mProvider.updateControlForTarget(target, false /* force */, null /* statsToken */);
assertNotNull(mProvider.getControl(target));
assertNotNull(mProvider.getControlTarget());
assertEquals(mProvider.getControlTarget(), target);
@@ -265,9 +265,9 @@ public class InsetsSourceProviderTest extends WindowTestsBase {
final WindowState target = createWindow(null, TYPE_APPLICATION, "target");
statusBar.getFrame().set(0, 0, 500, 100);
mProvider.setWindowContainer(statusBar, null, null);
- mProvider.updateControlForTarget(target, false /* force */);
+ mProvider.updateControlForTarget(target, false /* force */, null /* statsToken */);
target.setRequestedVisibleTypes(0, statusBars());
- mProvider.updateClientVisibility(target);
+ mProvider.updateClientVisibility(target, null /* statsToken */);
assertFalse(mSource.isVisible());
}
@@ -278,7 +278,7 @@ public class InsetsSourceProviderTest extends WindowTestsBase {
statusBar.getFrame().set(0, 0, 500, 100);
mProvider.setWindowContainer(statusBar, null, null);
target.setRequestedVisibleTypes(0, statusBars());
- mProvider.updateClientVisibility(target);
+ mProvider.updateClientVisibility(target, null /* statsToken */);
assertTrue(mSource.isVisible());
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
index c69faede7580..0dc56f8afc53 100644
--- a/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
@@ -201,7 +201,7 @@ public class InsetsStateControllerTest extends WindowTestsBase {
.setWindowContainer(mImeWindow, null, null);
getController().onImeControlTargetChanged(base);
base.setRequestedVisibleTypes(ime(), ime());
- getController().onRequestedVisibleTypesChanged(base);
+ getController().onRequestedVisibleTypesChanged(base, null /* statsToken */);
// Send our spy window (app) into the system so that we can detect the invocation.
final WindowState win = createWindow(null, TYPE_APPLICATION, "app");
@@ -445,7 +445,7 @@ public class InsetsStateControllerTest extends WindowTestsBase {
waitUntilHandlersIdle();
clearInvocations(mDisplayContent);
- imeSourceProvider.updateControlForTarget(app, false /* force */);
+ imeSourceProvider.updateControlForTarget(app, false /* force */, null /* statsToken */);
imeSourceProvider.setClientVisible(true);
verify(mDisplayContent).assignWindowLayers(anyBoolean());
waitUntilHandlersIdle();
@@ -497,7 +497,7 @@ public class InsetsStateControllerTest extends WindowTestsBase {
mDisplayContent.updateImeInputAndControlTarget(app);
app.setRequestedVisibleTypes(ime(), ime());
- getController().onRequestedVisibleTypesChanged(app);
+ getController().onRequestedVisibleTypesChanged(app, null /* statsToken */);
assertTrue(ime.getControllableInsetProvider().getSource().isVisible());
getController().updateAboveInsetsState(true /* notifyInsetsChange */);
@@ -544,7 +544,7 @@ public class InsetsStateControllerTest extends WindowTestsBase {
imeInsetsProvider.setWindowContainer(mImeWindow, null, null);
imeInsetsProvider.updateSourceFrame(mImeWindow.getFrame());
- imeInsetsProvider.updateControlForTarget(app1, false);
+ imeInsetsProvider.updateControlForTarget(app1, false, null /* statsToken */);
imeInsetsProvider.onPostLayout();
final InsetsSourceControl control1 = imeInsetsProvider.getControl(app1);
assertNotNull(control1);
@@ -553,7 +553,7 @@ public class InsetsStateControllerTest extends WindowTestsBase {
// Simulate the IME control target updated from app1 to app2 when IME insets was invisible.
imeInsetsProvider.setServerVisible(false);
- imeInsetsProvider.updateControlForTarget(app2, false);
+ imeInsetsProvider.updateControlForTarget(app2, false, null /* statsToken */);
// Verify insetsHint of the new control is same as last IME source frame after the layout.
imeInsetsProvider.onPostLayout();
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java
index 47d34a6e5f2b..3c247a03d744 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java
@@ -1049,6 +1049,28 @@ public class TaskFragmentTest extends WindowTestsBase {
assertFalse(taskFragment.shouldBeVisible(null));
}
+ @Test
+ public void testTaskFragmentSmallestScreenWidthDp() {
+ // Create an embedded TaskFragment in a Task.
+ final Task task = createTask(mDisplayContent);
+ final TaskFragment taskFragment = new TaskFragmentBuilder(mAtm)
+ .setParentTask(task)
+ .createActivityCount(1)
+ .build();
+ final Rect taskBounds = task.getBounds();
+
+ // Making the bounds of the embedded TaskFragment smaller than the parent Task.
+ taskFragment.setBounds(taskBounds.left, taskBounds.top, taskBounds.right / 2,
+ taskBounds.bottom);
+
+ // The swdp should be calculated via the TF bounds when it is a multi-window TF.
+ final Configuration outConfig = new Configuration();
+ outConfig.windowConfiguration.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+ taskFragment.computeConfigResourceOverrides(outConfig, task.getConfiguration());
+ assertEquals(outConfig.smallestScreenWidthDp,
+ Math.min(outConfig.screenWidthDp, outConfig.screenHeightDp));
+ }
+
private WindowState createAppWindow(ActivityRecord app, String name) {
final WindowState win = createWindow(null, TYPE_BASE_APPLICATION, app, name,
0 /* ownerId */, false /* ownerCanAddInternalSystemWindow */, new TestIWindow());
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
index e13376b34e7b..b46189c1704a 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
@@ -472,7 +472,7 @@ public class WindowStateTests extends WindowTestsBase {
app.setRequestedVisibleTypes(0, statusBars());
mDisplayContent.getInsetsStateController()
.getOrCreateSourceProvider(statusBarId, statusBars())
- .updateClientVisibility(app);
+ .updateClientVisibility(app, null /* statsToken */);
waitUntilHandlersIdle();
assertFalse(statusBar.isVisible());
}
diff --git a/tests/PackageWatchdog/src/com/android/server/CrashRecoveryTest.java b/tests/PackageWatchdog/src/com/android/server/CrashRecoveryTest.java
index 3722fefb12ad..c0e90f9232d6 100644
--- a/tests/PackageWatchdog/src/com/android/server/CrashRecoveryTest.java
+++ b/tests/PackageWatchdog/src/com/android/server/CrashRecoveryTest.java
@@ -35,6 +35,7 @@ import static org.mockito.Mockito.when;
import android.Manifest;
import android.content.Context;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.VersionedPackage;
@@ -77,6 +78,7 @@ import org.mockito.stubbing.Answer;
import java.io.File;
import java.lang.reflect.Field;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -413,6 +415,311 @@ public class CrashRecoveryTest {
verify(rescuePartyObserver, never()).executeBootLoopMitigation(2);
}
+ @Test
+ @DisableFlags(Flags.FLAG_DEPRECATE_FLAGS_AND_SETTINGS_RESETS)
+ public void testCrashLoopWithRescuePartyAndRollbackObserver() throws Exception {
+ PackageWatchdog watchdog = createWatchdog();
+ RescuePartyObserver rescuePartyObserver = setUpRescuePartyObserver(watchdog);
+ RollbackPackageHealthObserver rollbackObserver =
+ setUpRollbackPackageHealthObserver(watchdog);
+ VersionedPackage versionedPackageA = new VersionedPackage(APP_A, VERSION_CODE);
+
+ when(mMockPackageManager.getApplicationInfo(anyString(), anyInt())).then(inv -> {
+ ApplicationInfo info = new ApplicationInfo();
+ info.flags |= ApplicationInfo.FLAG_PERSISTENT
+ | ApplicationInfo.FLAG_SYSTEM;
+ return info;
+ });
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageA), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: SCOPED_DEVICE_CONFIG_RESET
+ verify(rescuePartyObserver).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+ verify(rescuePartyObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ verify(rollbackObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageA), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: ALL_DEVICE_CONFIG_RESET
+ verify(rescuePartyObserver).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ verify(rescuePartyObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 3);
+ verify(rollbackObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageA), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: WARM_REBOOT
+ verify(rescuePartyObserver).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 3);
+ verify(rescuePartyObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 4);
+ verify(rollbackObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageA), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: Low impact rollback
+ verify(rollbackObserver).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+ verify(rescuePartyObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 4);
+
+ // update available rollbacks to mock rollbacks being applied after the call to
+ // rollbackObserver.execute
+ when(mRollbackManager.getAvailableRollbacks()).thenReturn(
+ List.of(ROLLBACK_INFO_HIGH, ROLLBACK_INFO_MANUAL));
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageA), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // DEFAULT_MAJOR_USER_IMPACT_LEVEL_THRESHOLD reached. No more mitigations applied
+ verify(rescuePartyObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 4);
+ verify(rollbackObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_DEPRECATE_FLAGS_AND_SETTINGS_RESETS)
+ public void testCrashLoopWithRescuePartyAndRollbackObserverEnableDeprecateFlagReset()
+ throws Exception {
+ PackageWatchdog watchdog = createWatchdog();
+ RescuePartyObserver rescuePartyObserver = setUpRescuePartyObserver(watchdog);
+ RollbackPackageHealthObserver rollbackObserver =
+ setUpRollbackPackageHealthObserver(watchdog);
+ VersionedPackage versionedPackageA = new VersionedPackage(APP_A, VERSION_CODE);
+
+ when(mMockPackageManager.getApplicationInfo(anyString(), anyInt())).then(inv -> {
+ ApplicationInfo info = new ApplicationInfo();
+ info.flags |= ApplicationInfo.FLAG_PERSISTENT
+ | ApplicationInfo.FLAG_SYSTEM;
+ return info;
+ });
+
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageA), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: WARM_REBOOT
+ verify(rescuePartyObserver).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+ verify(rescuePartyObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ verify(rollbackObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageA), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: Low impact rollback
+ verify(rollbackObserver).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+ verify(rescuePartyObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+
+ // update available rollbacks to mock rollbacks being applied after the call to
+ // rollbackObserver.execute
+ when(mRollbackManager.getAvailableRollbacks()).thenReturn(
+ List.of(ROLLBACK_INFO_HIGH, ROLLBACK_INFO_MANUAL));
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageA), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // DEFAULT_MAJOR_USER_IMPACT_LEVEL_THRESHOLD reached. No more mitigations applied
+ verify(rescuePartyObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ verify(rollbackObserver, never()).execute(versionedPackageA,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_DEPRECATE_FLAGS_AND_SETTINGS_RESETS)
+ public void testCrashLoopSystemUIWithRescuePartyAndRollbackObserver() throws Exception {
+ PackageWatchdog watchdog = createWatchdog();
+ RescuePartyObserver rescuePartyObserver = setUpRescuePartyObserver(watchdog);
+ RollbackPackageHealthObserver rollbackObserver =
+ setUpRollbackPackageHealthObserver(watchdog);
+ String systemUi = "com.android.systemui";
+ VersionedPackage versionedPackageUi = new VersionedPackage(
+ systemUi, VERSION_CODE);
+ RollbackInfo rollbackInfoUi = getRollbackInfo(systemUi, VERSION_CODE, 1,
+ PackageManager.ROLLBACK_USER_IMPACT_LOW);
+ when(mRollbackManager.getAvailableRollbacks()).thenReturn(List.of(ROLLBACK_INFO_LOW,
+ ROLLBACK_INFO_HIGH, ROLLBACK_INFO_MANUAL, rollbackInfoUi));
+
+ when(mMockPackageManager.getApplicationInfo(anyString(), anyInt())).then(inv -> {
+ ApplicationInfo info = new ApplicationInfo();
+ info.flags |= ApplicationInfo.FLAG_PERSISTENT
+ | ApplicationInfo.FLAG_SYSTEM;
+ return info;
+ });
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: SCOPED_DEVICE_CONFIG_RESET
+ verify(rescuePartyObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: ALL_DEVICE_CONFIG_RESET
+ verify(rescuePartyObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 3);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: WARM_REBOOT
+ verify(rescuePartyObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 3);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 4);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: Low impact rollback
+ verify(rollbackObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 4);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+
+ // update available rollbacks to mock rollbacks being applied after the call to
+ // rollbackObserver.execute
+ when(mRollbackManager.getAvailableRollbacks()).thenReturn(
+ List.of(ROLLBACK_INFO_HIGH, ROLLBACK_INFO_MANUAL));
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: RESET_SETTINGS_UNTRUSTED_DEFAULTS
+ verify(rescuePartyObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 4);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 5);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: RESET_SETTINGS_UNTRUSTED_CHANGES
+ verify(rescuePartyObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 5);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 6);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: RESET_SETTINGS_TRUSTED_DEFAULTS
+ verify(rescuePartyObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 6);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 7);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: Factory reset. High impact rollbacks are performed only for boot loops.
+ verify(rescuePartyObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 7);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 8);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_DEPRECATE_FLAGS_AND_SETTINGS_RESETS)
+ public void testCrashLoopSystemUIWithRescuePartyAndRollbackObserverEnableDeprecateFlagReset()
+ throws Exception {
+ PackageWatchdog watchdog = createWatchdog();
+ RescuePartyObserver rescuePartyObserver = setUpRescuePartyObserver(watchdog);
+ RollbackPackageHealthObserver rollbackObserver =
+ setUpRollbackPackageHealthObserver(watchdog);
+ String systemUi = "com.android.systemui";
+ VersionedPackage versionedPackageUi = new VersionedPackage(
+ systemUi, VERSION_CODE);
+ RollbackInfo rollbackInfoUi = getRollbackInfo(systemUi, VERSION_CODE, 1,
+ PackageManager.ROLLBACK_USER_IMPACT_LOW);
+ when(mRollbackManager.getAvailableRollbacks()).thenReturn(List.of(ROLLBACK_INFO_LOW,
+ ROLLBACK_INFO_HIGH, ROLLBACK_INFO_MANUAL, rollbackInfoUi));
+
+ when(mMockPackageManager.getApplicationInfo(anyString(), anyInt())).then(inv -> {
+ ApplicationInfo info = new ApplicationInfo();
+ info.flags |= ApplicationInfo.FLAG_PERSISTENT
+ | ApplicationInfo.FLAG_SYSTEM;
+ return info;
+ });
+
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: WARM_REBOOT
+ verify(rescuePartyObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: Low impact rollback
+ verify(rollbackObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 1);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+
+ // update available rollbacks to mock rollbacks being applied after the call to
+ // rollbackObserver.execute
+ when(mRollbackManager.getAvailableRollbacks()).thenReturn(
+ List.of(ROLLBACK_INFO_HIGH, ROLLBACK_INFO_MANUAL));
+
+ raiseFatalFailureAndDispatch(watchdog,
+ Arrays.asList(versionedPackageUi), PackageWatchdog.FAILURE_REASON_APP_CRASH);
+
+ // Mitigation: Factory reset. High impact rollbacks are performed only for boot loops.
+ verify(rescuePartyObserver).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ verify(rescuePartyObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 3);
+ verify(rollbackObserver, never()).execute(versionedPackageUi,
+ PackageWatchdog.FAILURE_REASON_APP_CRASH, 2);
+ }
+
RollbackPackageHealthObserver setUpRollbackPackageHealthObserver(PackageWatchdog watchdog) {
RollbackPackageHealthObserver rollbackObserver =
spy(new RollbackPackageHealthObserver(mSpyContext, mApexManager));
@@ -424,7 +731,6 @@ public class CrashRecoveryTest {
watchdog.registerHealthObserver(rollbackObserver);
return rollbackObserver;
}
-
RescuePartyObserver setUpRescuePartyObserver(PackageWatchdog watchdog) {
setCrashRecoveryPropRescueBootCount(0);
RescuePartyObserver rescuePartyObserver = spy(RescuePartyObserver.getInstance(mSpyContext));
@@ -686,4 +992,20 @@ public class CrashRecoveryTest {
mTestLooper.moveTimeForward(milliSeconds);
mTestLooper.dispatchAll();
}
+
+ private void raiseFatalFailureAndDispatch(PackageWatchdog watchdog,
+ List<VersionedPackage> packages, int failureReason) {
+ long triggerFailureCount = watchdog.getTriggerFailureCount();
+ if (failureReason == PackageWatchdog.FAILURE_REASON_EXPLICIT_HEALTH_CHECK
+ || failureReason == PackageWatchdog.FAILURE_REASON_NATIVE_CRASH) {
+ triggerFailureCount = 1;
+ }
+ for (int i = 0; i < triggerFailureCount; i++) {
+ watchdog.onPackageFailure(packages, failureReason);
+ }
+ mTestLooper.dispatchAll();
+ if (Flags.recoverabilityDetection()) {
+ moveTimeForwardAndDispatch(watchdog.DEFAULT_MITIGATION_WINDOW_MS);
+ }
+ }
}
diff --git a/tools/aapt2/Android.bp b/tools/aapt2/Android.bp
index 4c8193990feb..3f9016ba4852 100644
--- a/tools/aapt2/Android.bp
+++ b/tools/aapt2/Android.bp
@@ -55,7 +55,10 @@ cc_defaults {
cflags: ["-D_DARWIN_UNLIMITED_STREAMS"],
},
},
- header_libs: ["jni_headers"],
+ header_libs: [
+ "jni_headers",
+ "native_headers",
+ ],
static_libs: [
"libandroidfw",
"libutils",