summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt8
-rw-r--r--api/system-current.txt8
-rw-r--r--api/test-current.txt2
-rw-r--r--cmds/statsd/src/anomaly/AnomalyTracker.cpp151
-rw-r--r--cmds/statsd/src/anomaly/AnomalyTracker.h55
-rw-r--r--cmds/statsd/src/anomaly/DurationAnomalyTracker.cpp68
-rw-r--r--cmds/statsd/src/anomaly/DurationAnomalyTracker.h20
-rw-r--r--cmds/statsd/src/atoms.proto1
-rw-r--r--cmds/statsd/src/metrics/duration_helper/DurationTracker.h14
-rw-r--r--cmds/statsd/src/metrics/duration_helper/MaxDurationTracker.cpp4
-rw-r--r--cmds/statsd/src/metrics/duration_helper/OringDurationTracker.cpp22
-rw-r--r--cmds/statsd/src/metrics/metrics_manager_util.cpp4
-rw-r--r--cmds/statsd/tests/anomaly/AnomalyTracker_test.cpp7
-rw-r--r--cmds/statsd/tests/metrics/CountMetricProducer_test.cpp5
-rw-r--r--cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp5
-rw-r--r--cmds/statsd/tests/metrics/OringDurationTracker_test.cpp3
-rw-r--r--cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp7
-rw-r--r--config/hiddenapi-light-greylist.txt40
-rw-r--r--core/java/android/app/ActivityManagerInternal.java7
-rw-r--r--core/java/android/app/Notification.java41
-rw-r--r--core/java/android/app/StatsManager.java24
-rw-r--r--core/java/android/app/usage/IUsageStatsManager.aidl4
-rw-r--r--core/java/android/app/usage/UsageStatsManager.java74
-rw-r--r--core/java/android/content/SyncResult.java12
-rw-r--r--core/java/android/net/IpSecManager.java88
-rw-r--r--core/java/android/os/Looper.java1
-rw-r--r--core/java/android/os/PowerManager.java10
-rw-r--r--core/java/android/provider/Settings.java18
-rw-r--r--core/java/android/security/ConfirmationDialog.java23
-rw-r--r--core/java/android/security/keystore/recovery/KeyChainProtectionParams.java4
-rw-r--r--core/java/android/security/keystore/recovery/KeyDerivationParams.java2
-rw-r--r--core/java/android/security/keystore/recovery/RecoveryController.java24
-rw-r--r--core/java/android/view/ViewRootImpl.java45
-rw-r--r--core/java/android/view/autofill/AutofillManager.java9
-rw-r--r--core/java/com/android/internal/widget/LockPatternUtils.java5
-rw-r--r--core/proto/android/app/enums.proto3
-rw-r--r--core/proto/android/content/configuration.proto2
-rw-r--r--core/proto/android/content/intent.proto2
-rw-r--r--core/proto/android/os/looper.proto6
-rw-r--r--core/proto/android/os/powermanager.proto11
-rw-r--r--core/proto/android/providers/settings.proto2
-rw-r--r--core/proto/android/server/activitymanagerservice.proto117
-rw-r--r--core/proto/android/server/intentresolver.proto4
-rw-r--r--core/proto/android/service/diskstats.proto4
-rw-r--r--core/tests/coretests/src/android/provider/SettingsBackupTest.java2
-rw-r--r--media/java/android/media/MediaPlayerBase.java27
-rw-r--r--media/java/android/media/MediaSession2.java4
-rw-r--r--media/java/android/media/update/ApiLoader.java64
-rw-r--r--packages/SettingsLib/res/values-af/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-am/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ar/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-az/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-b+sr+Latn/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-be/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-bg/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-bn/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-bs/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ca/strings.xml61
-rw-r--r--packages/SettingsLib/res/values-cs/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-da/strings.xml59
-rw-r--r--packages/SettingsLib/res/values-de/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-el/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-en-rAU/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-en-rCA/strings.xml17
-rw-r--r--packages/SettingsLib/res/values-en-rGB/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-en-rIN/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-en-rXC/strings.xml17
-rw-r--r--packages/SettingsLib/res/values-es-rUS/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-es/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-et/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-eu/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-fa/strings.xml63
-rw-r--r--packages/SettingsLib/res/values-fi/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-fr-rCA/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-fr/strings.xml17
-rw-r--r--packages/SettingsLib/res/values-gl/strings.xml61
-rw-r--r--packages/SettingsLib/res/values-gu/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-hi/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-hr/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-hu/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-hy/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-in/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-is/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-it/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-iw/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ja/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ka/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-kk/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-km/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-kn/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ko/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ky/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-lo/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-lt/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-lv/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-mk/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ml/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-mn/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-mr/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ms/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-my/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-nb/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ne/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-nl/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-pa/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-pl/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-pt-rBR/strings.xml17
-rw-r--r--packages/SettingsLib/res/values-pt-rPT/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-pt/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ro/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ru/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-si/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-sk/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-sl/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-sq/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-sr/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-sv/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-sw/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ta/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-th/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-tl/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-tr/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-uk/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-ur/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-uz/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-vi/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-zh-rCN/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-zh-rHK/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-zh-rTW/strings.xml57
-rw-r--r--packages/SettingsLib/res/values-zu/strings.xml57
-rw-r--r--packages/SettingsLib/res/values/strings.xml8
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java2
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java2
-rw-r--r--packages/SettingsProvider/res/values-af/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-am/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ar/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-az/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-b+sr+Latn/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-be/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-bg/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-bn/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-bs/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ca/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-cs/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-da/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-de/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-el/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-en-rAU/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-en-rCA/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-en-rGB/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-en-rIN/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-en-rXC/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-es-rUS/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-es/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-et/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-eu/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-fa/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-fi/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-fr-rCA/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-fr/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-gl/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-gu/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-hi/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-hr/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-hu/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-hy/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-in/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-is/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-it/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-iw/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ja/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ka/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-kk/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-km/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-kn/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ko/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ky/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-lo/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-lt/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-lv/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-mk/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ml/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-mn/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-mr/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ms/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-my/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-nb/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ne/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-nl/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-pa/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-pl/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-pt-rBR/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-pt-rPT/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-pt/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ro/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ru/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-si/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-sk/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-sl/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-sq/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-sr/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-sv/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-sw/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ta/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-th/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-tl/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-tr/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-uk/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-ur/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-uz/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-vi/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-zh-rCN/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-zh-rHK/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-zh-rTW/defaults.xml1
-rw-r--r--packages/SettingsProvider/res/values-zu/defaults.xml1
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java4
-rw-r--r--packages/SystemUI/res/layout/status_bar_no_notifications.xml3
-rw-r--r--packages/SystemUI/src/com/android/systemui/DejankUtils.java16
-rw-r--r--packages/SystemUI/src/com/android/systemui/SystemUIFactory.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java44
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java24
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java8
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java257
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java14
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java2
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-af/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-am/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ar/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-az/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-b+sr+Latn/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-be/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-bg/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-bs/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ca/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-cs/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-da/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-de/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-el/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rAU/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rCA/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rGB/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rIN/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rXC/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-es-rUS/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-es/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-et/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-eu/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fa/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fi/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fr-rCA/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fr/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-gl/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hr/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hu/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hy/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-in/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-is/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-it/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ja/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ka/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-kk/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-km/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ko/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ky/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lo/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lt/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lv/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-mk/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-mn/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ms/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-my/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-nb/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-nl/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pl/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt-rBR/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt-rPT/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ro/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ru/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-si/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sk/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sl/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sq/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sr/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sv/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sw/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-th/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-tl/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-tr/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-uk/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-uz/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-vi/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rCN/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rHK/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rTW/strings.xml21
-rw-r--r--packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zu/strings.xml21
-rw-r--r--proto/src/metrics_constants.proto4
-rw-r--r--services/core/java/com/android/server/TelephonyRegistry.java68
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java43
-rw-r--r--services/core/java/com/android/server/am/ActivityMetricsLogger.java10
-rw-r--r--services/core/java/com/android/server/am/ActivityRecord.java3
-rw-r--r--services/core/java/com/android/server/am/ActivityStack.java10
-rw-r--r--services/core/java/com/android/server/am/ActivityStackSupervisor.java25
-rw-r--r--services/core/java/com/android/server/am/AppBindRecord.java11
-rw-r--r--services/core/java/com/android/server/am/ConnectionRecord.java4
-rw-r--r--services/core/java/com/android/server/am/IntentBindRecord.java6
-rw-r--r--services/core/java/com/android/server/am/KeyguardController.java8
-rw-r--r--services/core/java/com/android/server/am/RecentTasks.java2
-rw-r--r--services/core/java/com/android/server/am/RecentsAnimation.java6
-rw-r--r--services/core/java/com/android/server/am/ServiceRecord.java17
-rw-r--r--services/core/java/com/android/server/am/UidRecord.java1
-rw-r--r--services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncTask.java10
-rw-r--r--services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage.java47
-rw-r--r--services/core/java/com/android/server/power/batterysaver/BatterySavingStats.java43
-rw-r--r--services/core/java/com/android/server/wm/AppWindowContainerController.java3
-rw-r--r--services/core/java/com/android/server/wm/AppWindowToken.java7
-rw-r--r--services/core/java/com/android/server/wm/RecentsAnimationController.java8
-rw-r--r--services/core/java/com/android/server/wm/TaskSnapshotController.java3
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java91
-rw-r--r--services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java36
-rw-r--r--services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/devicepolicy/MockUtils.java6
-rw-r--r--services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncTaskTest.java26
-rw-r--r--services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorageTest.java58
-rw-r--r--services/tests/servicestests/src/com/android/server/usage/AppTimeLimitControllerTests.java256
-rw-r--r--services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java2
-rw-r--r--services/tests/uiservicestests/AndroidManifest.xml1
-rw-r--r--services/usage/java/com/android/server/usage/AppTimeLimitController.java464
-rw-r--r--services/usage/java/com/android/server/usage/UsageStatsService.java85
-rw-r--r--telephony/java/android/provider/Telephony.java8
-rw-r--r--telephony/java/android/telephony/PhoneStateListener.java15
-rw-r--r--telephony/java/android/telephony/ServiceState.java8
-rw-r--r--telephony/java/android/telephony/SubscriptionManager.java2
-rw-r--r--tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java41
-rw-r--r--tests/UsageStatsTest/AndroidManifest.xml1
-rw-r--r--tests/UsageStatsTest/res/menu/main.xml2
-rw-r--r--tests/UsageStatsTest/src/com/android/tests/usagestats/UsageStatsActivity.java56
-rw-r--r--tools/aapt2/LoadedApk.cpp26
-rw-r--r--tools/aapt2/LoadedApk.h7
-rw-r--r--tools/aapt2/optimize/MultiApkGenerator_test.cpp6
-rw-r--r--wifi/java/android/net/wifi/WifiConfiguration.java88
347 files changed, 5750 insertions, 3487 deletions
diff --git a/api/current.txt b/api/current.txt
index 398fc3f53ac2..69d9a9e4c73c 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -5554,7 +5554,11 @@ package android.app {
method public java.lang.String getKey();
method public java.lang.CharSequence getName();
method public java.lang.String getUri();
+ method public boolean isBot();
+ method public boolean isImportant();
+ method public android.app.Notification.Person setBot(boolean);
method public android.app.Notification.Person setIcon(android.graphics.drawable.Icon);
+ method public android.app.Notification.Person setImportant(boolean);
method public android.app.Notification.Person setKey(java.lang.String);
method public android.app.Notification.Person setName(java.lang.CharSequence);
method public android.app.Notification.Person setUri(java.lang.String);
@@ -42821,17 +42825,17 @@ package android.telephony {
ctor public ServiceState(android.os.Parcel);
method protected void copyFrom(android.telephony.ServiceState);
method public int describeContents();
+ method public int getCdmaNetworkId();
+ method public int getCdmaSystemId();
method public int[] getCellBandwidths();
method public int getChannelNumber();
method public int getDuplexMode();
method public boolean getIsManualSelection();
- method public int getNetworkId();
method public java.lang.String getOperatorAlphaLong();
method public java.lang.String getOperatorAlphaShort();
method public java.lang.String getOperatorNumeric();
method public boolean getRoaming();
method public int getState();
- method public int getSystemId();
method public void setIsManualSelection(boolean);
method public void setOperatorName(java.lang.String, java.lang.String, java.lang.String);
method public void setRoaming(boolean);
diff --git a/api/system-current.txt b/api/system-current.txt
index af783caf7c12..1080669e6ca5 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -729,9 +729,14 @@ package android.app.usage {
public final class UsageStatsManager {
method public int getAppStandbyBucket(java.lang.String);
method public java.util.Map<java.lang.String, java.lang.Integer> getAppStandbyBuckets();
+ method public void registerAppUsageObserver(int, java.lang.String[], long, java.util.concurrent.TimeUnit, android.app.PendingIntent);
method public void setAppStandbyBucket(java.lang.String, int);
method public void setAppStandbyBuckets(java.util.Map<java.lang.String, java.lang.Integer>);
+ method public void unregisterAppUsageObserver(int);
method public void whitelistAppTemporarily(java.lang.String, long, android.os.UserHandle);
+ field public static final java.lang.String EXTRA_OBSERVER_ID = "android.app.usage.extra.OBSERVER_ID";
+ field public static final java.lang.String EXTRA_TIME_LIMIT = "android.app.usage.extra.TIME_LIMIT";
+ field public static final java.lang.String EXTRA_TIME_USED = "android.app.usage.extra.TIME_USED";
field public static final int STANDBY_BUCKET_EXEMPTED = 5; // 0x5
field public static final int STANDBY_BUCKET_NEVER = 50; // 0x32
}
@@ -4327,11 +4332,14 @@ package android.security.keystore.recovery {
method public deprecated java.util.List<java.lang.String> getAliases(java.lang.String) throws android.security.keystore.recovery.InternalRecoveryServiceException;
method public java.util.List<java.lang.String> getAliases() throws android.security.keystore.recovery.InternalRecoveryServiceException;
method public static android.security.keystore.recovery.RecoveryController getInstance(android.content.Context);
+ method public java.security.Key getKey(java.lang.String) throws android.security.keystore.recovery.InternalRecoveryServiceException, java.security.UnrecoverableKeyException;
+ method public android.security.keystore.recovery.KeyChainSnapshot getKeyChainSnapshot() throws android.security.keystore.recovery.InternalRecoveryServiceException;
method public int[] getPendingRecoverySecretTypes() throws android.security.keystore.recovery.InternalRecoveryServiceException;
method public deprecated android.security.keystore.recovery.KeyChainSnapshot getRecoveryData() throws android.security.keystore.recovery.InternalRecoveryServiceException;
method public int[] getRecoverySecretTypes() throws android.security.keystore.recovery.InternalRecoveryServiceException;
method public deprecated int getRecoveryStatus(java.lang.String, java.lang.String) throws android.security.keystore.recovery.InternalRecoveryServiceException;
method public int getRecoveryStatus(java.lang.String) throws android.security.keystore.recovery.InternalRecoveryServiceException;
+ method public java.security.Key importKey(java.lang.String, byte[]) throws android.security.keystore.recovery.InternalRecoveryServiceException, android.security.keystore.recovery.LockScreenRequiredException;
method public deprecated void initRecoveryService(java.lang.String, byte[]) throws java.security.cert.CertificateException, android.security.keystore.recovery.InternalRecoveryServiceException;
method public void initRecoveryService(java.lang.String, byte[], byte[]) throws java.security.cert.CertificateException, android.security.keystore.recovery.InternalRecoveryServiceException;
method public void recoverySecretAvailable(android.security.keystore.recovery.KeyChainProtectionParams) throws android.security.keystore.recovery.InternalRecoveryServiceException;
diff --git a/api/test-current.txt b/api/test-current.txt
index 54ddd5de7969..3ddbdba07f3e 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -759,7 +759,7 @@ package android.telephony {
}
public class ServiceState implements android.os.Parcelable {
- method public void setSystemAndNetworkId(int, int);
+ method public void setCdmaSystemAndNetworkId(int, int);
}
}
diff --git a/cmds/statsd/src/anomaly/AnomalyTracker.cpp b/cmds/statsd/src/anomaly/AnomalyTracker.cpp
index 133f33b15405..49de1ac417bc 100644
--- a/cmds/statsd/src/anomaly/AnomalyTracker.cpp
+++ b/cmds/statsd/src/anomaly/AnomalyTracker.cpp
@@ -31,9 +31,8 @@ namespace android {
namespace os {
namespace statsd {
-// TODO: Get rid of bucketNumbers, and return to the original circular array method.
AnomalyTracker::AnomalyTracker(const Alert& alert, const ConfigKey& configKey)
- : mAlert(alert), mConfigKey(configKey), mNumOfPastBuckets(mAlert.num_buckets() - 1) {
+ : mAlert(alert), mConfigKey(configKey), mNumOfPastBuckets(mAlert.num_buckets() - 1) {
VLOG("AnomalyTracker() called");
if (mAlert.num_buckets() <= 0) {
ALOGE("Cannot create AnomalyTracker with %lld buckets", (long long)mAlert.num_buckets());
@@ -60,85 +59,102 @@ void AnomalyTracker::resetStorage() {
size_t AnomalyTracker::index(int64_t bucketNum) const {
if (bucketNum < 0) {
- // To support this use-case, we can easily modify index to wrap around. But currently
- // AnomalyTracker should never need this, so if it happens, it's a bug we should log.
- // TODO: Audit this.
ALOGE("index() was passed a negative bucket number (%lld)!", (long long)bucketNum);
}
return bucketNum % mNumOfPastBuckets;
}
-void AnomalyTracker::flushPastBuckets(const int64_t& latestPastBucketNum) {
- VLOG("addPastBucket() called.");
- if (latestPastBucketNum <= mMostRecentBucketNum - mNumOfPastBuckets) {
- ALOGE("Cannot add a past bucket %lld units in past", (long long)latestPastBucketNum);
+void AnomalyTracker::advanceMostRecentBucketTo(const int64_t& bucketNum) {
+ VLOG("advanceMostRecentBucketTo() called.");
+ if (bucketNum <= mMostRecentBucketNum) {
+ ALOGW("Cannot advance buckets backwards (bucketNum=%lld but mMostRecentBucketNum=%lld)",
+ (long long)bucketNum, (long long)mMostRecentBucketNum);
return;
}
-
- // The past packets are ancient. Empty out old mPastBuckets[i] values and reset
- // mSumOverPastBuckets.
- if (latestPastBucketNum - mMostRecentBucketNum >= mNumOfPastBuckets) {
+ // If in the future (i.e. buckets are ancient), just empty out all past info.
+ if (bucketNum >= mMostRecentBucketNum + mNumOfPastBuckets) {
resetStorage();
- } else {
- for (int64_t i = std::max(0LL, (long long)(mMostRecentBucketNum - mNumOfPastBuckets + 1));
- i <= latestPastBucketNum - mNumOfPastBuckets; i++) {
- const int idx = index(i);
- subtractBucketFromSum(mPastBuckets[idx]);
- mPastBuckets[idx] = nullptr; // release (but not clear) the old bucket.
- }
+ mMostRecentBucketNum = bucketNum;
+ return;
}
- // It is an update operation.
- if (latestPastBucketNum <= mMostRecentBucketNum &&
- latestPastBucketNum > mMostRecentBucketNum - mNumOfPastBuckets) {
- subtractBucketFromSum(mPastBuckets[index(latestPastBucketNum)]);
+ // Clear out space by emptying out old mPastBuckets[i] values and update mSumOverPastBuckets.
+ for (int64_t i = mMostRecentBucketNum + 1; i <= bucketNum; i++) {
+ const int idx = index(i);
+ subtractBucketFromSum(mPastBuckets[idx]);
+ mPastBuckets[idx] = nullptr; // release (but not clear) the old bucket.
}
+ mMostRecentBucketNum = bucketNum;
}
-void AnomalyTracker::addPastBucket(const MetricDimensionKey& key, const int64_t& bucketValue,
+void AnomalyTracker::addPastBucket(const MetricDimensionKey& key,
+ const int64_t& bucketValue,
const int64_t& bucketNum) {
- if (mNumOfPastBuckets == 0) {
+ VLOG("addPastBucket(bucketValue) called.");
+ if (mNumOfPastBuckets == 0 ||
+ bucketNum < 0 || bucketNum <= mMostRecentBucketNum - mNumOfPastBuckets) {
return;
}
- flushPastBuckets(bucketNum);
- auto& bucket = mPastBuckets[index(bucketNum)];
- if (bucket == nullptr) {
- bucket = std::make_shared<DimToValMap>();
+ const int bucketIndex = index(bucketNum);
+ if (bucketNum <= mMostRecentBucketNum && (mPastBuckets[bucketIndex] != nullptr)) {
+ // We need to insert into an already existing past bucket.
+ std::shared_ptr<DimToValMap>& bucket = mPastBuckets[bucketIndex];
+ auto itr = bucket->find(key);
+ if (itr != bucket->end()) {
+ // Old entry already exists; update it.
+ subtractValueFromSum(key, itr->second);
+ itr->second = bucketValue;
+ } else {
+ bucket->insert({key, bucketValue});
+ }
+ mSumOverPastBuckets[key] += bucketValue;
+ } else {
+ // Bucket does not exist yet (in future or was never made), so we must make it.
+ std::shared_ptr<DimToValMap> bucket = std::make_shared<DimToValMap>();
+ bucket->insert({key, bucketValue});
+ addPastBucket(bucket, bucketNum);
}
- bucket->insert({key, bucketValue});
- addBucketToSum(bucket);
- mMostRecentBucketNum = std::max(mMostRecentBucketNum, bucketNum);
}
-void AnomalyTracker::addPastBucket(std::shared_ptr<DimToValMap> bucketValues,
+void AnomalyTracker::addPastBucket(std::shared_ptr<DimToValMap> bucket,
const int64_t& bucketNum) {
- VLOG("addPastBucket() called.");
- if (mNumOfPastBuckets == 0) {
+ VLOG("addPastBucket(bucket) called.");
+ if (mNumOfPastBuckets == 0 ||
+ bucketNum < 0 || bucketNum <= mMostRecentBucketNum - mNumOfPastBuckets) {
return;
}
- flushPastBuckets(bucketNum);
- // Replace the oldest bucket with the new bucket we are adding.
- mPastBuckets[index(bucketNum)] = bucketValues;
- addBucketToSum(bucketValues);
- mMostRecentBucketNum = std::max(mMostRecentBucketNum, bucketNum);
+
+ if (bucketNum <= mMostRecentBucketNum) {
+ // We are updating an old bucket, not adding a new one.
+ subtractBucketFromSum(mPastBuckets[index(bucketNum)]);
+ } else {
+ // Clear space for the new bucket to be at bucketNum.
+ advanceMostRecentBucketTo(bucketNum);
+ }
+ mPastBuckets[index(bucketNum)] = bucket;
+ addBucketToSum(bucket);
}
void AnomalyTracker::subtractBucketFromSum(const shared_ptr<DimToValMap>& bucket) {
if (bucket == nullptr) {
return;
}
- // For each dimension present in the bucket, subtract its value from its corresponding sum.
for (const auto& keyValuePair : *bucket) {
- auto itr = mSumOverPastBuckets.find(keyValuePair.first);
- if (itr == mSumOverPastBuckets.end()) {
- continue;
- }
- itr->second -= keyValuePair.second;
- // TODO: No need to look up the object twice like this. Use a var.
- if (itr->second == 0) {
- mSumOverPastBuckets.erase(itr);
- }
+ subtractValueFromSum(keyValuePair.first, keyValuePair.second);
+ }
+}
+
+
+void AnomalyTracker::subtractValueFromSum(const MetricDimensionKey& key,
+ const int64_t& bucketValue) {
+ auto itr = mSumOverPastBuckets.find(key);
+ if (itr == mSumOverPastBuckets.end()) {
+ return;
+ }
+ itr->second -= bucketValue;
+ if (itr->second == 0) {
+ mSumOverPastBuckets.erase(itr);
}
}
@@ -154,7 +170,8 @@ void AnomalyTracker::addBucketToSum(const shared_ptr<DimToValMap>& bucket) {
int64_t AnomalyTracker::getPastBucketValue(const MetricDimensionKey& key,
const int64_t& bucketNum) const {
- if (mNumOfPastBuckets == 0 || bucketNum < 0) {
+ if (bucketNum < 0 || bucketNum <= mMostRecentBucketNum - mNumOfPastBuckets
+ || bucketNum > mMostRecentBucketNum) {
return 0;
}
@@ -174,11 +191,13 @@ int64_t AnomalyTracker::getSumOverPastBuckets(const MetricDimensionKey& key) con
return 0;
}
-bool AnomalyTracker::detectAnomaly(const int64_t& currentBucketNum, const MetricDimensionKey& key,
+bool AnomalyTracker::detectAnomaly(const int64_t& currentBucketNum,
+ const MetricDimensionKey& key,
const int64_t& currentBucketValue) {
+
+ // currentBucketNum should be the next bucket after pastBuckets. If not, advance so that it is.
if (currentBucketNum > mMostRecentBucketNum + 1) {
- // TODO: This creates a needless 0 entry in mSumOverPastBuckets. Fix this.
- addPastBucket(key, 0, currentBucketNum - 1);
+ advanceMostRecentBucketTo(currentBucketNum - 1);
}
return mAlert.has_trigger_if_sum_gt() &&
getSumOverPastBuckets(key) + currentBucketValue > mAlert.trigger_if_sum_gt();
@@ -190,19 +209,17 @@ void AnomalyTracker::declareAnomaly(const uint64_t& timestampNs, const MetricDim
VLOG("Skipping anomaly declaration since within refractory period");
return;
}
- mRefractoryPeriodEndsSec[key] = (timestampNs / NS_PER_SEC) + mAlert.refractory_period_secs();
-
- // TODO: If we had access to the bucket_size_millis, consider calling resetStorage()
- // if (mAlert.refractory_period_secs() > mNumOfPastBuckets * bucketSizeNs) { resetStorage(); }
+ if (mAlert.has_refractory_period_secs()) {
+ mRefractoryPeriodEndsSec[key] = ((timestampNs + NS_PER_SEC - 1) / NS_PER_SEC) // round up
+ + mAlert.refractory_period_secs();
+ // TODO: If we had access to the bucket_size_millis, consider calling resetStorage()
+ // if (mAlert.refractory_period_secs() > mNumOfPastBuckets * bucketSizeNs) {resetStorage();}
+ }
if (!mSubscriptions.empty()) {
- if (mAlert.has_id()) {
- ALOGI("An anomaly (%lld) %s has occurred! Informing subscribers.", mAlert.id(),
- key.toString().c_str());
- informSubscribers(key);
- } else {
- ALOGI("An anomaly (with no id) has occurred! Not informing any subscribers.");
- }
+ ALOGI("An anomaly (%lld) %s has occurred! Informing subscribers.",
+ mAlert.id(), key.toString().c_str());
+ informSubscribers(key);
} else {
ALOGI("An anomaly has occurred! (But no subscriber for that alert.)");
}
@@ -227,7 +244,7 @@ bool AnomalyTracker::isInRefractoryPeriod(const uint64_t& timestampNs,
const MetricDimensionKey& key) {
const auto& it = mRefractoryPeriodEndsSec.find(key);
if (it != mRefractoryPeriodEndsSec.end()) {
- if ((timestampNs / NS_PER_SEC) <= it->second) {
+ if (timestampNs < it->second * NS_PER_SEC) {
return true;
} else {
mRefractoryPeriodEndsSec.erase(key);
diff --git a/cmds/statsd/src/anomaly/AnomalyTracker.h b/cmds/statsd/src/anomaly/AnomalyTracker.h
index d27dee843b22..d3da7dcf241b 100644
--- a/cmds/statsd/src/anomaly/AnomalyTracker.h
+++ b/cmds/statsd/src/anomaly/AnomalyTracker.h
@@ -47,20 +47,32 @@ public:
mSubscriptions.push_back(subscription);
}
- // Adds a bucket.
- // Bucket index starts from 0.
- void addPastBucket(std::shared_ptr<DimToValMap> bucketValues, const int64_t& bucketNum);
+ // Adds a bucket for the given bucketNum (index starting at 0).
+ // If a bucket for bucketNum already exists, it will be replaced.
+ // Also, advances to bucketNum (if not in the past), effectively filling any intervening
+ // buckets with 0s.
+ void addPastBucket(std::shared_ptr<DimToValMap> bucket, const int64_t& bucketNum);
+
+ // Inserts (or replaces) the bucket entry for the given bucketNum at the given key to be the
+ // given bucketValue. If the bucket does not exist, it will be created.
+ // Also, advances to bucketNum (if not in the past), effectively filling any intervening
+ // buckets with 0s.
void addPastBucket(const MetricDimensionKey& key, const int64_t& bucketValue,
const int64_t& bucketNum);
- // Returns true if detected anomaly for the existing buckets on one or more dimension keys.
+ // Returns true if, based on past buckets plus the new currentBucketValue (which generally
+ // represents the partially-filled current bucket), an anomaly has happened.
+ // Also advances to currBucketNum-1.
bool detectAnomaly(const int64_t& currBucketNum, const MetricDimensionKey& key,
const int64_t& currentBucketValue);
// Informs incidentd about the detected alert.
void declareAnomaly(const uint64_t& timestampNs, const MetricDimensionKey& key);
- // Detects the alert and informs the incidentd when applicable.
+ // Detects if, based on past buckets plus the new currentBucketValue (which generally
+ // represents the partially-filled current bucket), an anomaly has happened, and if so,
+ // declares an anomaly and informs relevant subscribers.
+ // Also advances to currBucketNum-1.
void detectAndDeclareAnomaly(const uint64_t& timestampNs, const int64_t& currBucketNum,
const MetricDimensionKey& key, const int64_t& currentBucketValue);
@@ -69,24 +81,26 @@ public:
return; // Base AnomalyTracker class has no need for the AlarmMonitor.
}
- // Helper function to return the sum value of past buckets at given dimension.
+ // Returns the sum of all past bucket values for the given dimension key.
int64_t getSumOverPastBuckets(const MetricDimensionKey& key) const;
- // Helper function to return the value for a past bucket.
+ // Returns the value for a past bucket, or 0 if that bucket doesn't exist.
int64_t getPastBucketValue(const MetricDimensionKey& key, const int64_t& bucketNum) const;
- // Returns the anomaly threshold.
+ // Returns the anomaly threshold set in the configuration.
inline int64_t getAnomalyThreshold() const {
return mAlert.trigger_if_sum_gt();
}
- // Returns the refractory period timestamp (in seconds) for the given key.
+ // Returns the refractory period ending timestamp (in seconds) for the given key.
+ // Before this moment, any detected anomaly will be ignored.
// If there is no stored refractory period ending timestamp, returns 0.
uint32_t getRefractoryPeriodEndsSec(const MetricDimensionKey& key) const {
const auto& it = mRefractoryPeriodEndsSec.find(key);
return it != mRefractoryPeriodEndsSec.end() ? it->second : 0;
}
+ // Returns the (constant) number of past buckets this anomaly tracker can store.
inline int getNumOfPastBuckets() const {
return mNumOfPastBuckets;
}
@@ -112,22 +126,27 @@ protected:
// for the anomaly detection (since the current bucket is not in the past).
const int mNumOfPastBuckets;
- // The existing bucket list.
+ // Values for each of the past mNumOfPastBuckets buckets. Always of size mNumOfPastBuckets.
+ // mPastBuckets[i] can be null, meaning that no data is present in that bucket.
std::vector<shared_ptr<DimToValMap>> mPastBuckets;
- // Sum over all existing buckets cached in mPastBuckets.
+ // Cached sum over all existing buckets in mPastBuckets.
+ // Its buckets never contain entries of 0.
DimToValMap mSumOverPastBuckets;
// The bucket number of the last added bucket.
int64_t mMostRecentBucketNum = -1;
// Map from each dimension to the timestamp that its refractory period (if this anomaly was
- // declared for that dimension) ends, in seconds. Only anomalies that occur after this period
- // ends will be declared.
+ // declared for that dimension) ends, in seconds. From this moment and onwards, anomalies
+ // can be declared again.
// Entries may be, but are not guaranteed to be, removed after the period is finished.
unordered_map<MetricDimensionKey, uint32_t> mRefractoryPeriodEndsSec;
- void flushPastBuckets(const int64_t& currBucketNum);
+ // Advances mMostRecentBucketNum to bucketNum, deleting any data that is now too old.
+ // Specifically, since it is now too old, removes the data for
+ // [mMostRecentBucketNum - mNumOfPastBuckets + 1, bucketNum - mNumOfPastBuckets].
+ void advanceMostRecentBucketTo(const int64_t& bucketNum);
// Add the information in the given bucket to mSumOverPastBuckets.
void addBucketToSum(const shared_ptr<DimToValMap>& bucket);
@@ -136,15 +155,21 @@ protected:
// and remove any items with value 0.
void subtractBucketFromSum(const shared_ptr<DimToValMap>& bucket);
+ // From mSumOverPastBuckets[key], subtracts bucketValue, removing it if it is now 0.
+ void subtractValueFromSum(const MetricDimensionKey& key, const int64_t& bucketValue);
+
+ // Returns true if in the refractory period, else false.
+ // If there is a stored refractory period but it ended prior to timestampNs, it is removed.
bool isInRefractoryPeriod(const uint64_t& timestampNs, const MetricDimensionKey& key);
// Calculates the corresponding bucket index within the circular array.
+ // Requires bucketNum >= 0.
size_t index(int64_t bucketNum) const;
// Resets all bucket data. For use when all the data gets stale.
virtual void resetStorage();
- // Informs the subscribers that an anomaly has occurred.
+ // Informs the subscribers (incidentd, perfetto, broadcasts, etc) that an anomaly has occurred.
void informSubscribers(const MetricDimensionKey& key);
FRIEND_TEST(AnomalyTrackerTest, TestConsecutiveBuckets);
diff --git a/cmds/statsd/src/anomaly/DurationAnomalyTracker.cpp b/cmds/statsd/src/anomaly/DurationAnomalyTracker.cpp
index 31d50be7ec26..d85157c8159a 100644
--- a/cmds/statsd/src/anomaly/DurationAnomalyTracker.cpp
+++ b/cmds/statsd/src/anomaly/DurationAnomalyTracker.cpp
@@ -26,30 +26,13 @@ namespace statsd {
DurationAnomalyTracker::DurationAnomalyTracker(const Alert& alert, const ConfigKey& configKey,
const sp<AlarmMonitor>& alarmMonitor)
- : AnomalyTracker(alert, configKey), mAlarmMonitor(alarmMonitor) {
+ : AnomalyTracker(alert, configKey), mAlarmMonitor(alarmMonitor) {
+ VLOG("DurationAnomalyTracker() called");
}
DurationAnomalyTracker::~DurationAnomalyTracker() {
- stopAllAlarms();
-}
-
-void DurationAnomalyTracker::resetStorage() {
- AnomalyTracker::resetStorage();
- if (!mAlarms.empty()) VLOG("AnomalyTracker.resetStorage() called but mAlarms is NOT empty!");
-}
-
-void DurationAnomalyTracker::declareAnomalyIfAlarmExpired(const MetricDimensionKey& dimensionKey,
- const uint64_t& timestampNs) {
- auto itr = mAlarms.find(dimensionKey);
- if (itr == mAlarms.end()) {
- return;
- }
-
- if (itr->second != nullptr &&
- static_cast<uint32_t>(timestampNs / NS_PER_SEC) >= itr->second->timestampSec) {
- declareAnomaly(timestampNs, dimensionKey);
- stopAlarm(dimensionKey);
- }
+ VLOG("~DurationAnomalyTracker() called");
+ cancelAllAlarms();
}
void DurationAnomalyTracker::startAlarm(const MetricDimensionKey& dimensionKey,
@@ -57,34 +40,47 @@ void DurationAnomalyTracker::startAlarm(const MetricDimensionKey& dimensionKey,
// Alarms are stored in secs. Must round up, since if it fires early, it is ignored completely.
uint32_t timestampSec = static_cast<uint32_t>((timestampNs -1)/ NS_PER_SEC) + 1; // round up
if (isInRefractoryPeriod(timestampNs, dimensionKey)) {
+ // TODO: Bug! By the refractory's end, the data might be erased and the alarm inapplicable.
VLOG("Setting a delayed anomaly alarm lest it fall in the refractory period");
timestampSec = getRefractoryPeriodEndsSec(dimensionKey) + 1;
}
+
+ auto itr = mAlarms.find(dimensionKey);
+ if (itr != mAlarms.end() && mAlarmMonitor != nullptr) {
+ mAlarmMonitor->remove(itr->second);
+ }
+
sp<const InternalAlarm> alarm = new InternalAlarm{timestampSec};
- mAlarms.insert({dimensionKey, alarm});
+ mAlarms[dimensionKey] = alarm;
if (mAlarmMonitor != nullptr) {
mAlarmMonitor->add(alarm);
}
}
-void DurationAnomalyTracker::stopAlarm(const MetricDimensionKey& dimensionKey) {
- auto itr = mAlarms.find(dimensionKey);
- if (itr != mAlarms.end()) {
- mAlarms.erase(dimensionKey);
- if (mAlarmMonitor != nullptr) {
- mAlarmMonitor->remove(itr->second);
- }
+void DurationAnomalyTracker::stopAlarm(const MetricDimensionKey& dimensionKey,
+ const uint64_t& timestampNs) {
+ const auto itr = mAlarms.find(dimensionKey);
+ if (itr == mAlarms.end()) {
+ return;
}
-}
-void DurationAnomalyTracker::stopAllAlarms() {
- std::set<MetricDimensionKey> keys;
- for (auto itr = mAlarms.begin(); itr != mAlarms.end(); ++itr) {
- keys.insert(itr->first);
+ // If the alarm is set in the past but hasn't fired yet (due to lag), catch it now.
+ if (itr->second != nullptr && timestampNs >= NS_PER_SEC * itr->second->timestampSec) {
+ declareAnomaly(timestampNs, dimensionKey);
}
- for (auto key : keys) {
- stopAlarm(key);
+ mAlarms.erase(dimensionKey);
+ if (mAlarmMonitor != nullptr) {
+ mAlarmMonitor->remove(itr->second);
+ }
+}
+
+void DurationAnomalyTracker::cancelAllAlarms() {
+ if (mAlarmMonitor != nullptr) {
+ for (const auto& itr : mAlarms) {
+ mAlarmMonitor->remove(itr.second);
+ }
}
+ mAlarms.clear();
}
void DurationAnomalyTracker::informAlarmsFired(const uint64_t& timestampNs,
diff --git a/cmds/statsd/src/anomaly/DurationAnomalyTracker.h b/cmds/statsd/src/anomaly/DurationAnomalyTracker.h
index 51186df3e93d..92bb2bc1515b 100644
--- a/cmds/statsd/src/anomaly/DurationAnomalyTracker.h
+++ b/cmds/statsd/src/anomaly/DurationAnomalyTracker.h
@@ -32,21 +32,20 @@ public:
virtual ~DurationAnomalyTracker();
- // Starts the alarm at the given timestamp.
+ // Sets an alarm for the given timestamp.
+ // Replaces previous alarm if one already exists.
void startAlarm(const MetricDimensionKey& dimensionKey, const uint64_t& eventTime);
// Stops the alarm.
- void stopAlarm(const MetricDimensionKey& dimensionKey);
+ // If it should have already fired, but hasn't yet (e.g. because the AlarmManager is delayed),
+ // declare the anomaly now.
+ void stopAlarm(const MetricDimensionKey& dimensionKey, const uint64_t& timestampNs);
- // Stop all the alarms owned by this tracker.
- void stopAllAlarms();
-
- // Declares the anomaly when the alarm expired given the current timestamp.
- void declareAnomalyIfAlarmExpired(const MetricDimensionKey& dimensionKey,
- const uint64_t& timestampNs);
+ // Stop all the alarms owned by this tracker. Does not declare any anomalies.
+ void cancelAllAlarms();
// Declares an anomaly for each alarm in firedAlarms that belongs to this DurationAnomalyTracker
- // and removes it from firedAlarms.
+ // and removes it from firedAlarms. The AlarmMonitor is not informed.
// Note that this will generally be called from a different thread from the other functions;
// the caller is responsible for thread safety.
void informAlarmsFired(const uint64_t& timestampNs,
@@ -60,9 +59,6 @@ protected:
// Anomaly alarm monitor.
sp<AlarmMonitor> mAlarmMonitor;
- // Resets all bucket data. For use when all the data gets stale.
- void resetStorage() override;
-
FRIEND_TEST(OringDurationTrackerTest, TestPredictAnomalyTimestamp);
FRIEND_TEST(OringDurationTrackerTest, TestAnomalyDetectionExpiredAlarm);
FRIEND_TEST(OringDurationTrackerTest, TestAnomalyDetectionFiredAlarm);
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index 298f49457f38..31ca13a1585c 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -115,7 +115,6 @@ message Atom {
HardwareFailed hardware_failed = 72;
PhysicalDropDetected physical_drop_detected = 73;
ChargeCyclesReported charge_cycles_reported = 74;
- // TODO: Reorder the numbering so that the most frequent occur events occur in the first 15.
}
// Pulled events will start at field 10000.
diff --git a/cmds/statsd/src/metrics/duration_helper/DurationTracker.h b/cmds/statsd/src/metrics/duration_helper/DurationTracker.h
index bfb1ec7e06d6..991a76a0d34a 100644
--- a/cmds/statsd/src/metrics/duration_helper/DurationTracker.h
+++ b/cmds/statsd/src/metrics/duration_helper/DurationTracker.h
@@ -128,11 +128,11 @@ protected:
}
}
- // Stops the anomaly alarm.
- void stopAnomalyAlarm() {
+ // Stops the anomaly alarm. If it should have already fired, declare the anomaly now.
+ void stopAnomalyAlarm(const uint64_t timestamp) {
for (auto& anomalyTracker : mAnomalyTrackers) {
if (anomalyTracker != nullptr) {
- anomalyTracker->stopAlarm(mEventKey);
+ anomalyTracker->stopAlarm(mEventKey, timestamp);
}
}
}
@@ -155,14 +155,6 @@ protected:
}
}
- void declareAnomalyIfAlarmExpired(const uint64_t& timestamp) {
- for (auto& anomalyTracker : mAnomalyTrackers) {
- if (anomalyTracker != nullptr) {
- anomalyTracker->declareAnomalyIfAlarmExpired(mEventKey, timestamp);
- }
- }
- }
-
// Convenience to compute the current bucket's end time, which is always aligned with the
// start time of the metric.
uint64_t getCurrentBucketEndTimeNs() {
diff --git a/cmds/statsd/src/metrics/duration_helper/MaxDurationTracker.cpp b/cmds/statsd/src/metrics/duration_helper/MaxDurationTracker.cpp
index 058940d11b46..335ec4c7cbd5 100644
--- a/cmds/statsd/src/metrics/duration_helper/MaxDurationTracker.cpp
+++ b/cmds/statsd/src/metrics/duration_helper/MaxDurationTracker.cpp
@@ -130,7 +130,7 @@ void MaxDurationTracker::noteStop(const HashableDimensionKey& key, const uint64_
case DurationState::kStarted: {
duration.startCount--;
if (forceStop || !mNested || duration.startCount <= 0) {
- stopAnomalyAlarm();
+ stopAnomalyAlarm(eventTime);
duration.state = DurationState::kStopped;
int64_t durationTime = eventTime - duration.lastStartTime;
VLOG("Max, key %s, Stop %lld %lld %lld", key.toString().c_str(),
@@ -284,7 +284,7 @@ void MaxDurationTracker::noteConditionChanged(const HashableDimensionKey& key, b
// If condition becomes false, kStarted -> kPaused. Record the current duration and
// stop anomaly alarm.
if (!conditionMet) {
- stopAnomalyAlarm();
+ stopAnomalyAlarm(timestamp);
it->second.state = DurationState::kPaused;
it->second.lastDuration += (timestamp - it->second.lastStartTime);
if (anyStarted()) {
diff --git a/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.cpp b/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.cpp
index c8a5016c1db8..b418a85a045c 100644
--- a/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.cpp
+++ b/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.cpp
@@ -92,7 +92,6 @@ void OringDurationTracker::noteStart(const HashableDimensionKey& key, bool condi
void OringDurationTracker::noteStop(const HashableDimensionKey& key, const uint64_t timestamp,
const bool stopAll) {
- declareAnomalyIfAlarmExpired(timestamp);
VLOG("Oring: %s stop", key.toString().c_str());
auto it = mStarted.find(key);
if (it != mStarted.end()) {
@@ -118,12 +117,11 @@ void OringDurationTracker::noteStop(const HashableDimensionKey& key, const uint6
}
}
if (mStarted.empty()) {
- stopAnomalyAlarm();
+ stopAnomalyAlarm(timestamp);
}
}
void OringDurationTracker::noteStopAll(const uint64_t timestamp) {
- declareAnomalyIfAlarmExpired(timestamp);
if (!mStarted.empty()) {
mDuration += (timestamp - mLastStartTime);
VLOG("Oring Stop all: record duration %lld %lld ", (long long)timestamp - mLastStartTime,
@@ -131,7 +129,7 @@ void OringDurationTracker::noteStopAll(const uint64_t timestamp) {
detectAndDeclareAnomaly(timestamp, mCurrentBucketNum, mDuration + mDurationFullBucket);
}
- stopAnomalyAlarm();
+ stopAnomalyAlarm(timestamp);
mStarted.clear();
mPaused.clear();
mConditionKeyMap.clear();
@@ -213,7 +211,6 @@ bool OringDurationTracker::flushIfNeeded(
}
void OringDurationTracker::onSlicedConditionMayChange(const uint64_t timestamp) {
- declareAnomalyIfAlarmExpired(timestamp);
vector<pair<HashableDimensionKey, int>> startedToPaused;
vector<pair<HashableDimensionKey, int>> pausedToStarted;
if (!mStarted.empty()) {
@@ -291,12 +288,11 @@ void OringDurationTracker::onSlicedConditionMayChange(const uint64_t timestamp)
mPaused.insert(startedToPaused.begin(), startedToPaused.end());
if (mStarted.empty()) {
- stopAnomalyAlarm();
+ stopAnomalyAlarm(timestamp);
}
}
void OringDurationTracker::onConditionChanged(bool condition, const uint64_t timestamp) {
- declareAnomalyIfAlarmExpired(timestamp);
if (condition) {
if (!mPaused.empty()) {
VLOG("Condition true, all started");
@@ -319,7 +315,7 @@ void OringDurationTracker::onConditionChanged(bool condition, const uint64_t tim
}
}
if (mStarted.empty()) {
- stopAnomalyAlarm();
+ stopAnomalyAlarm(timestamp);
}
}
@@ -328,12 +324,16 @@ int64_t OringDurationTracker::predictAnomalyTimestampNs(
// TODO: Unit-test this and see if it can be done more efficiently (e.g. use int32).
// All variables below represent durations (not timestamps).
+ const int64_t thresholdNs = anomalyTracker.getAnomalyThreshold();
+
// The time until the current bucket ends. This is how much more 'space' it can hold.
const int64_t currRemainingBucketSizeNs =
mBucketSizeNs - (eventTimestampNs - mCurrentBucketStartTimeNs);
- // TODO: This should never be < 0. Document/guard against possible failures if it is.
-
- const int64_t thresholdNs = anomalyTracker.getAnomalyThreshold();
+ if (currRemainingBucketSizeNs < 0) {
+ ALOGE("OringDurationTracker currRemainingBucketSizeNs < 0");
+ // This should never happen. Return the safest thing possible given that data is corrupt.
+ return eventTimestampNs + thresholdNs;
+ }
// As we move into the future, old buckets get overwritten (so their old data is erased).
diff --git a/cmds/statsd/src/metrics/metrics_manager_util.cpp b/cmds/statsd/src/metrics/metrics_manager_util.cpp
index b5afef2502f8..901f5001d77f 100644
--- a/cmds/statsd/src/metrics/metrics_manager_util.cpp
+++ b/cmds/statsd/src/metrics/metrics_manager_util.cpp
@@ -562,6 +562,10 @@ bool initAlerts(const StatsdConfig& config,
(long long)alert.metric_id());
return false;
}
+ if (!alert.has_trigger_if_sum_gt()) {
+ ALOGW("invalid alert: missing threshold");
+ return false;
+ }
if (alert.trigger_if_sum_gt() < 0 || alert.num_buckets() <= 0) {
ALOGW("invalid alert: threshold=%f num_buckets= %d",
alert.trigger_if_sum_gt(), alert.num_buckets());
diff --git a/cmds/statsd/tests/anomaly/AnomalyTracker_test.cpp b/cmds/statsd/tests/anomaly/AnomalyTracker_test.cpp
index b4a7bb706029..218d52a5c046 100644
--- a/cmds/statsd/tests/anomaly/AnomalyTracker_test.cpp
+++ b/cmds/statsd/tests/anomaly/AnomalyTracker_test.cpp
@@ -16,6 +16,7 @@
#include "../metrics/metrics_test_helper.h"
#include <gtest/gtest.h>
+#include <math.h>
#include <stdio.h>
#include <vector>
@@ -104,12 +105,12 @@ void checkRefractoryTimes(AnomalyTracker& tracker,
for (const auto& kv : timestamps) {
if (kv.second < 0) {
// Make sure that, if there is a refractory period, it is already past.
- EXPECT_LT(tracker.getRefractoryPeriodEndsSec(kv.first),
- currTimestampNs / NS_PER_SEC + 1)
+ EXPECT_LT(tracker.getRefractoryPeriodEndsSec(kv.first) * NS_PER_SEC,
+ (uint64_t)currTimestampNs)
<< "Failure was at currTimestampNs " << currTimestampNs;
} else {
EXPECT_EQ(tracker.getRefractoryPeriodEndsSec(kv.first),
- kv.second / NS_PER_SEC + refractoryPeriodSec)
+ std::ceil(1.0 * kv.second / NS_PER_SEC) + refractoryPeriodSec)
<< "Failure was at currTimestampNs " << currTimestampNs;
}
}
diff --git a/cmds/statsd/tests/metrics/CountMetricProducer_test.cpp b/cmds/statsd/tests/metrics/CountMetricProducer_test.cpp
index a07683e5b045..fff11552df40 100644
--- a/cmds/statsd/tests/metrics/CountMetricProducer_test.cpp
+++ b/cmds/statsd/tests/metrics/CountMetricProducer_test.cpp
@@ -19,6 +19,7 @@
#include <gmock/gmock.h>
#include <gtest/gtest.h>
+#include <math.h>
#include <stdio.h>
#include <vector>
@@ -379,13 +380,13 @@ TEST(CountMetricProducerTest, TestAnomalyDetectionUnSliced) {
EXPECT_EQ(3L, countProducer.mCurrentSlicedCounter->begin()->second);
// Anomaly at event 6 is within refractory period. The alarm is at event 5 timestamp not event 6
EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
- event5.GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec);
+ std::ceil(1.0 * event5.GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
countProducer.onMatchedLogEvent(1 /*log matcher index*/, event7);
EXPECT_EQ(1UL, countProducer.mCurrentSlicedCounter->size());
EXPECT_EQ(4L, countProducer.mCurrentSlicedCounter->begin()->second);
EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
- event7.GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec);
+ std::ceil(1.0 * event7.GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
}
} // namespace statsd
diff --git a/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp b/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp
index c0cc0b6ad218..5ef84e6ac6ce 100644
--- a/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp
+++ b/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp
@@ -20,6 +20,7 @@
#include <gmock/gmock.h>
#include <gtest/gtest.h>
+#include <math.h>
#include <stdio.h>
#include <vector>
@@ -392,7 +393,7 @@ TEST(GaugeMetricProducerTest, TestAnomalyDetection) {
.mFields->begin()
->mValue.int_value);
EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
- event2->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec);
+ std::ceil(1.0 * event2->GetElapsedTimestampNs() / NS_PER_SEC) + refPeriodSec);
std::shared_ptr<LogEvent> event3 =
std::make_shared<LogEvent>(tagId, bucketStartTimeNs + 2 * bucketSizeNs + 10);
@@ -407,7 +408,7 @@ TEST(GaugeMetricProducerTest, TestAnomalyDetection) {
.mFields->begin()
->mValue.int_value);
EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
- event2->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec);
+ std::ceil(1.0 * event2->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
// The event4 does not have the gauge field. Thus the current bucket value is 0.
std::shared_ptr<LogEvent> event4 =
diff --git a/cmds/statsd/tests/metrics/OringDurationTracker_test.cpp b/cmds/statsd/tests/metrics/OringDurationTracker_test.cpp
index 54abcb28a449..9b27f3cde3bd 100644
--- a/cmds/statsd/tests/metrics/OringDurationTracker_test.cpp
+++ b/cmds/statsd/tests/metrics/OringDurationTracker_test.cpp
@@ -19,6 +19,7 @@
#include <gmock/gmock.h>
#include <gtest/gtest.h>
+#include <math.h>
#include <stdio.h>
#include <set>
#include <unordered_map>
@@ -416,7 +417,7 @@ TEST(OringDurationTrackerTest, TestAnomalyDetectionExpiredAlarm) {
tracker.noteStop(kEventKey1, eventStartTimeNs + 2 * bucketSizeNs + 25, false);
EXPECT_EQ(anomalyTracker->getSumOverPastBuckets(eventKey), (long long)(bucketSizeNs));
EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(eventKey),
- (eventStartTimeNs + 2 * bucketSizeNs + 25) / NS_PER_SEC + refPeriodSec);
+ std::ceil((eventStartTimeNs + 2 * bucketSizeNs + 25.0) / NS_PER_SEC + refPeriodSec));
}
TEST(OringDurationTrackerTest, TestAnomalyDetectionFiredAlarm) {
diff --git a/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp b/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
index a0addcccb7a1..a8eb27037ebf 100644
--- a/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
+++ b/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
@@ -19,6 +19,7 @@
#include <gmock/gmock.h>
#include <gtest/gtest.h>
+#include <math.h>
#include <stdio.h>
#include <vector>
@@ -415,16 +416,16 @@ TEST(ValueMetricProducerTest, TestAnomalyDetection) {
valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event4);
// Anomaly at event 4 since Value sum == 131 > 130!
EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
- event4->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec);
+ std::ceil(1.0 * event4->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event5);
// Event 5 is within 3 sec refractory period. Thus last alarm timestamp is still event4.
EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
- event4->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec);
+ std::ceil(1.0 * event4->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event6);
// Anomaly at event 6 since Value sum == 160 > 130 and after refractory period.
EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
- event6->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec);
+ std::ceil(1.0 * event6->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
}
} // namespace statsd
diff --git a/config/hiddenapi-light-greylist.txt b/config/hiddenapi-light-greylist.txt
index 99d871e0f6f5..b1f1f1c26c94 100644
--- a/config/hiddenapi-light-greylist.txt
+++ b/config/hiddenapi-light-greylist.txt
@@ -117,8 +117,8 @@ Landroid/app/admin/DevicePolicyManager;->getTrustAgentConfiguration(Landroid/con
Landroid/app/admin/DevicePolicyManager;->packageHasActiveAdmins(Ljava/lang/String;I)Z
Landroid/app/admin/DevicePolicyManager;->setActiveAdmin(Landroid/content/ComponentName;ZI)V
Landroid/app/admin/DevicePolicyManager;->setActiveAdmin(Landroid/content/ComponentName;Z)V
-Landroid/app/admin/DevicePolicyManager;->throwIfParentInstance(Ljava/lang/String;)V
Landroid/app/admin/DevicePolicyManager;->setDefaultSmsApplication(Landroid/content/ComponentName;Ljava/lang/String;)V
+Landroid/app/admin/DevicePolicyManager;->throwIfParentInstance(Ljava/lang/String;)V
Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_packageHasActiveAdmins:I
Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_removeActiveAdmin:I
Landroid/app/admin/SecurityLog$SecurityEvent;-><init>([B)V
@@ -148,6 +148,7 @@ Landroid/app/Application;->mComponentCallbacks:Ljava/util/ArrayList;
Landroid/app/Application;->mLoadedApk:Landroid/app/LoadedApk;
Landroid/app/ApplicationPackageManager;->configurationChanged()V
Landroid/app/ApplicationPackageManager;->deletePackage(Ljava/lang/String;Landroid/content/pm/IPackageDeleteObserver;I)V
+Landroid/app/ApplicationPackageManager;->getPackageCurrentVolume(Landroid/content/pm/ApplicationInfo;)Landroid/os/storage/VolumeInfo;
Landroid/app/ApplicationPackageManager;->getPackageSizeInfoAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageStatsObserver;)V
Landroid/app/ApplicationPackageManager;-><init>(Landroid/app/ContextImpl;Landroid/content/pm/IPackageManager;)V
Landroid/app/ApplicationPackageManager;->mPM:Landroid/content/pm/IPackageManager;
@@ -175,6 +176,7 @@ Landroid/app/backup/BackupHelperDispatcher$Header;->chunkSize:I
Landroid/app/backup/BackupHelperDispatcher$Header;->keyPrefix:Ljava/lang/String;
Landroid/app/backup/FullBackup;->backupToTar(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/backup/FullBackupDataOutput;)I
Landroid/app/backup/FullBackupDataOutput;->addSize(J)V
+Landroid/app/backup/FullBackupDataOutput;-><init>(Landroid/os/ParcelFileDescriptor;)V
Landroid/app/backup/FullBackupDataOutput;->mData:Landroid/app/backup/BackupDataOutput;
Landroid/app/ContentProviderHolder;->info:Landroid/content/pm/ProviderInfo;
Landroid/app/ContentProviderHolder;-><init>(Landroid/content/pm/ProviderInfo;)V
@@ -281,6 +283,7 @@ Landroid/app/Notification;->mGroupKey:Ljava/lang/String;
Landroid/app/Notification;->mLargeIcon:Landroid/graphics/drawable/Icon;
Landroid/app/Notification;->mSmallIcon:Landroid/graphics/drawable/Icon;
Landroid/app/Notification;->setLatestEventInfo(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V
+Landroid/app/Notification;->setSmallIcon(Landroid/graphics/drawable/Icon;)V
Landroid/app/PendingIntent;->getActivityAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/PendingIntent;
Landroid/app/PendingIntent;->getIntent()Landroid/content/Intent;
Landroid/app/PendingIntent;->isActivity()Z
@@ -327,7 +330,9 @@ Landroid/appwidget/AppWidgetManager;->bindAppWidgetId(ILandroid/content/Componen
Landroid/appwidget/AppWidgetManager;->mService:Lcom/android/internal/appwidget/IAppWidgetService;
Landroid/bluetooth/BluetoothA2dp;->connect(Landroid/bluetooth/BluetoothDevice;)Z
Landroid/bluetooth/BluetoothAdapter;->disable(Z)Z
+Landroid/bluetooth/BluetoothAdapter;->factoryReset()Z
Landroid/bluetooth/BluetoothAdapter;->getDiscoverableTimeout()I
+Landroid/bluetooth/BluetoothAdapter;->getLeState()I
Landroid/bluetooth/BluetoothAdapter;->mService:Landroid/bluetooth/IBluetooth;
Landroid/bluetooth/BluetoothAdapter;->setScanMode(II)Z
Landroid/bluetooth/BluetoothAdapter;->setScanMode(I)Z
@@ -337,8 +342,11 @@ Landroid/bluetooth/BluetoothGattCharacteristic;->mInstance:I
Landroid/bluetooth/BluetoothGattCharacteristic;->mService:Landroid/bluetooth/BluetoothGattService;
Landroid/bluetooth/BluetoothGattDescriptor;->mCharacteristic:Landroid/bluetooth/BluetoothGattCharacteristic;
Landroid/bluetooth/BluetoothGattDescriptor;->mInstance:I
+Landroid/bluetooth/BluetoothGatt;->mAuthRetryState:I
Landroid/bluetooth/BluetoothGatt;->refresh()Z
Landroid/bluetooth/BluetoothHeadset;->close()V
+Landroid/bluetooth/BluetoothPan;->isTetheringOn()Z
+Landroid/bluetooth/BluetoothPan;->setBluetoothTethering(Z)V
Landroid/bluetooth/BluetoothUuid;->RESERVED_UUIDS:[Landroid/os/ParcelUuid;
Landroid/bluetooth/IBluetooth;->getAddress()Ljava/lang/String;
Landroid/bluetooth/IBluetoothManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -610,6 +618,12 @@ Landroid/graphics/drawable/GradientDrawable$GradientState;->mThickness:I
Landroid/graphics/drawable/GradientDrawable$GradientState;->mThicknessRatio:F
Landroid/graphics/drawable/GradientDrawable$GradientState;->mWidth:I
Landroid/graphics/drawable/GradientDrawable;->mPadding:Landroid/graphics/Rect;
+Landroid/graphics/drawable/Icon;->getBitmap()Landroid/graphics/Bitmap;
+Landroid/graphics/drawable/Icon;->getDataBytes()[B
+Landroid/graphics/drawable/Icon;->getDataLength()I
+Landroid/graphics/drawable/Icon;->getDataOffset()I
+Landroid/graphics/drawable/Icon;->getResources()Landroid/content/res/Resources;
+Landroid/graphics/drawable/Icon;->hasTint()Z
Landroid/graphics/drawable/Icon;->mType:I
Landroid/graphics/drawable/InsetDrawable;->mState:Landroid/graphics/drawable/InsetDrawable$InsetState;
Landroid/graphics/drawable/NinePatchDrawable;->mNinePatchState:Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;
@@ -817,6 +831,7 @@ Landroid/media/AudioManager;->getOutputLatency(I)I
Landroid/media/AudioManager;->getService()Landroid/media/IAudioService;
Landroid/media/AudioManager;->mAudioFocusIdListenerMap:Ljava/util/concurrent/ConcurrentHashMap;
Landroid/media/AudioManager;->setMasterMute(ZI)V
+Landroid/media/AudioManager;->startBluetoothScoVirtualCall()V
Landroid/media/AudioManager;->STREAM_BLUETOOTH_SCO:I
Landroid/media/AudioManager;->STREAM_SYSTEM_ENFORCED:I
Landroid/media/AudioManager;->STREAM_TTS:I
@@ -860,6 +875,7 @@ Landroid/media/AudioSystem;->dynamicPolicyCallbackFromNative(ILjava/lang/String;
Landroid/media/AudioSystem;->errorCallbackFromNative(I)V
Landroid/media/AudioSystem;->getPrimaryOutputFrameCount()I
Landroid/media/AudioSystem;->getPrimaryOutputSamplingRate()I
+Landroid/media/AudioSystem;->isStreamActive(II)Z
Landroid/media/AudioSystem;->recordingCallbackFromNative(IIII[I)V
Landroid/media/AudioSystem;->setDeviceConnectionState(IILjava/lang/String;Ljava/lang/String;)I
Landroid/media/AudioSystem;->setErrorCallback(Landroid/media/AudioSystem$ErrorCallback;)V
@@ -1045,6 +1061,22 @@ Landroid/net/wifi/ScanResult;->distanceCm:I
Landroid/net/wifi/ScanResult;->distanceSdCm:I
Landroid/net/wifi/ScanResult;->flags:J
Landroid/net/wifi/ScanResult;->hessid:J
+Landroid/net/wifi/ScanResult$InformationElement;->bytes:[B
+Landroid/net/wifi/ScanResult$InformationElement;->EID_BSS_LOAD:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_ERP:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_EXTENDED_CAPS:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_EXTENDED_SUPPORTED_RATES:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_HT_OPERATION:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_INTERWORKING:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_ROAMING_CONSORTIUM:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_RSN:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_SSID:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_SUPPORTED_RATES:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_TIM:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_VHT_OPERATION:I
+Landroid/net/wifi/ScanResult$InformationElement;->EID_VSA:I
+Landroid/net/wifi/ScanResult$InformationElement;->id:I
+Landroid/net/wifi/ScanResult;->informationElements:[Landroid/net/wifi/ScanResult$InformationElement;
Landroid/net/wifi/ScanResult;->numUsage:I
Landroid/net/wifi/ScanResult;->seen:J
Landroid/net/wifi/ScanResult;->untrusted:Z
@@ -1182,6 +1214,7 @@ Landroid/os/Parcel;->mNativePtr:J
Landroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;Ljava/lang/ClassLoader;)V
Landroid/os/Parcel$ReadWriteHelper;-><init>()V
Landroid/os/Parcel;->writeArrayMap(Landroid/util/ArrayMap;)V
+Landroid/os/PowerManager;->getDefaultScreenBrightnessSetting()I
Landroid/os/PowerManager;->getMaximumScreenBrightnessSetting()I
Landroid/os/PowerManager;->getMinimumScreenBrightnessSetting()I
Landroid/os/PowerManager;->isLightDeviceIdleMode()Z
@@ -1371,6 +1404,8 @@ Landroid/provider/Settings$ContentProviderHolder;->mContentProvider:Landroid/con
Landroid/provider/Settings$Global;->ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED:Ljava/lang/String;
Landroid/provider/Settings$Global;->PACKAGE_VERIFIER_ENABLE:Ljava/lang/String;
Landroid/provider/Settings$Global;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
+Landroid/provider/Settings;->isCallingPackageAllowedToDrawOverlays(Landroid/content/Context;ILjava/lang/String;Z)Z
+Landroid/provider/Settings;->isCallingPackageAllowedToWriteSettings(Landroid/content/Context;ILjava/lang/String;Z)Z
Landroid/provider/Settings$NameValueCache;->mProviderHolder:Landroid/provider/Settings$ContentProviderHolder;
Landroid/provider/Settings$Secure;->ACCESSIBILITY_AUTOCLICK_ENABLED:Ljava/lang/String;
Landroid/provider/Settings$Secure;->ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED:Ljava/lang/String;
@@ -1385,6 +1420,7 @@ Landroid/provider/Settings$System;->getStringForUser(Landroid/content/ContentRes
Landroid/provider/Settings$System;->HEARING_AID:Ljava/lang/String;
Landroid/provider/Settings$System;->MASTER_MONO:Ljava/lang/String;
Landroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
+Landroid/provider/Settings$System;->SCREEN_AUTO_BRIGHTNESS_ADJ:Ljava/lang/String;
Landroid/provider/Settings$System;->sNameValueCache:Landroid/provider/Settings$NameValueCache;
Landroid/provider/Telephony$Sms;->addMessageToUri(ILandroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ZZJ)Landroid/net/Uri;
Landroid/provider/Telephony$Sms;->addMessageToUri(ILandroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ZZ)Landroid/net/Uri;
@@ -2036,6 +2072,7 @@ Landroid/view/View;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V
Landroid/view/View;->dispatchDetachedFromWindow()V
Landroid/view/View;->fitsSystemWindows()Z
Landroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate;
+Landroid/view/View;->getInverseMatrix()Landroid/graphics/Matrix;
Landroid/view/View;->getListenerInfo()Landroid/view/View$ListenerInfo;
Landroid/view/View;->getLocationOnScreen()[I
Landroid/view/View;->getTransitionAlpha()F
@@ -2207,6 +2244,7 @@ Landroid/widget/DatePicker;->mDelegate:Landroid/widget/DatePicker$DatePickerDele
Landroid/widget/EdgeEffect;->mPaint:Landroid/graphics/Paint;
Landroid/widget/Editor;->invalidateTextDisplayList()V
Landroid/widget/Editor;->mShowCursor:J
+Landroid/widget/Editor;->mShowSoftInputOnFocus:Z
Landroid/widget/ExpandableListView;->mChildDivider:Landroid/graphics/drawable/Drawable;
Landroid/widget/FastScroller;->mContainerRect:Landroid/graphics/Rect;
Landroid/widget/FastScroller;->mHeaderCount:I
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java
index cab6744e3c81..2752fa9f1eb3 100644
--- a/core/java/android/app/ActivityManagerInternal.java
+++ b/core/java/android/app/ActivityManagerInternal.java
@@ -69,6 +69,13 @@ public abstract class ActivityManagerInternal {
AppProtoEnums.APP_TRANSITION_SNAPSHOT; // 4
/**
+ * Type for {@link #notifyAppTransitionStarting}: The transition was started because it was a
+ * recents animation and we only needed to wait on the wallpaper.
+ */
+ public static final int APP_TRANSITION_RECENTS_ANIM =
+ AppProtoEnums.APP_TRANSITION_RECENTS_ANIM; // 5
+
+ /**
* The bundle key to extract the assist data.
*/
public static final String ASSIST_KEY_DATA = "data";
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 83d6003b5161..2ac3e2314f89 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -7527,6 +7527,8 @@ public class Notification implements Parcelable
@Nullable private Icon mIcon;
@Nullable private String mUri;
@Nullable private String mKey;
+ private boolean mBot;
+ private boolean mImportant;
protected Person(Parcel in) {
mName = in.readCharSequence();
@@ -7535,6 +7537,8 @@ public class Notification implements Parcelable
}
mUri = in.readString();
mKey = in.readString();
+ mImportant = in.readBoolean();
+ mBot = in.readBoolean();
}
/**
@@ -7611,6 +7615,27 @@ public class Notification implements Parcelable
return this;
}
+ /**
+ * Sets whether this is an important person. Use this method to denote users who frequently
+ * interact with the user of this device, when it is not possible to refer to the user
+ * by {@link android.provider.ContactsContract.Contacts#CONTENT_LOOKUP_URI}.
+ *
+ * @param isImportant {@code true} if this is an important person, {@code false} otherwise.
+ */
+ public Person setImportant(boolean isImportant) {
+ mImportant = isImportant;
+ return this;
+ }
+
+ /**
+ * Sets whether this person is a machine rather than a human.
+ *
+ * @param isBot {@code true} if this person is a machine, {@code false} otherwise.
+ */
+ public Person setBot(boolean isBot) {
+ mBot = isBot;
+ return this;
+ }
/**
* @return the uri provided for this person or {@code null} if no Uri was provided
@@ -7645,6 +7670,20 @@ public class Notification implements Parcelable
}
/**
+ * @return whether this Person is a machine.
+ */
+ public boolean isBot() {
+ return mBot;
+ }
+
+ /**
+ * @return whether this Person is important.
+ */
+ public boolean isImportant() {
+ return mImportant;
+ }
+
+ /**
* @return the URI associated with this person, or "name:mName" otherwise
* @hide
*/
@@ -7674,6 +7713,8 @@ public class Notification implements Parcelable
}
dest.writeString(mUri);
dest.writeString(mKey);
+ dest.writeBoolean(mImportant);
+ dest.writeBoolean(mBot);
}
public static final Creator<Person> CREATOR = new Creator<Person>() {
diff --git a/core/java/android/app/StatsManager.java b/core/java/android/app/StatsManager.java
index b12e3bc04a4d..7325daa7630b 100644
--- a/core/java/android/app/StatsManager.java
+++ b/core/java/android/app/StatsManager.java
@@ -103,12 +103,12 @@ public final class StatsManager {
try {
IStatsManager service = getIStatsManagerLocked();
if (service == null) {
- if (DEBUG) Slog.d(TAG, "Failed to find statsd when adding configuration");
+ Slog.e(TAG, "Failed to find statsd when adding configuration");
return false;
}
return service.addConfiguration(configKey, config);
} catch (RemoteException e) {
- if (DEBUG) Slog.d(TAG, "Failed to connect to statsd when adding configuration");
+ Slog.e(TAG, "Failed to connect to statsd when adding configuration");
return false;
}
}
@@ -126,12 +126,12 @@ public final class StatsManager {
try {
IStatsManager service = getIStatsManagerLocked();
if (service == null) {
- if (DEBUG) Slog.d(TAG, "Failed to find statsd when removing configuration");
+ Slog.e(TAG, "Failed to find statsd when removing configuration");
return false;
}
return service.removeConfiguration(configKey);
} catch (RemoteException e) {
- if (DEBUG) Slog.d(TAG, "Failed to connect to statsd when removing configuration");
+ Slog.e(TAG, "Failed to connect to statsd when removing configuration");
return false;
}
}
@@ -173,7 +173,7 @@ public final class StatsManager {
try {
IStatsManager service = getIStatsManagerLocked();
if (service == null) {
- Slog.w(TAG, "Failed to find statsd when adding broadcast subscriber");
+ Slog.e(TAG, "Failed to find statsd when adding broadcast subscriber");
return false;
}
if (pendingIntent != null) {
@@ -184,7 +184,7 @@ public final class StatsManager {
return service.unsetBroadcastSubscriber(configKey, subscriberId);
}
} catch (RemoteException e) {
- Slog.w(TAG, "Failed to connect to statsd when adding broadcast subscriber", e);
+ Slog.e(TAG, "Failed to connect to statsd when adding broadcast subscriber", e);
return false;
}
}
@@ -210,7 +210,7 @@ public final class StatsManager {
try {
IStatsManager service = getIStatsManagerLocked();
if (service == null) {
- Slog.d(TAG, "Failed to find statsd when registering data listener.");
+ Slog.e(TAG, "Failed to find statsd when registering data listener.");
return false;
}
if (pendingIntent == null) {
@@ -222,7 +222,7 @@ public final class StatsManager {
}
} catch (RemoteException e) {
- Slog.d(TAG, "Failed to connect to statsd when registering data listener.");
+ Slog.e(TAG, "Failed to connect to statsd when registering data listener.");
return false;
}
}
@@ -241,12 +241,12 @@ public final class StatsManager {
try {
IStatsManager service = getIStatsManagerLocked();
if (service == null) {
- if (DEBUG) Slog.d(TAG, "Failed to find statsd when getting data");
+ Slog.e(TAG, "Failed to find statsd when getting data");
return null;
}
return service.getData(configKey);
} catch (RemoteException e) {
- if (DEBUG) Slog.d(TAG, "Failed to connecto statsd when getting data");
+ Slog.e(TAG, "Failed to connect to statsd when getting data");
return null;
}
}
@@ -265,12 +265,12 @@ public final class StatsManager {
try {
IStatsManager service = getIStatsManagerLocked();
if (service == null) {
- if (DEBUG) Slog.d(TAG, "Failed to find statsd when getting metadata");
+ Slog.e(TAG, "Failed to find statsd when getting metadata");
return null;
}
return service.getMetadata();
} catch (RemoteException e) {
- if (DEBUG) Slog.d(TAG, "Failed to connecto statsd when getting metadata");
+ Slog.e(TAG, "Failed to connect to statsd when getting metadata");
return null;
}
}
diff --git a/core/java/android/app/usage/IUsageStatsManager.aidl b/core/java/android/app/usage/IUsageStatsManager.aidl
index fff1a00c585e..d52bd3764101 100644
--- a/core/java/android/app/usage/IUsageStatsManager.aidl
+++ b/core/java/android/app/usage/IUsageStatsManager.aidl
@@ -16,6 +16,7 @@
package android.app.usage;
+import android.app.PendingIntent;
import android.app.usage.UsageEvents;
import android.content.pm.ParceledListSlice;
@@ -43,4 +44,7 @@ interface IUsageStatsManager {
void setAppStandbyBucket(String packageName, int bucket, int userId);
ParceledListSlice getAppStandbyBuckets(String callingPackage, int userId);
void setAppStandbyBuckets(in ParceledListSlice appBuckets, int userId);
+ void registerAppUsageObserver(int observerId, in String[] packages, long timeLimitMs,
+ in PendingIntent callback, String callingPackage);
+ void unregisterAppUsageObserver(int observerId, String callingPackage);
}
diff --git a/core/java/android/app/usage/UsageStatsManager.java b/core/java/android/app/usage/UsageStatsManager.java
index 5f9fa43203da..59f001c5a7c3 100644
--- a/core/java/android/app/usage/UsageStatsManager.java
+++ b/core/java/android/app/usage/UsageStatsManager.java
@@ -20,6 +20,7 @@ import android.annotation.IntDef;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.SystemService;
+import android.app.PendingIntent;
import android.content.Context;
import android.content.pm.ParceledListSlice;
import android.os.RemoteException;
@@ -32,6 +33,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
/**
* Provides access to device usage history and statistics. Usage data is aggregated into
@@ -179,6 +181,31 @@ public final class UsageStatsManager {
@Retention(RetentionPolicy.SOURCE)
public @interface StandbyBuckets {}
+ /**
+ * Observer id of the registered observer for the group of packages that reached the usage
+ * time limit. Included as an extra in the PendingIntent that was registered.
+ * @hide
+ */
+ @SystemApi
+ public static final String EXTRA_OBSERVER_ID = "android.app.usage.extra.OBSERVER_ID";
+
+ /**
+ * Original time limit in milliseconds specified by the registered observer for the group of
+ * packages that reached the usage time limit. Included as an extra in the PendingIntent that
+ * was registered.
+ * @hide
+ */
+ @SystemApi
+ public static final String EXTRA_TIME_LIMIT = "android.app.usage.extra.TIME_LIMIT";
+
+ /**
+ * Actual usage time in milliseconds for the group of packages that reached the specified time
+ * limit. Included as an extra in the PendingIntent that was registered.
+ * @hide
+ */
+ @SystemApi
+ public static final String EXTRA_TIME_USED = "android.app.usage.extra.TIME_USED";
+
private static final UsageEvents sEmptyResults = new UsageEvents();
private final Context mContext;
@@ -470,6 +497,53 @@ public final class UsageStatsManager {
}
}
+ /**
+ * @hide
+ * Register an app usage limit observer that receives a callback on the provided intent when
+ * the sum of usages of apps in the packages array exceeds the timeLimit specified. The
+ * observer will automatically be unregistered when the time limit is reached and the intent
+ * is delivered.
+ * @param observerId A unique id associated with the group of apps to be monitored. There can
+ * be multiple groups with common packages and different time limits.
+ * @param packages The list of packages to observe for foreground activity time. Must include
+ * at least one package.
+ * @param timeLimit The total time the set of apps can be in the foreground before the
+ * callbackIntent is delivered. Must be greater than 0.
+ * @param timeUnit The unit for time specified in timeLimit.
+ * @param callbackIntent The PendingIntent that will be dispatched when the time limit is
+ * exceeded by the group of apps. The delivered Intent will also contain
+ * the extras {@link #EXTRA_OBSERVER_ID}, {@link #EXTRA_TIME_LIMIT} and
+ * {@link #EXTRA_TIME_USED}.
+ * @throws SecurityException if the caller doesn't have the PACKAGE_USAGE_STATS permission.
+ */
+ @SystemApi
+ @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS)
+ public void registerAppUsageObserver(int observerId, String[] packages, long timeLimit,
+ TimeUnit timeUnit, PendingIntent callbackIntent) {
+ try {
+ mService.registerAppUsageObserver(observerId, packages, timeUnit.toMillis(timeLimit),
+ callbackIntent, mContext.getOpPackageName());
+ } catch (RemoteException e) {
+ }
+ }
+
+ /**
+ * @hide
+ * Unregister the app usage observer specified by the observerId. This will only apply to any
+ * observer registered by this application. Unregistering an observer that was already
+ * unregistered or never registered will have no effect.
+ * @param observerId The id of the observer that was previously registered.
+ * @throws SecurityException if the caller doesn't have the PACKAGE_USAGE_STATS permission.
+ */
+ @SystemApi
+ @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS)
+ public void unregisterAppUsageObserver(int observerId) {
+ try {
+ mService.unregisterAppUsageObserver(observerId, mContext.getOpPackageName());
+ } catch (RemoteException e) {
+ }
+ }
+
/** @hide */
public static String reasonToString(int standbyReason) {
StringBuilder sb = new StringBuilder();
diff --git a/core/java/android/content/SyncResult.java b/core/java/android/content/SyncResult.java
index 4f86af985dc6..f67d7f53d1c1 100644
--- a/core/java/android/content/SyncResult.java
+++ b/core/java/android/content/SyncResult.java
@@ -79,7 +79,17 @@ public final class SyncResult implements Parcelable {
/**
* Used to indicate to the SyncManager that future sync requests that match the request's
- * Account and authority should be delayed at least this many seconds.
+ * Account and authority should be delayed until a time in seconds since Java epoch.
+ *
+ * <p>For example, if you want to delay the next sync for at least 5 minutes, then:
+ * <pre>
+ * result.delayUntil = (System.currentTimeMillis() / 1000) + 5 * 60;
+ * </pre>
+ *
+ * <p>By default, when a sync fails, the system retries later with an exponential back-off
+ * with the system default initial delay time, which always wins over {@link #delayUntil} --
+ * i.e. if the system back-off time is larger than {@link #delayUntil}, {@link #delayUntil}
+ * will essentially be ignored.
*/
public long delayUntil;
diff --git a/core/java/android/net/IpSecManager.java b/core/java/android/net/IpSecManager.java
index b60984771a2d..fbf305633a71 100644
--- a/core/java/android/net/IpSecManager.java
+++ b/core/java/android/net/IpSecManager.java
@@ -58,14 +58,18 @@ public final class IpSecManager {
private static final String TAG = "IpSecManager";
/**
- * For direction-specific attributes of an {@link IpSecTransform}, indicates that an attribute
- * applies to traffic towards the host.
+ * Used when applying a transform to direct traffic through an {@link IpSecTransform}
+ * towards the host.
+ *
+ * <p>See {@link #applyTransportModeTransform(Socket, int, IpSecTransform)}.
*/
public static final int DIRECTION_IN = 0;
/**
- * For direction-specific attributes of an {@link IpSecTransform}, indicates that an attribute
- * applies to traffic from the host.
+ * Used when applying a transform to direct traffic through an {@link IpSecTransform}
+ * away from the host.
+ *
+ * <p>See {@link #applyTransportModeTransform(Socket, int, IpSecTransform)}.
*/
public static final int DIRECTION_OUT = 1;
@@ -301,19 +305,21 @@ public final class IpSecManager {
*
* <h4>Rekey Procedure</h4>
*
- * <p>When applying a new tranform to a socket, the previous transform will be removed. However,
- * inbound traffic on the old transform will continue to be decrypted until that transform is
- * deallocated by calling {@link IpSecTransform#close()}. This overlap allows rekey procedures
- * where both transforms are valid until both endpoints are using the new transform and all
- * in-flight packets have been received.
+ * <p>When applying a new tranform to a socket in the outbound direction, the previous transform
+ * will be removed and the new transform will take effect immediately, sending all traffic on
+ * the new transform; however, when applying a transform in the inbound direction, traffic
+ * on the old transform will continue to be decrypted and delivered until that transform is
+ * deallocated by calling {@link IpSecTransform#close()}. This overlap allows lossless rekey
+ * procedures where both transforms are valid until both endpoints are using the new transform
+ * and all in-flight packets have been received.
*
* @param socket a stream socket
- * @param direction the policy direction either {@link #DIRECTION_IN} or {@link #DIRECTION_OUT}
+ * @param direction the direction in which the transform should be applied
* @param transform a transport mode {@code IpSecTransform}
* @throws IOException indicating that the transform could not be applied
*/
public void applyTransportModeTransform(
- Socket socket, int direction, IpSecTransform transform)
+ Socket socket, @PolicyDirection int direction, IpSecTransform transform)
throws IOException {
applyTransportModeTransform(socket.getFileDescriptor$(), direction, transform);
}
@@ -334,19 +340,22 @@ public final class IpSecManager {
*
* <h4>Rekey Procedure</h4>
*
- * <p>When applying a new tranform to a socket, the previous transform will be removed. However,
- * inbound traffic on the old transform will continue to be decrypted until that transform is
- * deallocated by calling {@link IpSecTransform#close()}. This overlap allows rekey procedures
- * where both transforms are valid until both endpoints are using the new transform and all
- * in-flight packets have been received.
+ * <p>When applying a new tranform to a socket in the outbound direction, the previous transform
+ * will be removed and the new transform will take effect immediately, sending all traffic on
+ * the new transform; however, when applying a transform in the inbound direction, traffic
+ * on the old transform will continue to be decrypted and delivered until that transform is
+ * deallocated by calling {@link IpSecTransform#close()}. This overlap allows lossless rekey
+ * procedures where both transforms are valid until both endpoints are using the new transform
+ * and all in-flight packets have been received.
*
* @param socket a datagram socket
- * @param direction the policy direction either DIRECTION_IN or DIRECTION_OUT
+ * @param direction the direction in which the transform should be applied
* @param transform a transport mode {@code IpSecTransform}
* @throws IOException indicating that the transform could not be applied
*/
public void applyTransportModeTransform(
- DatagramSocket socket, int direction, IpSecTransform transform) throws IOException {
+ DatagramSocket socket, @PolicyDirection int direction, IpSecTransform transform)
+ throws IOException {
applyTransportModeTransform(socket.getFileDescriptor$(), direction, transform);
}
@@ -366,19 +375,21 @@ public final class IpSecManager {
*
* <h4>Rekey Procedure</h4>
*
- * <p>When applying a new tranform to a socket, the previous transform will be removed. However,
- * inbound traffic on the old transform will continue to be decrypted until that transform is
- * deallocated by calling {@link IpSecTransform#close()}. This overlap allows rekey procedures
- * where both transforms are valid until both endpoints are using the new transform and all
- * in-flight packets have been received.
+ * <p>When applying a new tranform to a socket in the outbound direction, the previous transform
+ * will be removed and the new transform will take effect immediately, sending all traffic on
+ * the new transform; however, when applying a transform in the inbound direction, traffic
+ * on the old transform will continue to be decrypted and delivered until that transform is
+ * deallocated by calling {@link IpSecTransform#close()}. This overlap allows lossless rekey
+ * procedures where both transforms are valid until both endpoints are using the new transform
+ * and all in-flight packets have been received.
*
* @param socket a socket file descriptor
- * @param direction the policy direction either DIRECTION_IN or DIRECTION_OUT
+ * @param direction the direction in which the transform should be applied
* @param transform a transport mode {@code IpSecTransform}
* @throws IOException indicating that the transform could not be applied
*/
public void applyTransportModeTransform(
- FileDescriptor socket, int direction, IpSecTransform transform)
+ FileDescriptor socket, @PolicyDirection int direction, IpSecTransform transform)
throws IOException {
// We dup() the FileDescriptor here because if we don't, then the ParcelFileDescriptor()
// constructor takes control and closes the user's FD when we exit the method.
@@ -390,21 +401,6 @@ public final class IpSecManager {
}
/**
- * Apply an active Tunnel Mode IPsec Transform to a network, which will tunnel all traffic to
- * and from that network's interface with IPsec (applies an outer IP header and IPsec Header to
- * all traffic, and expects an additional IP header and IPsec Header on all inbound traffic).
- * Applications should probably not use this API directly. Instead, they should use {@link
- * VpnService} to provide VPN capability in a more generic fashion.
- *
- * <p>TODO: Update javadoc for tunnel mode APIs at the same time the APIs are re-worked.
- *
- * @param net a {@link Network} that will be tunneled via IP Sec.
- * @param transform an {@link IpSecTransform}, which must be an active Tunnel Mode transform.
- * @hide
- */
- public void applyTunnelModeTransform(Network net, IpSecTransform transform) {}
-
- /**
* Remove an IPsec transform from a stream socket.
*
* <p>Once removed, traffic on the socket will not be encrypted. Removing transforms from a
@@ -770,7 +766,12 @@ public final class IpSecManager {
}
/**
- * Apply a transform to the IpSecTunnelInterface
+ * Apply an active Tunnel Mode IPsec Transform to a {@link IpSecTunnelInterface}, which will
+ * tunnel all traffic for the given direction through the underlying network's interface with
+ * IPsec (applies an outer IP header and IPsec Header to all traffic, and expects an additional
+ * IP header and IPsec Header on all inbound traffic).
+ * <p>Applications should probably not use this API directly.
+ *
*
* @param tunnel The {@link IpSecManager#IpSecTunnelInterface} that will use the supplied
* transform.
@@ -783,8 +784,8 @@ public final class IpSecManager {
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.NETWORK_STACK)
- public void applyTunnelModeTransform(IpSecTunnelInterface tunnel, int direction,
- IpSecTransform transform) throws IOException {
+ public void applyTunnelModeTransform(IpSecTunnelInterface tunnel,
+ @PolicyDirection int direction, IpSecTransform transform) throws IOException {
try {
mService.applyTunnelModeTransform(
tunnel.getResourceId(), direction, transform.getResourceId());
@@ -792,6 +793,7 @@ public final class IpSecManager {
throw e.rethrowFromSystemServer();
}
}
+
/**
* Construct an instance of IpSecManager within an application context.
*
diff --git a/core/java/android/os/Looper.java b/core/java/android/os/Looper.java
index 04cceb8e80ba..848c59610720 100644
--- a/core/java/android/os/Looper.java
+++ b/core/java/android/os/Looper.java
@@ -331,7 +331,6 @@ public final class Looper {
final long looperToken = proto.start(fieldId);
proto.write(LooperProto.THREAD_NAME, mThread.getName());
proto.write(LooperProto.THREAD_ID, mThread.getId());
- proto.write(LooperProto.IDENTITY_HASH_CODE, System.identityHashCode(this));
mQueue.writeToProto(proto, LooperProto.QUEUE);
proto.end(looperToken);
}
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 97d415e18a73..66fa6294ecee 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -1643,12 +1643,12 @@ public final class PowerManager {
public void writeToProto(ProtoOutputStream proto, long fieldId) {
synchronized (mToken) {
final long token = proto.start(fieldId);
- proto.write(PowerManagerProto.WakeLockProto.HEX_STRING,
- Integer.toHexString(System.identityHashCode(this)));
- proto.write(PowerManagerProto.WakeLockProto.HELD, mHeld);
- proto.write(PowerManagerProto.WakeLockProto.INTERNAL_COUNT, mInternalCount);
+ proto.write(PowerManagerProto.WakeLock.TAG, mTag);
+ proto.write(PowerManagerProto.WakeLock.PACKAGE_NAME, mPackageName);
+ proto.write(PowerManagerProto.WakeLock.HELD, mHeld);
+ proto.write(PowerManagerProto.WakeLock.INTERNAL_COUNT, mInternalCount);
if (mWorkSource != null) {
- mWorkSource.writeToProto(proto, PowerManagerProto.WakeLockProto.WORK_SOURCE);
+ mWorkSource.writeToProto(proto, PowerManagerProto.WakeLock.WORK_SOURCE);
}
proto.end(token);
}
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index e46a5f05c48d..70615c8c1915 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -10670,13 +10670,21 @@ public final class Settings {
= "wifi_on_when_proxy_disconnected";
/**
- * Whether or not to enable Time Only Mode for watch type devices.
- * Type: int (0 for false, 1 for true)
- * Default: 0
+ * Time Only Mode specific settings.
+ * This is encoded as a key=value list, separated by commas. Ex: "foo=1,bar=true"
+ *
+ * The following keys are supported:
+ *
+ * <pre>
+ * enabled (boolean)
+ * disable_tilt_to_wake (boolean)
+ * disable_touch_to_wake (boolean)
+ * </pre>
+ * Type: string
* @hide
*/
- public static final String TIME_ONLY_MODE_ENABLED
- = "time_only_mode_enabled";
+ public static final String TIME_ONLY_MODE_CONSTANTS
+ = "time_only_mode_constants";
/**
* Whether or not Network Watchlist feature is enabled.
diff --git a/core/java/android/security/ConfirmationDialog.java b/core/java/android/security/ConfirmationDialog.java
index f6127e184139..1697106c3782 100644
--- a/core/java/android/security/ConfirmationDialog.java
+++ b/core/java/android/security/ConfirmationDialog.java
@@ -227,12 +227,32 @@ public class ConfirmationDialog {
return uiOptionsAsFlags;
}
+ private boolean isAccessibilityServiceRunning() {
+ boolean serviceRunning = false;
+ try {
+ ContentResolver contentResolver = mContext.getContentResolver();
+ int a11yEnabled = Settings.Secure.getInt(contentResolver,
+ Settings.Secure.ACCESSIBILITY_ENABLED);
+ if (a11yEnabled == 1) {
+ serviceRunning = true;
+ }
+ } catch (SettingNotFoundException e) {
+ Log.w(TAG, "Unexpected SettingNotFoundException");
+ e.printStackTrace();
+ }
+ return serviceRunning;
+ }
+
/**
* Requests a confirmation prompt to be presented to the user.
*
* When the prompt is no longer being presented, one of the methods in
* {@link ConfirmationCallback} is called on the supplied callback object.
*
+ * Confirmation dialogs may not be available when accessibility services are running so this
+ * may fail with a {@link ConfirmationNotAvailableException} exception even if
+ * {@link #isSupported} returns {@code true}.
+ *
* @param executor the executor identifying the thread that will receive the callback.
* @param callback the callback to use when the dialog is done showing.
* @throws IllegalArgumentException if the prompt text is too long or malfomed.
@@ -245,6 +265,9 @@ public class ConfirmationDialog {
if (mCallback != null) {
throw new ConfirmationAlreadyPresentingException();
}
+ if (isAccessibilityServiceRunning()) {
+ throw new ConfirmationNotAvailableException();
+ }
mCallback = callback;
mExecutor = executor;
diff --git a/core/java/android/security/keystore/recovery/KeyChainProtectionParams.java b/core/java/android/security/keystore/recovery/KeyChainProtectionParams.java
index aa09f10de070..3d3b6d565577 100644
--- a/core/java/android/security/keystore/recovery/KeyChainProtectionParams.java
+++ b/core/java/android/security/keystore/recovery/KeyChainProtectionParams.java
@@ -215,8 +215,8 @@ public final class KeyChainProtectionParams implements Parcelable {
/**
* Creates a new {@link KeyChainProtectionParams} instance.
- * The instance will include default values, if {@link setSecret}
- * or {@link setUserSecretType} were not called.
+ * The instance will include default values, if {@link #setSecret}
+ * or {@link #setUserSecretType} were not called.
*
* @return new instance
* @throws NullPointerException if some required fields were not set.
diff --git a/core/java/android/security/keystore/recovery/KeyDerivationParams.java b/core/java/android/security/keystore/recovery/KeyDerivationParams.java
index fc909a0aac9e..ef5e90c89944 100644
--- a/core/java/android/security/keystore/recovery/KeyDerivationParams.java
+++ b/core/java/android/security/keystore/recovery/KeyDerivationParams.java
@@ -30,7 +30,7 @@ import java.lang.annotation.RetentionPolicy;
/**
* Collection of parameters which define a key derivation function.
- * Currently only supports salted SHA-256
+ * Currently only supports salted SHA-256.
*
* @hide
*/
diff --git a/core/java/android/security/keystore/recovery/RecoveryController.java b/core/java/android/security/keystore/recovery/RecoveryController.java
index 48813757aaa8..7523afdf8041 100644
--- a/core/java/android/security/keystore/recovery/RecoveryController.java
+++ b/core/java/android/security/keystore/recovery/RecoveryController.java
@@ -33,6 +33,7 @@ import com.android.internal.widget.ILockSettings;
import java.security.Key;
import java.security.UnrecoverableKeyException;
+import java.security.cert.CertPath;
import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.List;
@@ -156,6 +157,7 @@ public class RecoveryController {
/**
* Gets a new instance of the class.
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public static RecoveryController getInstance(Context context) {
ILockSettings lockSettings =
ILockSettings.Stub.asInterface(ServiceManager.getService("lock_settings"));
@@ -245,8 +247,6 @@ public class RecoveryController {
* @return Data necessary to recover keystore or {@code null} if snapshot is not available.
* @throws InternalRecoveryServiceException if an unexpected error occurred in the recovery
* service.
- *
- * @hide
*/
@RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public @Nullable KeyChainSnapshot getKeyChainSnapshot()
@@ -288,7 +288,7 @@ public class RecoveryController {
/**
* Server parameters used to generate new recovery key blobs. This value will be included in
* {@code KeyChainSnapshot.getEncryptedRecoveryKeyBlob()}. The same value must be included
- * in vaultParams {@link #startRecoverySession}
+ * in vaultParams {@link RecoverySession#start(CertPath, byte[], byte[], List)}.
*
* @param serverParams included in recovery key blob.
* @see #getRecoveryData
@@ -310,6 +310,7 @@ public class RecoveryController {
* @deprecated Use {@link #getAliases()}.
*/
@Deprecated
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public List<String> getAliases(@Nullable String packageName)
throws InternalRecoveryServiceException {
return getAliases();
@@ -318,6 +319,7 @@ public class RecoveryController {
/**
* Returns a list of aliases of keys belonging to the application.
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public List<String> getAliases() throws InternalRecoveryServiceException {
try {
Map<String, Integer> allStatuses = mBinder.getRecoveryStatus();
@@ -367,6 +369,7 @@ public class RecoveryController {
* @deprecated Use {@link #getRecoveryStatus(String)}.
*/
@Deprecated
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public int getRecoveryStatus(String packageName, String alias)
throws InternalRecoveryServiceException {
return getRecoveryStatus(alias);
@@ -385,6 +388,7 @@ public class RecoveryController {
* @throws InternalRecoveryServiceException if an unexpected error occurred in the recovery
* service.
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public int getRecoveryStatus(String alias) throws InternalRecoveryServiceException {
try {
Map<String, Integer> allStatuses = mBinder.getRecoveryStatus();
@@ -410,6 +414,7 @@ public class RecoveryController {
* @throws InternalRecoveryServiceException if an unexpected error occurred in the recovery
* service.
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public void setRecoverySecretTypes(
@NonNull @KeyChainProtectionParams.UserSecretType int[] secretTypes)
throws InternalRecoveryServiceException {
@@ -431,6 +436,7 @@ public class RecoveryController {
* @throws InternalRecoveryServiceException if an unexpected error occurred in the recovery
* service.
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public @NonNull @KeyChainProtectionParams.UserSecretType int[] getRecoverySecretTypes()
throws InternalRecoveryServiceException {
try {
@@ -452,6 +458,7 @@ public class RecoveryController {
* service.
*/
@NonNull
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public @KeyChainProtectionParams.UserSecretType int[] getPendingRecoverySecretTypes()
throws InternalRecoveryServiceException {
try {
@@ -474,6 +481,7 @@ public class RecoveryController {
* @throws InternalRecoveryServiceException if an unexpected error occurred in the recovery
* service.
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public void recoverySecretAvailable(@NonNull KeyChainProtectionParams recoverySecret)
throws InternalRecoveryServiceException {
try {
@@ -498,6 +506,7 @@ public class RecoveryController {
* to generate recoverable keys, as the snapshots are encrypted using a key derived from the
* lock screen.
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public byte[] generateAndStoreKey(@NonNull String alias, byte[] account)
throws InternalRecoveryServiceException, LockScreenRequiredException {
try {
@@ -512,11 +521,11 @@ public class RecoveryController {
}
}
- // TODO: Unhide the following APIs, generateKey(), importKey(), and getKey()
/**
* @deprecated Use {@link #generateKey(String)}.
*/
@Deprecated
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public Key generateKey(@NonNull String alias, byte[] account)
throws InternalRecoveryServiceException, LockScreenRequiredException {
return generateKey(alias);
@@ -530,6 +539,7 @@ public class RecoveryController {
* @throws LockScreenRequiredException if the user does not have a lock screen set. A lock
* screen is required to generate recoverable keys.
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public Key generateKey(@NonNull String alias) throws InternalRecoveryServiceException,
LockScreenRequiredException {
try {
@@ -562,8 +572,8 @@ public class RecoveryController {
* @throws LockScreenRequiredException if the user does not have a lock screen set. A lock
* screen is required to generate recoverable keys.
*
- * @hide
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public Key importKey(@NonNull String alias, byte[] keyBytes)
throws InternalRecoveryServiceException, LockScreenRequiredException {
try {
@@ -595,8 +605,8 @@ public class RecoveryController {
* @throws InternalRecoveryServiceException if an unexpected error occurred in the recovery
* service.
* @throws UnrecoverableKeyException if key is permanently invalidated or not found.
- * @hide
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public @Nullable Key getKey(@NonNull String alias)
throws InternalRecoveryServiceException, UnrecoverableKeyException {
try {
@@ -622,6 +632,7 @@ public class RecoveryController {
* @throws InternalRecoveryServiceException if an unexpected error occurred in the recovery
* service.
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public void removeKey(@NonNull String alias) throws InternalRecoveryServiceException {
try {
mBinder.removeKey(alias);
@@ -637,6 +648,7 @@ public class RecoveryController {
*
* <p>A recovery session is required to restore keys from a remote store.
*/
+ @RequiresPermission(android.Manifest.permission.RECOVER_KEYSTORE)
public RecoverySession createRecoverySession() {
return RecoverySession.newInstance(this);
}
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index d908e7979cf7..d5216843f81e 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -29,6 +29,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
import android.Manifest;
import android.animation.LayoutTransition;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.ActivityThread;
import android.app.ResourcesManager;
@@ -4152,9 +4153,7 @@ public final class ViewRootImpl implements ViewParent,
Log.v(TAG, "Dispatching key " + msg.obj + " from Autofill to " + mView);
}
KeyEvent event = (KeyEvent) msg.obj;
- // send InputEvent to pre IME, set FLAG_FROM_AUTOFILL so the InputEvent
- // wont be dropped as app window is not focus.
- enqueueInputEvent(event, null, QueuedInputEvent.FLAG_FROM_AUTOFILL, true);
+ enqueueInputEvent(event, null, 0, true);
} break;
case MSG_CHECK_FOCUS: {
InputMethodManager imm = InputMethodManager.peekInstance();
@@ -4447,7 +4446,7 @@ public final class ViewRootImpl implements ViewParent,
return true;
} else if ((!mAttachInfo.mHasWindowFocus
&& !q.mEvent.isFromSource(InputDevice.SOURCE_CLASS_POINTER)
- && (q.mFlags & QueuedInputEvent.FLAG_FROM_AUTOFILL) == 0) || mStopped
+ && !isAutofillUiShowing()) || mStopped
|| (mIsAmbientMode && !q.mEvent.isFromSource(InputDevice.SOURCE_CLASS_BUTTON))
|| (mPausedForTransition && !isBack(q.mEvent))) {
// This is a focus event and the window doesn't currently have input focus or
@@ -4782,18 +4781,11 @@ public final class ViewRootImpl implements ViewParent,
ensureTouchMode(event.isFromSource(InputDevice.SOURCE_TOUCHSCREEN));
}
- if (action == MotionEvent.ACTION_DOWN && mView instanceof ViewGroup) {
+ if (action == MotionEvent.ACTION_DOWN) {
// Upon motion event within app window, close autofill ui.
- ViewGroup decorView = (ViewGroup) mView;
- if (decorView.getChildCount() > 0) {
- // We cannot use decorView's Context for querying AutofillManager: DecorView's
- // context is based on Application Context, it would allocate a different
- // AutofillManager instance.
- AutofillManager afm = (AutofillManager) decorView.getChildAt(0).getContext()
- .getSystemService(Context.AUTOFILL_MANAGER_SERVICE);
- if (afm != null) {
- afm.requestHideFillUi();
- }
+ AutofillManager afm = getAutofillManager();
+ if (afm != null) {
+ afm.requestHideFillUi();
}
}
@@ -6435,6 +6427,28 @@ public final class ViewRootImpl implements ViewParent,
return mAudioManager;
}
+ private @Nullable AutofillManager getAutofillManager() {
+ if (mView instanceof ViewGroup) {
+ ViewGroup decorView = (ViewGroup) mView;
+ if (decorView.getChildCount() > 0) {
+ // We cannot use decorView's Context for querying AutofillManager: DecorView's
+ // context is based on Application Context, it would allocate a different
+ // AutofillManager instance.
+ return decorView.getChildAt(0).getContext()
+ .getSystemService(AutofillManager.class);
+ }
+ }
+ return null;
+ }
+
+ private boolean isAutofillUiShowing() {
+ AutofillManager afm = getAutofillManager();
+ if (afm == null) {
+ return false;
+ }
+ return afm.isAutofillUiShowing();
+ }
+
public AccessibilityInteractionController getAccessibilityInteractionController() {
if (mView == null) {
throw new IllegalStateException("getAccessibilityInteractionController"
@@ -6840,7 +6854,6 @@ public final class ViewRootImpl implements ViewParent,
public static final int FLAG_FINISHED_HANDLED = 1 << 3;
public static final int FLAG_RESYNTHESIZED = 1 << 4;
public static final int FLAG_UNHANDLED = 1 << 5;
- public static final int FLAG_FROM_AUTOFILL = 1 << 6;
public QueuedInputEvent mNext;
diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java
index 158c2ee0b2d0..c1092978cea0 100644
--- a/core/java/android/view/autofill/AutofillManager.java
+++ b/core/java/android/view/autofill/AutofillManager.java
@@ -1407,6 +1407,15 @@ public final class AutofillManager {
return client;
}
+ /**
+ * Check if autofill ui is showing, must be called on UI thread.
+ * @hide
+ */
+ public boolean isAutofillUiShowing() {
+ final AutofillClient client = mContext.getAutofillClient();
+ return client != null & client.autofillClientIsFillUiShowing();
+ }
+
/** @hide */
public void onAuthenticationResult(int authenticationId, Intent data, View focusView) {
if (!hasAutofillFeature()) {
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index bf075bf800f4..fde7e961b843 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -1455,6 +1455,11 @@ public class LockPatternUtils {
return (getStrongAuthForUser(userId) & ~StrongAuthTracker.ALLOWING_FINGERPRINT) == 0;
}
+ public boolean isUserInLockdown(int userId) {
+ return getStrongAuthForUser(userId)
+ == StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN;
+ }
+
private ICheckCredentialProgressCallback wrapCallback(
final CheckCredentialProgressCallback callback) {
if (callback == null) {
diff --git a/core/proto/android/app/enums.proto b/core/proto/android/app/enums.proto
index 5eb05be1a1d1..1754e426fe93 100644
--- a/core/proto/android/app/enums.proto
+++ b/core/proto/android/app/enums.proto
@@ -32,6 +32,9 @@ enum AppTransitionReasonEnum {
APP_TRANSITION_TIMEOUT = 3;
// The transition was started because of a we drew a task snapshot.
APP_TRANSITION_SNAPSHOT = 4;
+ // The transition was started because it was a recents animation and we only needed to wait on
+ // the wallpaper.
+ APP_TRANSITION_RECENTS_ANIM = 5;
}
// ActivityManager.java PROCESS_STATEs
diff --git a/core/proto/android/content/configuration.proto b/core/proto/android/content/configuration.proto
index 74b47d2424b2..6a174e868a5e 100644
--- a/core/proto/android/content/configuration.proto
+++ b/core/proto/android/content/configuration.proto
@@ -32,7 +32,7 @@ message ConfigurationProto {
optional float font_scale = 1;
optional uint32 mcc = 2;
- optional uint32 mnc = 3;
+ optional uint32 mnc = 3 [ (.android.privacy).dest = DEST_EXPLICIT ];
repeated LocaleProto locales = 4;
optional uint32 screen_layout = 5;
optional uint32 color_mode = 6;
diff --git a/core/proto/android/content/intent.proto b/core/proto/android/content/intent.proto
index 5e0ed111d7ea..3b2c4fcb64cd 100644
--- a/core/proto/android/content/intent.proto
+++ b/core/proto/android/content/intent.proto
@@ -59,7 +59,7 @@ message IntentProto {
optional ComponentNameProto component = 7;
optional string source_bounds = 8;
optional string clip_data = 9 [ (.android.privacy).dest = DEST_EXPLICIT ];
- optional string extras = 10 [ (.android.privacy).dest = DEST_EXPLICIT ];
+ optional string extras = 10 [ (.android.privacy).dest = DEST_LOCAL ];
optional int32 content_user_hint = 11;
optional string selector = 12;
}
diff --git a/core/proto/android/os/looper.proto b/core/proto/android/os/looper.proto
index 435c648d89d8..dce65d35e516 100644
--- a/core/proto/android/os/looper.proto
+++ b/core/proto/android/os/looper.proto
@@ -25,8 +25,8 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto";
message LooperProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
- optional string thread_name = 1 [ (.android.privacy).dest = DEST_EXPLICIT ];
+ // the thread name, usually set by developers.
+ optional string thread_name = 1;
optional int64 thread_id = 2;
- optional int32 identity_hash_code = 3;
- optional android.os.MessageQueueProto queue = 4;
+ optional android.os.MessageQueueProto queue = 3;
}
diff --git a/core/proto/android/os/powermanager.proto b/core/proto/android/os/powermanager.proto
index 78a28ed4a0e0..20b0a7446ae8 100644
--- a/core/proto/android/os/powermanager.proto
+++ b/core/proto/android/os/powermanager.proto
@@ -36,13 +36,14 @@ message PowerManagerProto {
}
// WakeLock class in android.os.PowerManager, it is the one used by sdk
- message WakeLockProto {
+ message WakeLock {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
- optional string hex_string = 1;
- optional bool held = 2;
- optional int32 internal_count = 3;
- optional WorkSourceProto work_source = 4;
+ optional string tag = 1;
+ optional string package_name = 2;
+ optional bool held = 3;
+ optional int32 internal_count = 4;
+ optional WorkSourceProto work_source = 5;
}
}
diff --git a/core/proto/android/providers/settings.proto b/core/proto/android/providers/settings.proto
index a818e2095ca3..53e6532419a6 100644
--- a/core/proto/android/providers/settings.proto
+++ b/core/proto/android/providers/settings.proto
@@ -368,7 +368,7 @@ message GlobalSettingsProto {
optional SettingProto off_body_radios_off_for_small_battery_enabled = 271 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto off_body_radios_off_delay_ms = 272 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto wifi_on_when_proxy_disconnected = 273 [ (android.privacy).dest = DEST_AUTOMATIC ];
- optional SettingProto time_only_mode_enabled = 274 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ optional SettingProto time_only_mode_constants = 274 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto network_watchlist_enabled = 275 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto keep_profile_in_background = 276 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto window_animation_scale = 277 [ (android.privacy).dest = DEST_AUTOMATIC ];
diff --git a/core/proto/android/server/activitymanagerservice.proto b/core/proto/android/server/activitymanagerservice.proto
index 3b9150f44abc..5491ca548b38 100644
--- a/core/proto/android/server/activitymanagerservice.proto
+++ b/core/proto/android/server/activitymanagerservice.proto
@@ -157,7 +157,7 @@ message ReceiverListProto {
optional BroadcastRecordProto current = 5;
optional bool linked_to_death = 6;
repeated BroadcastFilterProto filters = 7;
- optional string hex_hash = 8; // this hash is used to find the object in IntentResolver
+ optional string hex_hash = 8; // used to find this ReceiverList object in IntentResolver
}
message ProcessRecordProto {
@@ -184,7 +184,7 @@ message BroadcastFilterProto {
optional .android.content.IntentFilterProto intent_filter = 1;
optional string required_permission = 2;
- optional string hex_hash = 3; // used to find the object in IntentResolver
+ optional string hex_hash = 3; // used to find the BroadcastFilter object in IntentResolver
optional int32 owning_user_id = 4;
}
@@ -458,13 +458,12 @@ message ServiceRecordProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
optional string short_name = 1;
- optional string hex_hash = 2;
- optional bool is_running = 3; // false if the application service is null
- optional int32 pid = 4;
- optional .android.content.IntentProto intent = 5;
- optional string package_name = 6;
- optional string process_name = 7;
- optional string permission = 8;
+ optional bool is_running = 2; // false if the application service is null
+ optional int32 pid = 3;
+ optional .android.content.IntentProto intent = 4;
+ optional string package_name = 5;
+ optional string process_name = 6;
+ optional string permission = 7;
message AppInfo {
option (.android.msg_privacy).dest = DEST_EXPLICIT;
@@ -473,11 +472,11 @@ message ServiceRecordProto {
optional string res_dir = 2;
optional string data_dir = 3;
}
- optional AppInfo appinfo = 9;
- optional ProcessRecordProto app = 10;
- optional ProcessRecordProto isolated_proc = 11;
- optional bool whitelist_manager = 12;
- optional bool delayed = 13;
+ optional AppInfo appinfo = 8;
+ optional ProcessRecordProto app = 9;
+ optional ProcessRecordProto isolated_proc = 10;
+ optional bool whitelist_manager = 11;
+ optional bool delayed = 12;
message Foreground {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
@@ -485,13 +484,13 @@ message ServiceRecordProto {
optional int32 id = 1;
optional .android.app.NotificationProto notification = 2;
}
- optional Foreground foreground = 14;
+ optional Foreground foreground = 13;
- optional .android.util.Duration create_real_time = 15;
- optional .android.util.Duration starting_bg_timeout = 16;
- optional .android.util.Duration last_activity_time = 17;
- optional .android.util.Duration restart_time = 18;
- optional bool created_from_fg = 19;
+ optional .android.util.Duration create_real_time = 14;
+ optional .android.util.Duration starting_bg_timeout = 15;
+ optional .android.util.Duration last_activity_time = 16;
+ optional .android.util.Duration restart_time = 17;
+ optional bool created_from_fg = 18;
// variables used to track states related to service start
message Start {
@@ -503,7 +502,7 @@ message ServiceRecordProto {
optional bool call_start = 4;
optional int32 last_start_id = 5;
}
- optional Start start = 20;
+ optional Start start = 19;
message ExecuteNesting {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
@@ -512,9 +511,9 @@ message ServiceRecordProto {
optional bool execute_fg = 2;
optional .android.util.Duration executing_start = 3;
}
- optional ExecuteNesting execute = 21;
+ optional ExecuteNesting execute = 20;
- optional .android.util.Duration destory_time = 22;
+ optional .android.util.Duration destory_time = 21;
message Crash {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
@@ -524,9 +523,9 @@ message ServiceRecordProto {
optional .android.util.Duration next_restart_time = 3;
optional int32 crash_count = 4;
}
- optional Crash crash = 23;
+ optional Crash crash = 22;
- message StartItemProto {
+ message StartItem {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
optional int32 id = 1;
@@ -537,17 +536,20 @@ message ServiceRecordProto {
optional NeededUriGrantsProto needed_grants = 6;
optional UriPermissionOwnerProto uri_permissions = 7;
}
- repeated StartItemProto delivered_starts = 24;
- repeated StartItemProto pending_starts = 25;
+ repeated StartItem delivered_starts = 23;
+ repeated StartItem pending_starts = 24;
- repeated IntentBindRecordProto bindings = 26;
- repeated ConnectionRecordProto connections = 27;
+ repeated IntentBindRecordProto bindings = 25;
+ repeated ConnectionRecordProto connections = 26;
+
+ // Next Tag: 27
}
message ConnectionRecordProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
- optional string hex_hash = 1;
+ // used to find same record, e.g. AppBindRecord has the hex_hash
+ optional string hex_hash = 1; // cross reference the object and avoid double logging.
optional int32 user_id = 2;
enum Flag {
@@ -570,30 +572,28 @@ message ConnectionRecordProto {
}
repeated Flag flags = 3;
optional string service_name = 4;
- optional string conn_hex_hash = 5;
}
message AppBindRecordProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
- optional string hex_hash = 1;
- optional ProcessRecordProto client = 2;
- repeated ConnectionRecordProto connections = 3;
+ optional string service_name = 1;
+ optional string client_proc_name = 2;
+ repeated string connections = 3; // hex_hash of ConnectionRecordProto
}
message IntentBindRecordProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
- optional string hex_hash = 1;
- optional bool is_create = 2;
- optional .android.content.IntentProto intent = 3;
- optional string binder = 4;
- optional bool requested = 5;
- optional bool received = 6;
- optional bool has_bound = 7;
- optional bool do_rebind = 8;
+ optional .android.content.IntentProto intent = 1;
+ optional string binder = 2;
+ optional bool auto_create = 3; // value of BIND_AUTO_CREATE flag.
+ optional bool requested = 4;
+ optional bool received = 5;
+ optional bool has_bound = 6;
+ optional bool do_rebind = 7;
- repeated AppBindRecordProto apps = 9;
+ repeated AppBindRecordProto apps = 8;
}
// TODO: "dumpsys activity --proto processes"
@@ -688,10 +688,10 @@ message ActivityManagerServiceDumpProcessesProto {
optional SleepStatus sleep_status = 27;
message VoiceProto {
- option (.android.msg_privacy).dest = DEST_EXPLICIT;
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
optional string session = 1;
- optional .android.os.PowerManagerProto.WakeLockProto wakelock = 2;
+ optional .android.os.PowerManagerProto.WakeLock wakelock = 2;
}
optional VoiceProto running_voice = 28;
@@ -780,8 +780,8 @@ message ActivityManagerServiceDumpProcessesProto {
optional bool call_finish_booting = 44;
optional bool boot_animation_complete = 45;
optional int64 last_power_check_uptime_ms = 46;
- optional .android.os.PowerManagerProto.WakeLockProto going_to_sleep = 47;
- optional .android.os.PowerManagerProto.WakeLockProto launching_activity = 48;
+ optional .android.os.PowerManagerProto.WakeLock going_to_sleep = 47;
+ optional .android.os.PowerManagerProto.WakeLock launching_activity = 48;
optional int32 adj_seq = 49;
optional int32 lru_seq = 50;
optional int32 num_non_cached_procs = 51;
@@ -813,14 +813,13 @@ message ActiveInstrumentationProto {
message UidRecordProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
- optional string hex_hash = 1;
- optional int32 uid = 2;
- optional .android.app.ProcessStateEnum current = 3;
- optional bool ephemeral = 4;
- optional bool fg_services = 5;
- optional bool whilelist = 6;
- optional .android.util.Duration last_background_time = 7;
- optional bool idle = 8;
+ optional int32 uid = 1;
+ optional .android.app.ProcessStateEnum current = 2;
+ optional bool ephemeral = 3;
+ optional bool fg_services = 4;
+ optional bool whilelist = 5;
+ optional .android.util.Duration last_background_time = 6;
+ optional bool idle = 7;
enum Change {
CHANGE_GONE = 0;
@@ -829,8 +828,8 @@ message UidRecordProto {
CHANGE_CACHED = 3;
CHANGE_UNCACHED = 4;
}
- repeated Change last_reported_changes = 9;
- optional int32 num_procs = 10;
+ repeated Change last_reported_changes = 8;
+ optional int32 num_procs = 9;
message ProcStateSequence {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
@@ -839,7 +838,9 @@ message UidRecordProto {
optional int64 last_network_updated = 2;
optional int64 last_dispatched = 3;
}
- optional ProcStateSequence network_state_update = 11;
+ optional ProcStateSequence network_state_update = 10;
+
+ // Next Tag: 11
}
// proto of class ImportanceToken in ActivityManagerService
diff --git a/core/proto/android/server/intentresolver.proto b/core/proto/android/server/intentresolver.proto
index 0ada89533cb4..e67723e5abfa 100644
--- a/core/proto/android/server/intentresolver.proto
+++ b/core/proto/android/server/intentresolver.proto
@@ -24,9 +24,9 @@ import "frameworks/base/libs/incident/proto/android/privacy.proto";
message IntentResolverProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
-
+ // A mapping bewteen some key string to IntentFilter's toString().
message ArrayMapEntry {
- option (.android.msg_privacy).dest = DEST_EXPLICIT;
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
optional string key = 1;
repeated string values = 2;
diff --git a/core/proto/android/service/diskstats.proto b/core/proto/android/service/diskstats.proto
index e5bdc8bd16f6..f55f0e775d78 100644
--- a/core/proto/android/service/diskstats.proto
+++ b/core/proto/android/service/diskstats.proto
@@ -37,8 +37,8 @@ message DiskStatsServiceDumpProto {
}
// Whether the latency test resulted in an error
optional bool has_test_error = 1;
- // If the test errored, error message is contained here
- optional string error_message = 2 [ (android.privacy).dest = DEST_EXPLICIT ];
+ // If the test errored, error message is contained here, it is just IOException.
+ optional string error_message = 2;
// 512B write latency in milliseconds, if the test was successful
optional int32 write_512b_latency_millis = 3;
// Free Space in the major partitions
diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
index a08eae94b3f6..04cdb0be2563 100644
--- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java
+++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
@@ -392,7 +392,7 @@ public class SettingsBackupTest {
Settings.Global.TETHER_SUPPORTED,
Settings.Global.TEXT_CLASSIFIER_CONSTANTS,
Settings.Global.THEATER_MODE_ON,
- Settings.Global.TIME_ONLY_MODE_ENABLED,
+ Settings.Global.TIME_ONLY_MODE_CONSTANTS,
Settings.Global.TRANSITION_ANIMATION_SCALE,
Settings.Global.TRUSTED_SOUND,
Settings.Global.TZINFO_UPDATE_CONTENT_URL,
diff --git a/media/java/android/media/MediaPlayerBase.java b/media/java/android/media/MediaPlayerBase.java
index f18e347e56bd..48b7a51fc1eb 100644
--- a/media/java/android/media/MediaPlayerBase.java
+++ b/media/java/android/media/MediaPlayerBase.java
@@ -129,6 +129,33 @@ public abstract class MediaPlayerBase implements AutoCloseable {
*/
public abstract void seekTo(long pos);
+ /**
+ * Fast forwards playback. If playback is already fast forwarding this may increase the rate.
+ * <p>
+ * Default implementation sets the playback speed to the 2.0f
+ * @see #setPlaybackSpeed(float)
+ * @hide
+ */
+ // TODO(jaewan): Unhide (b/74724709)
+ public void fastForward() {
+ setPlaybackSpeed(2.0f);
+ }
+
+ /**
+ * Rewinds playback. If playback is already rewinding this may increase the rate.
+ * <p>
+ * Default implementation sets the playback speed to the -1.0f if
+ * {@link #isReversePlaybackSupported()} returns {@code true}.
+ * @see #setPlaybackSpeed(float)
+ * @hide
+ */
+ // TODO(jaewan): Unhide (b/74724709)
+ public void rewind() {
+ if (isReversePlaybackSupported()) {
+ setPlaybackSpeed(-1.0f);
+ }
+ }
+
public static final long UNKNOWN_TIME = -1;
/**
diff --git a/media/java/android/media/MediaSession2.java b/media/java/android/media/MediaSession2.java
index 60714df09a52..66478318eb3b 100644
--- a/media/java/android/media/MediaSession2.java
+++ b/media/java/android/media/MediaSession2.java
@@ -1418,14 +1418,14 @@ public class MediaSession2 implements AutoCloseable {
}
/**
- * Start fast forwarding. If playback is already fast forwarding this may increase the rate.
+ * Fast forwards playback. If playback is already fast forwarding this may increase the rate.
*/
public void fastForward() {
mProvider.fastForward_impl();
}
/**
- * Start rewinding. If playback is already rewinding this may increase the rate.
+ * Rewinds playback. If playback is already rewinding this may increase the rate.
*/
public void rewind() {
mProvider.rewind_impl();
diff --git a/media/java/android/media/update/ApiLoader.java b/media/java/android/media/update/ApiLoader.java
index 0d190a7c4ebc..cf18bddbb57f 100644
--- a/media/java/android/media/update/ApiLoader.java
+++ b/media/java/android/media/update/ApiLoader.java
@@ -16,49 +16,73 @@
package android.media.update;
-import android.annotation.NonNull;
-import android.content.res.Resources;
+import android.app.ActivityManager;
+import android.app.AppGlobals;
import android.content.Context;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Build;
+import android.os.RemoteException;
+import android.os.UserHandle;
+
+import com.android.internal.annotations.GuardedBy;
+
+import dalvik.system.PathClassLoader;
+
+import java.io.File;
/**
* @hide
*/
public final class ApiLoader {
- private static Object sMediaLibrary;
+ @GuardedBy("this")
+ private static StaticProvider sMediaUpdatable;
private static final String UPDATE_PACKAGE = "com.android.media.update";
private static final String UPDATE_CLASS = "com.android.media.update.ApiFactory";
private static final String UPDATE_METHOD = "initialize";
+ private static final boolean REGISTER_UPDATE_DEPENDENCY = true;
private ApiLoader() { }
- public static StaticProvider getProvider(@NonNull Context context) {
- if (context == null) {
- throw new IllegalArgumentException("context shouldn't be null");
- }
+ @Deprecated
+ public static StaticProvider getProvider(Context context) {
+ return getProvider();
+ }
+
+ public static StaticProvider getProvider() {
+ if (sMediaUpdatable != null) return sMediaUpdatable;
+
try {
- return (StaticProvider) getMediaLibraryImpl(context);
- } catch (PackageManager.NameNotFoundException | ReflectiveOperationException e) {
+ return getMediaUpdatable();
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ } catch (NameNotFoundException | ReflectiveOperationException e) {
throw new RuntimeException(e);
}
}
// TODO This method may do I/O; Ensure it does not violate (emit warnings in) strict mode.
- private static synchronized Object getMediaLibraryImpl(Context context)
- throws PackageManager.NameNotFoundException, ReflectiveOperationException {
- if (sMediaLibrary != null) return sMediaLibrary;
+ private static synchronized StaticProvider getMediaUpdatable()
+ throws NameNotFoundException, ReflectiveOperationException, RemoteException {
+ if (sMediaUpdatable != null) return sMediaUpdatable;
// TODO Figure out when to use which package (query media update service)
int flags = Build.IS_DEBUGGABLE ? 0 : PackageManager.MATCH_FACTORY_ONLY;
- Context libContext = context.createApplicationContext(
- context.getPackageManager().getPackageInfo(UPDATE_PACKAGE, flags).applicationInfo,
- Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);
- sMediaLibrary = libContext.getClassLoader()
- .loadClass(UPDATE_CLASS)
- .getMethod(UPDATE_METHOD, Resources.class, Resources.Theme.class)
- .invoke(null, libContext.getResources(), libContext.getTheme());
- return sMediaLibrary;
+ flags |= PackageManager.GET_SHARED_LIBRARY_FILES;
+ ApplicationInfo ai = AppGlobals.getPackageManager().getApplicationInfo(
+ UPDATE_PACKAGE, flags, UserHandle.myUserId());
+
+ if (REGISTER_UPDATE_DEPENDENCY) {
+ // Register a dependency to the updatable in order to be killed during updates
+ ActivityManager.getService().addPackageDependency(ai.packageName);
+ }
+
+ PathClassLoader classLoader = new PathClassLoader(ai.sourceDir,
+ ai.nativeLibraryDir + File.pathSeparator + System.getProperty("java.library.path"),
+ ClassLoader.getSystemClassLoader().getParent());
+ return sMediaUpdatable = (StaticProvider) classLoader.loadClass(UPDATE_CLASS)
+ .getMethod(UPDATE_METHOD, ApplicationInfo.class).invoke(null, ai);
}
}
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index 1d7234990ec1..5defd4a3ede6 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Private DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Kies private DNS-modus"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Af"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Outomaties"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Gasheernaam van private DNS-verskaffer"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Voer gasheernaam van DNS-verskaffer in"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Wys opsies vir draadlose skermsertifisering"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Moenie aktiwiteite behou nie"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Vernietig elke aktiwiteit sodra die gebruiker dit verlaat"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Agtergrondproses-limiet"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Wys alle ANRe"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Wys Program reageer nie-dialoog vir agtergrond programme"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Wys agtergrond-ANR\'e"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Wys Program Reageer Nie-dialoog vir agtergrondprogramme"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Wys kennisgewingkanaalwaarskuwings"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Wys waarskuwing op skerm wanneer \'n program \'n kennisgewing sonder \'n geldige kanaal plaas"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Programme verplig ekstern toegelaat"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Hierdie kenmerk is eksperimenteel en kan werkverrigting beïnvloed."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Geneutraliseer deur <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Omtrent <xliff:g id="TIME">%1$s</xliff:g> oor"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Omtrent <xliff:g id="TIME">%1$s</xliff:g> oor (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Ongeveer <xliff:g id="TIME">%1$s</xliff:g> oor gegrond op jou gebruik"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Omtrent <xliff:g id="TIME">%1$s</xliff:g> oor op grond van jou gebruik (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> oor"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Sal op grond van jou gebruik (<xliff:g id="LEVEL">%2$s</xliff:g>) hou tot omtrent <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Sal op grond van jou gebruik hou tot omtrent <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Sal hou tot omtrent <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Sal hou tot omtrent <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Minder as <xliff:g id="THRESHOLD">%1$s</xliff:g> oor"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Minder as <xliff:g id="THRESHOLD">%1$s</xliff:g> oor (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Meer as <xliff:g id="TIME_REMAINING">%1$s</xliff:g> oor (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Meer as <xliff:g id="TIME_REMAINING">%1$s</xliff:g> oor"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Foon kan binnekort afgaan"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet kan binnekort afgaan"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Toestel kan binnekort afgaan"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Foon kan binnekort afgaan (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet kan binnekort afgaan (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Toestel kan binnekort afgaan (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> oor tot vol gelaai"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> tot vol gelaai"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Meer tyd."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Minder tyd."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Skakel aan"</string>
<string name="cancel" msgid="6859253417269739139">"Kanselleer"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Skakel aan"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Skakel Moenie steur nie aan"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nooit"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Net prioriteit"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Jy sal nie jou volgende wekker om <xliff:g id="WHEN">%1$s</xliff:g> hoor nie"</string>
<string name="alarm_template" msgid="4996153414057676512">"om <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"op <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Tydsduur"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Vra elke keer"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index a8b48aa3d51c..1dbf60b1366d 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"የግል ዲኤንኤስ"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"የግል ዲኤንኤስ ሁነታ ይምረጡ"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"ጠፍቷል"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"ራስ-ሰር"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"የግል ዲኤንኤስ አቅራቢ አስተናጋጅ ስም"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"የዲኤንኤስ አቅራቢ አስተናጋጅ ስም ያስገቡ"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"የገመድ አልባ ማሳያ እውቅና ማረጋገጫ አማራጮችን አሳይ"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"እንቅስቃሴዎችን አትጠብቅ"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"ተጠቃሚው እስኪተወው ድረስ እያንዳንዱን እንቅስቃሴ አስወግድ"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"የዳራ አሂድ ወሰን"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"ሁሉንም ANRs አሳይ"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"ለዳራ መተግበሪያዎች ምላሽ የማይሰጥ መገናኛ ትግበራ አሳይ"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"የጀርባ ኤኤንአሮችን አሳይ"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"ለጀርባ መተግበሪያዎች የመተግበሪያ ምላሽ አይሰጥም መገናኛን አሳይ"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"የማሳወቂያ ሰርጥ ማስጠንቀቂያዎችን አሳይ"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"አንድ መተግበሪያ የሚሰራ ሰርጥ ሳይኖረው ማሳወቂያ ሲለጥፍ በማያ ገጽ-ላይ ማስጠንቀቂያን ያሳያል"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"በውጫዊ ላይ ሃይል ይፈቀዳል"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"ይህ ባህሪ የሙከራ ነውና አፈጻጸም ላይ ተጽዕኖ ሊኖረው ይችላል።"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"በ<xliff:g id="TITLE">%1$s</xliff:g> ተሽሯል"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"<xliff:g id="TIME">%1$s</xliff:g> አካባቢ ቀርቷል"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"<xliff:g id="TIME">%1$s</xliff:g> ገደማ ቀርቷል (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"በእርስዎ አጠቃቀም ላይ በመመስረት <xliff:g id="TIME">%1$s</xliff:g> ገደማ ቀርቷል"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"በአጠቃቀምዎ (<xliff:g id="LEVEL">%2$s</xliff:g>) መሠረት <xliff:g id="TIME">%1$s</xliff:g> ገደማ ቀርቷል"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> ቀርቷል"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"በአጠቃቀምዎ መሠረት እስከ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) ገደማ ይቆያል"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"በአጠቃቀምዎ መሠረት እስከ <xliff:g id="TIME">%1$s</xliff:g> ገደማ ይቆያል"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"እስከ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) ገደማ ይቆያል"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"እስከ <xliff:g id="TIME">%1$s</xliff:g> ገደማ ይቆያል"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"ከ<xliff:g id="THRESHOLD">%1$s</xliff:g> ያነሰ ይቀራል"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"ከ<xliff:g id="THRESHOLD">%1$s</xliff:g> ያነሰ ይቀራል (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"ከ<xliff:g id="TIME_REMAINING">%1$s</xliff:g> በላይ ይቀራል (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"ከ<xliff:g id="TIME_REMAINING">%1$s</xliff:g> በላይ ይቀራል"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ስልኩ በቅርቡ ሊዘጋ ይችላል"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ጡባዊው በቅርቡ ሊዘጋ ይችላል"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"መሣሪያው በቅርቡ ሊዘጋ ይችላል"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ስልኩ በቅርቡ ሊዘጋ ይችላል (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ጡባዊው በቅርቡ ሊዘጋ ይችላል (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"መሣሪያው በቅርቡ ሊዘጋ ይችላል (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"ሙሉ ኃይል እስኪሞላ ድረስ <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - ሙሉ ለሙሉ እስኪሞላ ድረስ <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"ተጨማሪ ጊዜ።"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"ያነሰ ጊዜ።"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"አብራ"</string>
<string name="cancel" msgid="6859253417269739139">"ይቅር"</string>
+ <string name="okay" msgid="1997666393121016642">"እሺ"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"አብራ"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"አትረብሽን አብራ"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"በጭራሽ"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"ቅድሚያ የሚሰጠው ብቻ"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"የእርስዎን ቀጣይ ማንቂያ <xliff:g id="WHEN">%1$s</xliff:g> አይሰሙም"</string>
<string name="alarm_template" msgid="4996153414057676512">"በ<xliff:g id="WHEN">%1$s</xliff:g> ላይ"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"በ<xliff:g id="WHEN">%1$s</xliff:g> ላይ"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"የቆይታ ጊዜ"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ሁልጊዜ ጠይቅ"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 7f4d64366cf7..ba31973059a5 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"نظام أسماء النطاقات الخاص"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"اختر وضع نظام أسماء النطاقات الخاص"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"غير مفعّل"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"آلي"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"اسم مضيف مزوّد نظام أسماء النطاقات الخاص"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"أدخل اسم مضيف مزوّد نظام أسماء النطاقات"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"عرض خيارات شهادة عرض شاشة لاسلكي"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"عدم الاحتفاظ بالأنشطة"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"مسح كل نشاط فور مغادرة المستخدم له"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"حد العمليات بالخلفية"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"‏عرض جميع رسائل ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"عرض مربع الحوار \"التطبيق لا يستجيب\" مع تطبيقات الخلفية"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"‏عرض أخطاء ANR في الخلفية"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"عرض مربع الحوار \"التطبيق لا يستجيب\" مع تطبيقات الخلفية"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"عرض تحذيرات قناة الإشعار"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"لعرض تحذير على الشاشة عند نشر تطبيق ما لإشعار بدون قناة صالحة"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"فرض السماح للتطبيقات على الخارجي"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"هذه الميزة تجريبية وقد تؤثر في الأداء."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"تم الاستبدال بـ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"يتبقى حوالي <xliff:g id="TIME">%1$s</xliff:g> لإتمام شحن البطارية"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"يتبقى <xliff:g id="TIME">%1$s</xliff:g> تقريبًا (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"يتبقى <xliff:g id="TIME">%1$s</xliff:g> تقريبًا بناءً على استخدامك"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"يتبقى <xliff:g id="TIME">%1$s</xliff:g> تقريبًا، بناءً على استخدامك (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"يتبقى <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"سيعمل حتى <xliff:g id="TIME">%1$s</xliff:g> تقريبًا، بناءً على استخدامك (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"سيعمل حتى <xliff:g id="TIME">%1$s</xliff:g> تقريبًا، بناءً على استخدامك."</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"سيعمل حتى <xliff:g id="TIME">%1$s</xliff:g> تقريبًا (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"سيعمل حتى <xliff:g id="TIME">%1$s</xliff:g> تقريبًا."</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"يتبقى أقل من <xliff:g id="THRESHOLD">%1$s</xliff:g>."</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"يتبقى أقل من <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"يتبقى أكثر من <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"يتبقى أكثر من <xliff:g id="TIME_REMAINING">%1$s</xliff:g>."</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"قد يتم إغلاق الهاتف بعد قليل."</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"قد يتم إغلاق الجهاز اللوحي بعد قليل."</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"قد يتم إغلاق الجهاز بعد قليل."</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"قد يتم إغلاق الهاتف بعد قليل (<xliff:g id="LEVEL">%1$s</xliff:g>)."</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"قد يتم إغلاق الجهاز اللوحي بعد قليل (<xliff:g id="LEVEL">%1$s</xliff:g>)."</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"قد يتم إغلاق الجهاز بعد قليل (<xliff:g id="LEVEL">%1$s</xliff:g>)."</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"يتبقى <xliff:g id="TIME">%1$s</xliff:g> لشحن البطارية بالكامل"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> حتى يكتمل الشحن"</string>
@@ -444,8 +428,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"وقت أكثر."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"وقت أقل."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"تشغيل"</string>
<string name="cancel" msgid="6859253417269739139">"إلغاء"</string>
+ <string name="okay" msgid="1997666393121016642">"موافق"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"تشغيل"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"تشغيل وضع \"الرجاء عدم الإزعاج\""</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"مطلقًا"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"الأولوية فقط"</string>
@@ -454,4 +439,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"لن تسمع المنبه القادم في <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"الساعة <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"يوم <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"المدة"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"الطلب في كل مرة"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index 2d235dd0b9b4..14d809fe55b5 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Şəxsi DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Şəxsi DNS Rejimini Seçin"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Deaktiv"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Avtomatik"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Şəxsi DNS provayderinin host adı"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS provayderinin host adını daxil edin"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Simsiz displey sertifikatlaşması üçün seçimləri göstərir"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Fəaliyyətləri saxlamayın"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"İstifadəçinin tərk etdiyi hər fəaliyyəti dərhal məhv et"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Fon prosesi limiti"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Bütün ANRları göstər"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Arxa tətbiqlər dialoquna cavab verməyən tətbiqi göstər"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Arxa fon ANR-lərini göstərin"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Arxa fon tətbiqləri üçün Tətbiq Cavab Vermir dialoqunu göstərin"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Xəbərdarlıqları göstərin"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Bildiriş paylaşıldıqda xəbərdarlıq göstərir"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Tətbiqlərə xaricdən məcburi icazə"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Bu funksiya eksperimentaldır və performansa təsir edə bilər."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> tərəfindən qəbul edilmir"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Təxminən <xliff:g id="TIME">%1$s</xliff:g> qalıb"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Təxminən <xliff:g id="TIME">%1$s</xliff:g> qalıb (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"İstifadəyə əsasən təxminən <xliff:g id="TIME">%1$s</xliff:g> qalıb"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"İstifadənizə <xliff:g id="LEVEL">%2$s</xliff:g> əsasən təxminən <xliff:g id="TIME">%1$s</xliff:g> qalıb"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> qalıb"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"İstifadəyə (<xliff:g id="LEVEL">%2$s</xliff:g>) əsasən təxminən <xliff:g id="TIME">%1$s</xliff:g> davam edəcək"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"İstifadəyə əsasən təxminən <xliff:g id="TIME">%1$s</xliff:g> davam edəcək"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Təxminən <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) davam edəcək"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Təxminən <xliff:g id="TIME">%1$s</xliff:g> davam edəcək"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Qalan vaxt <xliff:g id="THRESHOLD">%1$s</xliff:g> və daha azdır"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Qalan vaxt <xliff:g id="THRESHOLD">%1$s</xliff:g> və daha azdır (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Qalan vaxt <xliff:g id="TIME_REMAINING">%1$s</xliff:g> və daha çoxdur (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Qalan vaxt <xliff:g id="TIME_REMAINING">%1$s</xliff:g> və daha çoxdur"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon tezliklə sönə bilər"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Planşet tezliklə sönə bilər"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Cihaz tezliklə sönə bilər"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon tezliklə sönə bilər(<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Planşet tezliklə sönə bilər (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Cihaz tezliklə sönə bilər (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Tam enerji yığmağına <xliff:g id="TIME">%1$s</xliff:g> qalıb"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> tam enerji yığana kimi"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Daha çox vaxt."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Daha az vaxt."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktiv edin"</string>
<string name="cancel" msgid="6859253417269739139">"Ləğv et"</string>
+ <string name="okay" msgid="1997666393121016642">"Ok"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktiv edin"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"\"Narahat Etməyin\" rejimini aktiv edin"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Heç vaxt"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Yalnız prioritet"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"<xliff:g id="WHEN">%1$s</xliff:g> olduqda növbəti xəbərdarlığınızı eşitməyəcəksiniz"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g> olduqda"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g> olduqda"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Müddət"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Hər dəfə soruşun"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index 1ea793127918..0e194b4c4143 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privatni DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Izaberite režim privatnog DNS-a"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Isključeno"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatski"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Ime hosta dobavljača usluge privatnog DNS-a"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Unesite ime hosta dobavljača usluge DNS-a"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Prikaz opcija za sertifikaciju bežičnog ekrana"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Ne čuvaj aktivnosti"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Uništi svaku aktivnost čim je korisnik napusti"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Ograničenje pozadinskih procesa"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Prikaži sve ANR-ove"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Prikaži dijalog Aplikacija ne reaguje za aplikacije u pozadini"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Prikaži ANR-ove u pozad."</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Prikaži dijalog Aplikacija ne reaguje za aplikacije u pozadini"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Prikazuj upozorenja zbog kanala za obaveštenja"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Prikazuje upozorenje na ekranu kada aplikacija postavi obaveštenje bez važećeg kanala"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Prinudno dozvoli aplikacije u spoljnoj"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ova funkcija je eksperimentalna i može da utiče na kvalitet rada."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Zamenjuje ga <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Još oko <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Još približno <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Na osnovu potrošnje imate još otprilike <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Na osnovu korišćenja imate još približno <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Preostalo vreme: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Na osnovu korišćenja trajaće približno do TIME <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Na osnovu korišćenja trajaće približno do <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Trajaće približno do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Trajaće približno do <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon će se uskoro isključiti"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet će se uskoro isključiti"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Uređaj će se uskoro isključiti"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon će se uskoro isključiti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet će se uskoro isključiti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Uređaj će se uskoro isključiti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> do potpunog punjenja"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> do potpunog punjenja"</string>
@@ -441,8 +425,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Više vremena."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Manje vremena."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Uključi"</string>
<string name="cancel" msgid="6859253417269739139">"Otkaži"</string>
+ <string name="okay" msgid="1997666393121016642">"Potvrdi"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Uključi"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Uključite režim Ne uznemiravaj"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nikad"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Samo prioritetni prekidi"</string>
@@ -451,4 +436,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Nećete čuti sledeći alarm u <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"u <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Trajanje"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Uvek pitaj"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index 23a785c3d686..edbbf412a558 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Прыватная DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Выберыце рэжым прыватнай DNS"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Выключана"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Аўтаматычна"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Імя вузла аператара прыватнай DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Увядзіце імя вузла аператара DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Паказаць опцыі сертыфікацыі бесправаднога дысплея"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Не захоўваць дзеянні"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Знішч. кож.дзеянне, як толькі карыст.пакідае яго"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Ліміт фонавага працэсу"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Паказаць усе ANRS"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Паказаць дыялогавае акно \"Праграма не адказвае\" для фонавых прыкладанняў"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Памылкі ANR"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Паведамляць аб тым, што праграма не адказвае"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Паказваць папярэджанні канала апавяшчэннаў"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Паказвае папярэджанне на экране, калі праграма публікуе апавяшчэнне без сапраўднага канала"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Прымусова дазволіць праграмы на вонкавым сховішчы"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Гэта функцыя з\'яўляецца эксперыментальнай і можа паўплываць на прадукцыйнасць."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Перавызначаны <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Засталося каля <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Зараду (<xliff:g id="LEVEL">%2$s</xliff:g>) хопіць прыблізна да <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Засталося каля <xliff:g id="TIME">%1$s</xliff:g> на аснове вашага выкарыстання"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Зараду (<xliff:g id="LEVEL">%2$s</xliff:g>) хопіць на <xliff:g id="TIME">%1$s</xliff:g> пры цяперашнім узроўні выкарыстання"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Засталося <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Зараду хопіць прыблізна да <xliff:g id="TIME">%1$s</xliff:g> пры цяперашнім узроўні выкарыстання (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Зараду хопіць прыблізна да <xliff:g id="TIME">%1$s</xliff:g> пры цяперашнім узроўні выкарыстання"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Зараду (<xliff:g id="LEVEL">%2$s</xliff:g>) хопіць прыблізна да <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Зараду хопіць да <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Засталося менш за <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Узровень зараду батарэі: <xliff:g id="LEVEL">%2$s</xliff:g> (хопіць менш чым на <xliff:g id="THRESHOLD">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Узровень зараду батарэі: <xliff:g id="LEVEL">%2$s</xliff:g> (хопіць больш чым на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Хопіць больш чым на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Тэлефон у хуткім часе спыніць працу"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Планшэт у хуткім часе спыніць працу"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Прылада ў хуткім часе спыніць працу"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Узровень зараду батарэі: <xliff:g id="LEVEL">%1$s</xliff:g>. Тэлефон хутка спыніць працу."</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Узровень зараду батарэі: <xliff:g id="LEVEL">%1$s</xliff:g>. Планшэт хутка спыніць працу."</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Узровень зараду батарэі: <xliff:g id="LEVEL">%1$s</xliff:g>. Прылада хутка спыніць працу."</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Да поўнай зарадкі засталося <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> да поўнай зарадкі"</string>
@@ -442,8 +426,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Больш часу."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Менш часу."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Уключыць"</string>
<string name="cancel" msgid="6859253417269739139">"Скасаваць"</string>
+ <string name="okay" msgid="1997666393121016642">"ОК"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Уключыць"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Уключэнне рэжыму \"Не турбаваць\""</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Ніколі"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Толькі прыярытэтныя"</string>
@@ -452,4 +437,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Наступны будзільнік не зазвініць: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"у <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"у <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Працягласць"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Заўсёды пытацца"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index 5cd345a2d06f..efdf760634df 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Частен DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Изберете режим на частния DNS"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Изкл."</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Автоматично"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Име на хоста на доставчика на частния DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Въведете името на хоста на DNS доставчика"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Показване на опциите за сертифициране на безжичния дисплей"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Без съхран. на дейностите"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Унищож. на всяка дейност при напускане от потребител"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Лимит за фонови процеси"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Всички нереагиращи прил."</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Диалог. прозорец „НП“ за приложения на заден план"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"ANR на заден план"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Показване на диалоговия прозорец за грешки от типа ANR за приложенията на заден план"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Предупрежд. за канала за известия"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Показва се предупреждение, когато приложение публикува известие без валиден канал"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Външно хран.: Принуд. разрешаване на приложенията"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Тази функция е експериментална и може да се отрази на ефективността."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Заменено от „<xliff:g id="TITLE">%1$s</xliff:g>“"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Оставащо време: около <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Още около <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Още около <xliff:g id="TIME">%1$s</xliff:g> въз основа на използването"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Още около <xliff:g id="TIME">%1$s</xliff:g> въз основа на използването (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Оставащо време: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Ще издържи приблизително до <xliff:g id="TIME">%1$s</xliff:g> въз основа на употребата (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Ще издържи приблизително до <xliff:g id="TIME">%1$s</xliff:g> въз основа на употребата"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Ще издържи приблизително до <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Ще издържи приблизително до <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Остава/т по-малко от <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Остава/т по-малко от <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Остава/т повече от <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Остава/т повече от <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Възможно е телефонът да се изключи скоро"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Възможно е таблетът да се изключи скоро"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Възможно е устройството да се изключи скоро"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Възможно е телефонът да се изключи скоро (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Възможно е таблетът да се изключи скоро (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Възможно е устройството да се изключи скоро (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Оставащо време до пълно зареждане: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> до пълно зареждане"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Повече време."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"По-малко време."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Включване"</string>
<string name="cancel" msgid="6859253417269739139">"Отказ"</string>
+ <string name="okay" msgid="1997666393121016642">"ОK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Включване"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Включване на режима „Не безпокойте“"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Никога"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Само с приоритет"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Няма да чуете следващия си будилник в <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"в <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"в/ъв <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Времетраене"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Да се пита винаги"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index 1e56cf644e98..691ffb4f27bd 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"ব্যক্তিগত ডিএনএস"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"ব্যক্তিগত ডিএনএস মোড বেছে নিন"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"বন্ধ আছে"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"অটোমেটিক"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"ব্যক্তিগত ডিএনএস প্রদানকারীর হোস্টনেম"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"ডিএনএস প্রদানকারীর হোস্টনেম লিখুন"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"ওয়্যারলেস প্রদর্শন সার্টিফিকেশন জন্য বিকল্পগুলি দেখান"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"কার্যকলাপ রাখবেন না"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"ব্যবহারকারী এটি ছেড়ে যাওয়ার পরে যত তাড়াতাড়ি সম্ভব প্রতিটি কার্যকলাপ ধ্বংস করুন"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"পশ্চাদপট প্রক্রিয়ার সীমা"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"সব ANR দেখান"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"পশ্চাদপটের অ্যাপ্লিকেশানগুলির জন্য অ্যাপ্লিকেশান কোনো প্রতিক্রিয়া দিচ্ছে না এমন কথোপকথন দেখান"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"ব্যাকগ্রাউন্ডের ANR দেখুন"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"ব্যাকগ্রাউন্ডের অ্যাপগুলির জন্য \'অ্যাপ থেকে সাড়া পাওয়া যাচ্ছে না\' মেসেজ দেখান"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"বিজ্ঞপ্তির সতর্কতা দেখুন"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"অ্যাপ সঠিক চ্যানেল ছাড়া বিজ্ঞপ্তি দেখালে সতর্ক করে"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"বহিরাগততে বলপূর্বক মঞ্জুরি"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"এই বৈশিষ্ট্যটি পরীক্ষামূলক এবং এটি কার্য-সম্পাদনা প্রভাবিত করতে পারে।"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> এর দ্বারা ওভাররাইড করা হয়েছে"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"প্রায় <xliff:g id="TIME">%1$s</xliff:g> বাকি"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"আর <xliff:g id="TIME">%1$s</xliff:g> চলবে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"বর্তমান ব্যাটারি ব্যবহার অনুযায়ী আর <xliff:g id="TIME">%1$s</xliff:g> বাকি"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"বর্তমান ব্যবহার অনুযায়ী আর আনুমানিক <xliff:g id="TIME">%1$s</xliff:g> চলবে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> বাকী আছে"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"বর্তমান ব্যবহার অনুযায়ী আর আনুমানিক <xliff:g id="TIME">%1$s</xliff:g> চলবে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"বর্তমান ব্যবহার অনুযায়ী আর আনুমানিক <xliff:g id="TIME">%1$s</xliff:g> চলবে"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"আর আনুমানিক <xliff:g id="TIME">%1$s</xliff:g> চলবে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"আর আনুমানিক <xliff:g id="TIME">%1$s</xliff:g> চলবে"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> এর থেকেও কম বাকি আছে"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"আর <xliff:g id="THRESHOLD">%1$s</xliff:g>-এর কম চার্জ বাকি আছে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"আরও <xliff:g id="TIME_REMAINING">%1$s</xliff:g>-এর বেশি চলবে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"আরও <xliff:g id="TIME_REMAINING">%1$s</xliff:g>-এর বেশি চলবে"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ফোনটি শীঘ্রই বন্ধ হয়ে যেতে পারে"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ট্যাবলেটটি শীঘ্রই বন্ধ হয়ে যেতে পারে"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"ডিভাইসটি শীঘ্রই বন্ধ হয়ে যেতে পারে"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ফোনটি শীঘ্রই বন্ধ হয়ে যেতে পারে (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ট্যাবলেটটি শীঘ্রই বন্ধ হয়ে যেতে পারে (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"ডিভাইসটি শীঘ্রই বন্ধ হয়ে যেতে পারে (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"সম্পূর্ণ চার্জ হতে <xliff:g id="TIME">%1$s</xliff:g> বাকি"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - সম্পূর্ণ চার্জ হতে <xliff:g id="TIME">%2$s</xliff:g> লাগবে"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"আরও বেশি।"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"আরও কম।"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"চালু করুন"</string>
<string name="cancel" msgid="6859253417269739139">"বাতিল"</string>
+ <string name="okay" msgid="1997666393121016642">"ঠিক আছে"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"চালু করুন"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"\'বিরক্ত করবেন না\' মোড চালু করুন"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"কখনও নয়"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"শুধুমাত্র অগ্রাধিকার"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"<xliff:g id="WHEN">%1$s</xliff:g> এর সময় আপনার পরবর্তী অ্যালার্ম শুনতে পাবেন না"</string>
<string name="alarm_template" msgid="4996153414057676512">"সময় <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"তারিখ ও সময় <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"সময়কাল"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"প্রতিবার জিজ্ঞেস করা হবে"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index 3c09c9df7631..8fadbce03e48 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privatni DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Odaberite način rada privatnog DNS-a"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Isključeno"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatski"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Naziv host računara privatnog DNS-a"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Unesite naziv host računara pružaoca DNS-a"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Pokaži opcije za certifikaciju Bežičnog prikaza"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Ne čuvaj aktivnosti"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Obustavi svaku aktivnosti čim je korisnik napusti"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Ograničenje procesa u pozadini"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Prikaži sve ANR-ove"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Prik. dijalog Aplikacija ne reagira za apl. u poz."</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Prikaži ANR-e u pozadini"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Prikaži dijalog \"Aplikacija ne reagira\" za aplikacije pokrenute u pozadini"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Prikaz upozorenja na obavještenju o kanalu"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Prikaz upozorenja ekranu kada aplikacija pošalje obavještenje bez važećeg kanala."</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Nametni aplikacije na vanjskoj pohrani"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ova funkcija je eksperimentalna i može uticati na performanse."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Zamjenjuje <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Preostalo je otprilike još <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Preostalo je još oko <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Preostalo je još oko <xliff:g id="TIME">%1$s</xliff:g>, na osnovu vašeg korištenja"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Preostalo je još oko <xliff:g id="TIME">%1$s</xliff:g> na osnovu vaše upotrebe (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Imate još <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Trajat će otprilike do <xliff:g id="TIME">%1$s</xliff:g> na osnovu vaše upotrebe (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Trajat će otprilike do <xliff:g id="TIME">%1$s</xliff:g> na osnovu vaše upotrebe"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Trajat će otprilike do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Trajat će otprilike do <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Preostalo je više od: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon će se uskoro isključiti"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet će se uskoro isključiti"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Uređaj će se uskoro isključiti"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon će se uskoro isključiti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet će se uskoro isključiti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Uređaj će se uskoro isključiti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Još <xliff:g id="TIME">%1$s</xliff:g> do potpune napunjenosti"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> do potpune napunjenosti"</string>
@@ -441,8 +425,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Više vremena."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Manje vremena."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Uključi"</string>
<string name="cancel" msgid="6859253417269739139">"Otkaži"</string>
+ <string name="okay" msgid="1997666393121016642">"Uredu"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Uključi"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Uključi način rada Ne ometaj"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nikada"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Samo prioriteti"</string>
@@ -451,4 +436,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Nećete čuti sljedeći alarm u <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"u <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"u <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Trajanje"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Pitaj svaki put"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index 545dc10e7770..69a368bcbecd 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS privat"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Selecciona el mode de DNS privat"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Desactivat"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automàtic"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nom d\'amfitrió del proveïdor de DNS privat"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Introdueix el nom d\'amfitrió del proveïdor de DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Mostra les opcions de certificació de pantalla sense fil"</string>
@@ -282,7 +281,7 @@
<string name="disable_overlays" msgid="2074488440505934665">"Desactiva superposicions HW"</string>
<string name="disable_overlays_summary" msgid="3578941133710758592">"Utilitza sempre GPU per combinar pantalles"</string>
<string name="simulate_color_space" msgid="6745847141353345872">"Simula l\'espai de color"</string>
- <string name="enable_opengl_traces_title" msgid="6790444011053219871">"Activa seguiment d\'OpenGL"</string>
+ <string name="enable_opengl_traces_title" msgid="6790444011053219871">"Activa traces d\'OpenGL"</string>
<string name="usb_audio_disable_routing" msgid="8114498436003102671">"Desactiva l\'encaminament d\'àudio USB"</string>
<string name="usb_audio_disable_routing_summary" msgid="980282760277312264">"Desactiva l\'encaminament automàtic als perifèrics d\'àudio USB"</string>
<string name="debug_layout" msgid="5981361776594526155">"Mostra límits de disseny"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Destrueix activitats"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Destrueix activitats quan l\'usuari deixi d\'utilitzar-les"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Límita processos en segon pla"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Tots els errors sense resposta"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Informa que una aplicació en segon pla no respon"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Mostra ANR en segon pla"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Informa que una aplicació en segon pla no respon"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Mostra avisos del canal de notificacions"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Mostra un avís a la pantalla quan una aplicació publica una notificació sense un canal vàlid"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Força permís d\'aplicacions a l\'emmagatzem. extern"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Aquesta funció és experimental i pot afectar el rendiment."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"S\'ha substituït per <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Temps restant aproximat: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Temps restant aproximat: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Temps restant aproximat segons l\'ús que en fas: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Temps restant aproximat segons l\'ús que en fas: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Temps restant: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
- <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Queda menys d\'un <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"La bateria durarà aproximadament fins a les <xliff:g id="TIME">%1$s</xliff:g> segons l\'ús que en fas (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"La bateria durarà aproximadament fins a les <xliff:g id="TIME">%1$s</xliff:g> segons l\'ús que en fas"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"La bateria durarà aproximadament fins a les <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"La bateria durarà aproximadament fins a les <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Temps restant inferior a <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Temps restant inferior a <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Temps restant superior a <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Temps restant superior a <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"És possible que el telèfon s\'apagui aviat"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"És possible que la tauleta s\'apagui aviat"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"És possible que el dispositiu s\'apagui aviat"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"És possible que el telèfon s\'apagui aviat (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"És possible que la tauleta s\'apagui aviat (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"És possible que el dispositiu s\'apagui aviat (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g>: <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> per completar la càrrega"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g>: <xliff:g id="TIME">%2$s</xliff:g> per completar la càrrega"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Més temps"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Menys temps"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activa"</string>
<string name="cancel" msgid="6859253417269739139">"Cancel·la"</string>
+ <string name="okay" msgid="1997666393121016642">"D\'acord"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activa"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Activa el mode No molestis"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Mai"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Només amb prioritat"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"No sentiràs la pròxima alarma (<xliff:g id="WHEN">%1$s</xliff:g>)"</string>
<string name="alarm_template" msgid="4996153414057676512">"Hora: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"Data: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Durada"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Pregunta sempre"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index 98455ddd3f63..594ea3b26f29 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Soukromé DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Vyberte soukromý režim DNS"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Vypnuto"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automaticky"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Název hostitele poskytovatele soukromého DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Zadejte název hostitele poskytovatele DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Zobrazit možnosti certifikace bezdrátového displeje"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Neukládat aktivity"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Rušit všechny činnosti, jakmile je uživatel zavře"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Omezení procesů na pozadí"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Zobrazit všechny ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Zobrazovat dialog „Aplikace neodpovídá“ pro aplikace na pozadí"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Zobrazovat ANR na pozadí"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Zobrazovat dialog „Aplikace neodpovídá“ pro aplikace na pozadí"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Zobrazovat upozornění ohledně kanálu oznámení"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Když aplikace odešle oznámení bez platného kanálu, na obrazovce se zobrazí upozornění"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Vynutit povolení aplikací na externím úložišti"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Funkce je experimentální a může mít vliv na výkon."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Přepsáno nastavením <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Zbývá asi <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Zbývá asi <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Při vašem obvyklém využití zbývá asi <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Při vašem obvyklém využití (<xliff:g id="LEVEL">%2$s</xliff:g>) zbývá asi <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Zbývající čas: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Při vašem obvyklém využití (<xliff:g id="LEVEL">%2$s</xliff:g>) vydrží asi do <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Při vašem obvyklém využití vydrží asi do <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Vydrží asi do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Vydrží asi do <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Zbývá méně než <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Zbývá méně než <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Zbývá více než <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Zbývá více než <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon se brzy vypne"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet se brzy vypne"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Zařízení se brzy vypne"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon se brzy vypne (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet se brzy vypne (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Zařízení se brzy vypne (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Plně se nabije za <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – plně se nabije za <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -442,8 +426,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Delší doba"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Kratší doba"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Zapnout"</string>
<string name="cancel" msgid="6859253417269739139">"Zrušit"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Zapnout"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Zapněte funkci Nerušit"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nikdy"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Pouze prioritní"</string>
@@ -452,4 +437,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Svůj další budík <xliff:g id="WHEN">%1$s</xliff:g> neuslyšíte"</string>
<string name="alarm_template" msgid="4996153414057676512">"v <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"v <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Trvání"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Pokaždé se zeptat"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index 291d4abc4006..942847da6d27 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privat DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Vælg privat DNS-tilstand"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Fra"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatisk"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Hostname for privat DNS-udbyder"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Angiv hostname for DNS-udbyder"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Vis valgmuligheder for certificering af trådløs skærm"</string>
@@ -244,7 +243,7 @@
<string name="adb_warning_message" msgid="7316799925425402244">"USB-fejlretning er kun beregnet til udvikling og kan bruges til at kopiere data mellem din computer og enheden, installere apps på enheden uden underretning og læse logdata."</string>
<string name="adb_keys_warning_message" msgid="5659849457135841625">"Vil du ophæve adgangen til USB-fejlfinding for alle computere, du tidligere har godkendt?"</string>
<string name="dev_settings_warning_title" msgid="7244607768088540165">"Vil du tillade udviklingsindstillinger?"</string>
- <string name="dev_settings_warning_message" msgid="2298337781139097964">"Disse indstillinger er kun beregnet til brug i forbindelse med udvikling. De kan forårsage, at din enhed og dens applikationer går ned eller ikke fungerer korrekt."</string>
+ <string name="dev_settings_warning_message" msgid="2298337781139097964">"Disse indstillinger er kun beregnet til brug i forbindelse med udvikling. De kan forårsage, at din enhed og dens apps går ned eller ikke fungerer korrekt."</string>
<string name="verify_apps_over_usb_title" msgid="4177086489869041953">"Verificer apps via USB"</string>
<string name="verify_apps_over_usb_summary" msgid="9164096969924529200">"Tjek apps, der er installeret via ADB/ADT, for skadelig adfærd."</string>
<string name="bluetooth_show_devices_without_names_summary" msgid="2351196058115755520">"Bluetooth-enheder uden navne (kun MAC-adresser) vises"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Behold ikke aktiviteter"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Luk hver aktivitet, så snart brugeren forlader den"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Grænse for baggrundsprocesser"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Vis alle \"Appen svarer ikke\""</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Vis \"Appen svarer ikke\" for baggrundsapps"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Vis ANR-fejl i baggrunden"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Vis dialogboksen \"Appen svarer ikke\" for baggrundsapps"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Vis advarsler om underretningskanal"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Viser en advarsel, når en app sender en underretning uden en gyldig kanal"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Gennemtving tilladelse til eksternt lager"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Denne funktion er eksperimentel og kan påvirke ydeevnen."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Tilsidesat af <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Ca. <xliff:g id="TIME">%1$s</xliff:g> tilbage"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Ca. <xliff:g id="TIME">%1$s</xliff:g> tilbage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Der er ca. <xliff:g id="TIME">%1$s</xliff:g> tilbage, alt efter hvordan du bruger enheden"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Ca. <xliff:g id="TIME">%1$s</xliff:g> tilbage, alt efter hvordan du bruger enheden (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> tilbage"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Batteriet kan holde indtil ca. <xliff:g id="TIME">%1$s</xliff:g> baseret på dit forbrug (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Batteriet kan holde indtil ca. <xliff:g id="TIME">%1$s</xliff:g> baseret på dit forbrug"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Batteriet kan holde indtil ca. <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Batteriet kan holde indtil ca. <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Der er mindre end <xliff:g id="THRESHOLD">%1$s</xliff:g> tilbage"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Der er mindre end <xliff:g id="THRESHOLD">%1$s</xliff:g> tilbage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Der er mere end <xliff:g id="TIME_REMAINING">%1$s</xliff:g> tilbage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Der er mere end <xliff:g id="TIME_REMAINING">%1$s</xliff:g> tilbage"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefonen lukker muligvis snart ned"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Denne tablet lukker muligvis snart ned"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Enheden lukker muligvis snart ned"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefonen lukker muligvis snart ned (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Denne tablet lukker muligvis snart ned (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Enheden lukker muligvis snart ned (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> til det er fuldt opladet"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> til det er fuldt opladet"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Mere tid."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Mindre tid."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktivér"</string>
<string name="cancel" msgid="6859253417269739139">"Annuller"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktivér"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Aktivér Forstyr ikke"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Aldrig"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Kun prioritet"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Du vil ikke kunne høre din næste alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"kl. <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"på <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Varighed"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Spørg hver gang"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index 84e33bc51ce3..d42e294c5a3a 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privates DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Privaten DNS-Modus auswählen"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Aus"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatisch"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Hostname des privaten DNS-Anbieters"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Hostname des DNS-Anbieters eingeben"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Optionen zur Zertifizierung für kabellose Übertragung anzeigen"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Aktionen nicht speichern"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Aktivität löschen, sobald der Nutzer diese beendet"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Hintergrundprozesslimit"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Alle ANRS anzeigen"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Dialogfeld \"App antwortet nicht\" für Hintergrund-Apps anzeigen"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Hintergrund-ANRs anzeigen"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Kleines Fenster \"App reagiert nicht\" für Hintergrund-Apps einblenden"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Warnungen für Benachrichtigungskanäle einblenden"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Blendet Warnungen auf dem Display ein, wenn eine App eine Benachrichtigung ohne gültigen Kanal sendet"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Externe Speichernutzung von Apps erlauben"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Hierbei handelt es sich um eine experimentelle Funktion, die sich auf die Leistung auswirken kann."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Außer Kraft gesetzt von \"<xliff:g id="TITLE">%1$s</xliff:g>\""</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Ca. <xliff:g id="TIME">%1$s</xliff:g> übrig"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Verbleibende Zeit: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Noch ca. <xliff:g id="TIME">%1$s</xliff:g>, basierend auf deiner Nutzung"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Noch ca. <xliff:g id="TIME">%1$s</xliff:g>, basierend auf deiner Nutzung (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Noch <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Reicht noch bis ca. <xliff:g id="TIME">%1$s</xliff:g>, basierend auf deiner Nutzung (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Reicht noch bis ca. <xliff:g id="TIME">%1$s</xliff:g>, basierend auf deiner Nutzung"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Reicht noch bis ca. <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Reicht noch bis ca. <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Weniger als <xliff:g id="THRESHOLD">%1$s</xliff:g> verbleibend"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Weniger als <xliff:g id="THRESHOLD">%1$s</xliff:g> verbleibend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mehr als <xliff:g id="TIME_REMAINING">%1$s</xliff:g> verbleibend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Mehr als <xliff:g id="TIME_REMAINING">%1$s</xliff:g> verbleibend"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Smartphone wird möglicherweise bald ausgeschaltet"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet wird möglicherweise bald ausgeschaltet"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Gerät wird möglicherweise bald ausgeschaltet"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Smartphone wird möglicherweise bald ausgeschaltet (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet wird möglicherweise bald ausgeschaltet (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Gerät wird möglicherweise bald ausgeschaltet (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> bis zur vollständigen Aufladung"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> bis vollständig geladen"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Mehr Zeit."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Weniger Zeit."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktivieren"</string>
<string name="cancel" msgid="6859253417269739139">"Abbrechen"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktivieren"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"\"Bitte nicht stören\" aktivieren"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nie"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Nur wichtige Unterbrechungen"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Du wirst deinen nächsten Weckruf <xliff:g id="WHEN">%1$s</xliff:g> nicht hören können"</string>
<string name="alarm_template" msgid="4996153414057676512">"um <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"am <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Dauer"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Jedes Mal fragen"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 55b01712b60d..1a86e33bf9d5 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Ιδιωτικό DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Επιλέξτε τη λειτουργία ιδιωτικού DNS"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Ανενεργή"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Αυτόματα"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Όνομα κεντρικού υπολογιστή παρόχου DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Εισαγάγετε το όνομα κεντρικού υπολογιστή του παρόχου DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Εμφάνιση επιλογών για πιστοποίηση ασύρματης οθόνης"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Μη διατήρ. δραστηριοτήτων"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Διαγραφή κάθε δραστηριότητας μετά τον τερματισμό"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Όριο διεργασ. παρασκηνίου"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Εμφάνιση όλων των ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Εμφ.του παραθ. \"Η εφαρμ.δεν αποκρ.\" για εφ.παρασκ."</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Εμφάνιση ANR παρασκηνίου"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Εμφάνιση του παραθύρου \"Η εφαρμογή δεν αποκρίνεται\" για εφαρμογές παρασκηνίου"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Εμφάνιση προειδοπ. καναλιού ειδοπ."</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Εμφανίζει προειδοποίηση όταν μια εφαρμογή δημοσιεύει ειδοποίηση χωρίς έγκυρο κανάλι"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Να επιτρέπονται υποχρεωτικά εφαρμογές σε εξωτ.συσ."</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Αυτή η λειτουργία είναι πειραματική και ενδεχομένως να επηρεάσει τις επιδόσεις."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Αντικαταστάθηκε από <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Απομένουν περίπου <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Απομένει/ουν περίπου <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Απομένει/ουν περίπου <xliff:g id="TIME">%1$s</xliff:g> με βάση τη χρήση σας"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Απομένει/ουν περίπου <xliff:g id="TIME">%1$s</xliff:g>, ανάλογα με τη χρήση σας (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Απομένει/ουν <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Θα διαρκέσει μέχρι τις <xliff:g id="TIME">%1$s</xliff:g> περίπου, ανάλογα με τη χρήση σας (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Θα διαρκέσει μέχρι τις <xliff:g id="TIME">%1$s</xliff:g> περίπου, ανάλογα με τη χρήση σας"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Θα διαρκέσει μέχρι τις <xliff:g id="TIME">%1$s</xliff:g> περίπου (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Θα διαρκέσει μέχρι τις <xliff:g id="TIME">%1$s</xliff:g> περίπου"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Απομένει/ουν λιγότερo/α από <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Απομένει/ουν λιγότερo/α από <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Απομένουν περισσότερα/ες από <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Απομένουν περισσότερα/ες από <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Το τηλέφωνο μπορεί να απενεργοποιηθεί σύντομα"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Το tablet μπορεί να απενεργοποιηθεί σύντομα"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Η συσκευή μπορεί να απενεργοποιηθεί σύντομα"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Το τηλέφωνο μπορεί να απενεργοποιηθεί σύντομα (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Το tablet μπορεί να απενεργοποιηθεί σύντομα (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Η συσκευή μπορεί να απενεργοποιηθεί σύντομα (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Απομένουν <xliff:g id="TIME">%1$s</xliff:g> έως την πλήρη φόρτιση"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> για πλήρη φόρτιση"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Περισσότερη ώρα."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Λιγότερη ώρα."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ενεργοποίηση"</string>
<string name="cancel" msgid="6859253417269739139">"Ακύρωση"</string>
+ <string name="okay" msgid="1997666393121016642">"ΟΚ"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ενεργοποίηση"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Ενεργοποίηση λειτουργίας \"Μην ενοχλείτε\""</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Ποτέ"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Μόνο προτεραιότητας"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Δεν θα ακούσετε το επόμενο ξυπνητήρι <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"στις <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"το/τη(ν) <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Διάρκεια"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Να ερωτώμαι κάθε φορά"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index 8ff83b04f91b..027f1c5d423d 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Private DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Select private DNS mode"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Off"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatic"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Private DNS provider hostname"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Enter hostname of DNS provider"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Show options for wireless display certification"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Don\'t keep activities"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Destroy every activity as soon as the user leaves it"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Background process limit"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Show all ANRs"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Show App Not Responding dialogue for background apps"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Show background ANRs"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Display App Not Responding dialogue for background apps"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Show notification channel warnings"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Displays on-screen warning when an app posts a notification without a valid channel"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Force allow apps on external"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"This feature is experimental and may affect performance."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Overridden by <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"About <xliff:g id="TIME">%1$s</xliff:g> left"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"About <xliff:g id="TIME">%1$s</xliff:g> left (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"About <xliff:g id="TIME">%1$s</xliff:g> left based on your usage"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"About <xliff:g id="TIME">%1$s</xliff:g> left based on your usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> left"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Will last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Phone may shutdown soon"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet may shutdown soon"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Device may shutdown soon"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Phone may shutdown soon (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet may shutdown soon (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Device may shutdown soon (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> left until fully charged"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> until fully charged"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"More time."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Less time."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Turn on"</string>
<string name="cancel" msgid="6859253417269739139">"Cancel"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Turn on"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Turn on Do Not Disturb"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Never"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Priority only"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"You won\'t hear your next alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"at <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"on <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duration"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Ask every time"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml
index 0f8152f389c2..027f1c5d423d 100644
--- a/packages/SettingsLib/res/values-en-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-en-rCA/strings.xml
@@ -304,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Don\'t keep activities"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Destroy every activity as soon as the user leaves it"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Background process limit"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Show all ANRs"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Show App Not Responding dialogue for background apps"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Show background ANRs"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Display App Not Responding dialogue for background apps"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Show notification channel warnings"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Displays on-screen warning when an app posts a notification without a valid channel"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Force allow apps on external"</string>
@@ -360,10 +360,10 @@
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"About <xliff:g id="TIME">%1$s</xliff:g> left based on your usage"</string>
<string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"About <xliff:g id="TIME">%1$s</xliff:g> left based on your usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> left"</string>
- <string name="power_discharge_by_enhanced" msgid="8788299408879961465">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
- <string name="power_discharge_by_only_enhanced" msgid="7692297898877104416">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage"</string>
- <string name="power_discharge_by" msgid="6427074755635635749">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
- <string name="power_discharge_by_only" msgid="5888058889261108064">"Will last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Will last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
<string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -424,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"More time."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Less time."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Turn on"</string>
<string name="cancel" msgid="6859253417269739139">"Cancel"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Turn on"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Turn on Do Not Disturb"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Never"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Priority only"</string>
@@ -434,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"You won\'t hear your next alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"at <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"on <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duration"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Ask every time"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index 8ff83b04f91b..027f1c5d423d 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Private DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Select private DNS mode"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Off"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatic"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Private DNS provider hostname"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Enter hostname of DNS provider"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Show options for wireless display certification"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Don\'t keep activities"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Destroy every activity as soon as the user leaves it"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Background process limit"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Show all ANRs"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Show App Not Responding dialogue for background apps"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Show background ANRs"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Display App Not Responding dialogue for background apps"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Show notification channel warnings"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Displays on-screen warning when an app posts a notification without a valid channel"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Force allow apps on external"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"This feature is experimental and may affect performance."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Overridden by <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"About <xliff:g id="TIME">%1$s</xliff:g> left"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"About <xliff:g id="TIME">%1$s</xliff:g> left (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"About <xliff:g id="TIME">%1$s</xliff:g> left based on your usage"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"About <xliff:g id="TIME">%1$s</xliff:g> left based on your usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> left"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Will last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Phone may shutdown soon"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet may shutdown soon"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Device may shutdown soon"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Phone may shutdown soon (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet may shutdown soon (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Device may shutdown soon (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> left until fully charged"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> until fully charged"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"More time."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Less time."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Turn on"</string>
<string name="cancel" msgid="6859253417269739139">"Cancel"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Turn on"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Turn on Do Not Disturb"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Never"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Priority only"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"You won\'t hear your next alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"at <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"on <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duration"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Ask every time"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index 8ff83b04f91b..027f1c5d423d 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Private DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Select private DNS mode"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Off"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatic"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Private DNS provider hostname"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Enter hostname of DNS provider"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Show options for wireless display certification"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Don\'t keep activities"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Destroy every activity as soon as the user leaves it"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Background process limit"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Show all ANRs"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Show App Not Responding dialogue for background apps"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Show background ANRs"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Display App Not Responding dialogue for background apps"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Show notification channel warnings"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Displays on-screen warning when an app posts a notification without a valid channel"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Force allow apps on external"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"This feature is experimental and may affect performance."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Overridden by <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"About <xliff:g id="TIME">%1$s</xliff:g> left"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"About <xliff:g id="TIME">%1$s</xliff:g> left (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"About <xliff:g id="TIME">%1$s</xliff:g> left based on your usage"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"About <xliff:g id="TIME">%1$s</xliff:g> left based on your usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> left"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> based on your usage"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Will last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Will last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Phone may shutdown soon"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet may shutdown soon"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Device may shutdown soon"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Phone may shutdown soon (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet may shutdown soon (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Device may shutdown soon (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> left until fully charged"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> until fully charged"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"More time."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Less time."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Turn on"</string>
<string name="cancel" msgid="6859253417269739139">"Cancel"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Turn on"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Turn on Do Not Disturb"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Never"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Priority only"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"You won\'t hear your next alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"at <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"on <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duration"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Ask every time"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-en-rXC/strings.xml b/packages/SettingsLib/res/values-en-rXC/strings.xml
index 945a78e62afa..086e795060c9 100644
--- a/packages/SettingsLib/res/values-en-rXC/strings.xml
+++ b/packages/SettingsLib/res/values-en-rXC/strings.xml
@@ -304,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‏‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎Don’t keep activities‎‏‎‎‏‎"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‏‎‏‎‎‎‏‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‎‏‎‏‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‏‏‏‏‏‎‎‎‎Destroy every activity as soon as the user leaves it‎‏‎‎‏‎"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎Background process limit‎‏‎‎‏‎"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‎‏‎‎‏‏‏‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‎‏‎‎Show all ANRs‎‏‎‎‏‎"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‏‏‏‏‏‏‎Show App Not Responding dialog for background apps‎‏‎‎‏‎"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‎‏‎‎‎‎‏‏‎‎‏‏‎‏‎‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‏‏‎Show background ANRs‎‏‎‎‏‎"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‎‏‎‎Display App Not Responding dialog for background apps‎‏‎‎‏‎"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎Show notification channel warnings‎‏‎‎‏‎"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‎‎‏‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‏‎Displays on-screen warning when an app posts a notification without a valid channel‎‏‎‎‏‎"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎Force allow apps on external‎‏‎‎‏‎"</string>
@@ -360,10 +360,10 @@
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎About ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ left based on your usage‎‏‎‎‏‎"</string>
<string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‏‏‎About ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ left based on your usage (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ left‎‏‎‎‏‎"</string>
- <string name="power_discharge_by_enhanced" msgid="8788299408879961465">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‏‎‎‎‏‎‏‎‏‏‏‏‎‎‏‎Will last until about about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ based on your usage (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
- <string name="power_discharge_by_only_enhanced" msgid="7692297898877104416">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‏‎‏‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎‎‎Will last until about about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ based on your usage‎‏‎‎‏‎"</string>
- <string name="power_discharge_by" msgid="6427074755635635749">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‎‎‏‏‎‎‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎Will last until about about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
- <string name="power_discharge_by_only" msgid="5888058889261108064">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‏‎‎‎‎‎‎Will last until about about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‎‎‎‎‏‎‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‎‏‏‎‎‎Will last until about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ based on your usage (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‎‎‎‏‎‎‎‏‏‏‎‎‏‎‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‎Will last until about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ based on your usage‎‏‎‎‏‎"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‏‎‏‎Will last until about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‏‏‎‎‎‎‏‏‏‎‎‎‏‏‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎Will last until about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‏‎‏‏‏‎‎‎‎‏‎Less than ‎‏‎‎‏‏‎<xliff:g id="THRESHOLD">%1$s</xliff:g>‎‏‎‎‏‏‏‎ remaining‎‏‎‎‏‎"</string>
<string name="power_remaining_less_than_duration" msgid="5751885147712659423">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎Less than ‎‏‎‎‏‏‎<xliff:g id="THRESHOLD">%1$s</xliff:g>‎‏‎‎‏‏‏‎ remaining (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
<string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‎‏‏‎More than ‎‏‎‎‏‏‎<xliff:g id="TIME_REMAINING">%1$s</xliff:g>‎‏‎‎‏‏‏‎ remaining (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
@@ -424,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‎‏‎‏‎‏‏‎‎‎‎‏‏‎More time.‎‏‎‎‏‎"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‎Less time.‎‏‎‎‏‎"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎Turn on‎‏‎‎‏‎"</string>
<string name="cancel" msgid="6859253417269739139">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎Cancel‎‏‎‎‏‎"</string>
+ <string name="okay" msgid="1997666393121016642">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎‏‎‎OK‎‏‎‎‏‎"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎Turn on‎‏‎‎‏‎"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‎Turn on Do Not Disturb‎‏‎‎‏‎"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‏‎‏‏‎‎‎‎‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎Never‎‏‎‎‏‎"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‎‎‎‏‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‎Priority only‎‏‎‎‏‎"</string>
@@ -434,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‎You won\'t hear your next alarm ‎‏‎‎‏‏‎<xliff:g id="WHEN">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
<string name="alarm_template" msgid="4996153414057676512">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎‎at ‎‏‎‎‏‏‎<xliff:g id="WHEN">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‎on ‎‏‎‎‏‏‎<xliff:g id="WHEN">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‎‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‏‏‎‎‏‎‏‎Duration‎‏‎‎‏‎"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‏‏‎‏‎Ask every time‎‏‎‎‏‎"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index bdff9a0228c8..bc74da4b8483 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS privado"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Selecciona el modo de DNS privado"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Desactivado"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automático"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nombre de host del proveedor de DNS privado"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Ingresa el nombre de host del proveedor de DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Mostrar opciones de certificación de pantalla inalámbrica"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Eliminar actividades"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Descartar todas las actividades en cuanto el usuario las abandona"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Límite de procesos en segundo plano"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Errores sin respuesta"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Mostrar diálogo cuando las aplic. en 2do plano no responden"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Mostrar ANR en 2.° plano"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Mostrar diálogo cuando las apps en segundo plano no responden"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Alertas de notificaciones"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"App que publica notificación sin canal válido"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Forzar permisos en almacenamiento externo"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Esta función es experimental y puede afectar el rendimiento."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Reemplazado por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Tiempo restante aproximado: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Tiempo restante: <xliff:g id="TIME">%1$s</xliff:g> aproximadamente (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Aproximadamente <xliff:g id="TIME">%1$s</xliff:g> restantes en función del uso"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Tiempo restante: <xliff:g id="TIME">%1$s</xliff:g> aproximadamente según el uso (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Tiempo restante: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Durará aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> según el uso (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Durará aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> según el uso"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Durará aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Durará aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tiempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Tiempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Tiempo restante: más de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Tiempo restante: más de <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Es posible que pronto se apague el teléfono"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Es posible que pronto se apague la tablet"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Es posible que pronto se apague el dispositivo"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Es posible que pronto se apague el teléfono (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Es posible que pronto se apague la tablet (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Es posible que pronto se apague el dispositivo (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g>: <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> para completar la carga"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> (<xliff:g id="TIME">%2$s</xliff:g> para completar la carga)"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Más tiempo"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Menos tiempo"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activar"</string>
<string name="cancel" msgid="6859253417269739139">"Cancelar"</string>
+ <string name="okay" msgid="1997666393121016642">"Aceptar"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activar"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Activar No interrumpir"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nunca"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Solo prioridad"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"No oirás la próxima alarma (<xliff:g id="WHEN">%1$s</xliff:g>)"</string>
<string name="alarm_template" msgid="4996153414057676512">"a la(s) <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"el <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duración"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Preguntar siempre"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index 940c84f9dad4..952fe1a38a17 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS privado"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Selecciona el modo de DNS privado"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"No"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automático"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nombre de host de proveedor de DNS privado"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Introduce el nombre de host del proveedor de DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Mostrar opciones para la certificación de la pantalla inalámbrica"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Destruir actividades"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Destruir actividades cuando el usuario deje de usarlas"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Límitar procesos en segundo plano"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Errores sin respuesta"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Informar de que una aplicación en segundo plano no responde"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Mostrar ANR en segundo plano"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Informar de que una aplicación en segundo plano no responde"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Ver advertencias canal notificaciones"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Muestra advertencia en pantalla cuando app publica notificación sin canal válido"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Forzar permiso de aplicaciones de forma externa"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Esta función es experimental y puede afectar al rendimiento."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Anulado por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Tiempo restante aproximado: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Tiempo restante aproximado: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Tiempo restante aproximado según tu uso: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Tiempo restante aproximado según tu uso: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Tiempo restante: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Durará aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> según el uso (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Durará aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> según el uso"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Durará aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Durará aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tiempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Queda menos del <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Queda más del <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Tiempo restante: más de <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Es posible que el teléfono se apague pronto"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Es posible que el tablet se apague pronto"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Es posible que el dispositivo se apague pronto"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Es posible que el teléfono se apague pronto (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Es posible que el tablet se apague pronto (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Es posible que el dispositivo se apague pronto (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Tiempo restante hasta carga completa: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> para completar la carga"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Más tiempo."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Menos tiempo."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activar"</string>
<string name="cancel" msgid="6859253417269739139">"Cancelar"</string>
+ <string name="okay" msgid="1997666393121016642">"Aceptar"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activar"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Activar el modo No molestar"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nunca"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Solo prioritarias"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"No oirás la próxima alarma (<xliff:g id="WHEN">%1$s</xliff:g>)"</string>
<string name="alarm_template" msgid="4996153414057676512">"Hora: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"Fecha: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duración"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Preguntar siempre"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index a53b894a3325..6f904e5aef9b 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privaatne DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Valige privaatse DNS-i režiim"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Väljas"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automaatne"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Privaatse DNS-i teenusepakkuja hostinimi"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Sisestage DNS-i teenusepakkuja hostinimi"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Juhtmeta ekraaniühenduse sertifitseerimisvalikute kuvamine"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Ära hoia tegevusi alles"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Kõigi tegev. hävit. kohe, kui kasutaja neist lahk."</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Taustaprotsesside piir"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Näita kõiki ANR-e"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Kuva taustarakendustele dial. Rakendus ei reageeri"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Kuva taustal toimuvad ANR-id"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Kuva taustarakenduste puhul dialoog Rakendus ei reageeri"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Kuva märguandekan. hoiat."</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Esitab ekraanil hoiatuse, kui rakendus postitab kehtiva kanalita märguande"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Luba rakendused välises salvestusruumis"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"See funktsioon on katseline ja võib mõjutada toimivust."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Alistas <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Umbes <xliff:g id="TIME">%1$s</xliff:g> on jäänud"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Jäänud on umbes <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Teie kasutuse alusel on jäänud ligikaudu <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Teie kasutuse põhjal on jäänud umbes <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> on jäänud"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Kestab teie kasutuse põhjal umbes kuni <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Kestab teie kasutuse põhjal umbes kuni <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Kestab umbes kuni <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Kestab umbes kuni <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Jäänud on alla <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Jäänud on alla <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Jäänud on üle <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Jäänud on üle <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon võib peagi välja lülituda"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tahvelarvuti võib peagi välja lülituda"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Seade võib peagi välja lülituda"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon võib peagi välja lülituda (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tahvelarvuti võib peagi välja lülituda (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Seade võib peagi välja lülituda (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> täislaadimiseni"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> täislaadimiseni"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Pikem aeg."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Lühem aeg."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Lülita sisse"</string>
<string name="cancel" msgid="6859253417269739139">"Tühista"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Lülita sisse"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Valiku Mitte segada sisselülitamine"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Mitte kunagi"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Ainult prioriteetsed"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Te ei kuule järgmist äratust kell <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"kell <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"– <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Kestus"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Küsi iga kord"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index bcaf79cfbaf4..73f54352f46b 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS pribatua"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Hautatu DNS pribatuaren modua"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Desaktibatuta"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatikoa"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"DNS hornitzaile pribatuaren ostalari-izena"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Idatzi DNS hornitzailearen ostalari-izena"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Erakutsi hari gabeko bistaratze-egiaztapenaren aukerak"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Ez mantendu jarduerak"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Ezabatu jarduerak erabiltzailea haietatik irtetean"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Atzeko planoko prozesuen muga"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Erakutsi ANR guztiak"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"\"Erantzunik ez\" mezua atz. planoko aplikazioetarako"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Erakutsi atzeko planoko ANRak"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Erakutsi aplikazioak ez erantzutearen (ANR) leihoa atzeko planoan dabiltzan aplikazioen kasuan"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Erakutsi jakinarazpenen kanalen abisuak"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Bistaratu abisuak aplikazioek baliozko kanalik gabeko jakinarazpenak argitaratzean"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Behartu aplikazioak onartzea kanpoko biltegian"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Eginbidea esperimentala da eta eragina izan dezake funtzionamenduan."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> hobespena gainjarri zaio"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"<xliff:g id="TIME">%1$s</xliff:g> inguru gelditzen dira"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"<xliff:g id="TIME">%1$s</xliff:g> inguru gelditzen dira (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"<xliff:g id="TIME">%1$s</xliff:g> inguru gelditzen dira, erabileraren arabera"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Erabilera kontuan izanda, <xliff:g id="TIME">%1$s</xliff:g> inguru gelditzen dira (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> guztiz kargatu arte"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Erabilera kontuan izanda, bateriak ordu honetara arte iraungo du, gutxi gorabehera: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Erabilera kontuan izanda, bateriak ordu honetara arte iraungo du, gutxi gorabehera: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Bateriak ordu honetara arte iraungo du, gutxi gorabehera: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Bateriak ordu honetara arte iraungo du, gutxi gorabehera: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> baino gutxiago gelditzen dira"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> baino gutxiago gelditzen da (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> baino gehiago gelditzen da (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> baino gehiago gelditzen da"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Baliteke telefonoa laster itzaltzea"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Baliteke tableta laster itzaltzea"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Baliteke gailua laster itzaltzea"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Baliteke telefonoa laster itzaltzea (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Baliteke tableta laster itzaltzea (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Baliteke gailua laster itzaltzea (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> falta dira guztiz kargatu arte"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> guztiz kargatu arte"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Denbora gehiago."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Denbora gutxiago."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktibatu"</string>
<string name="cancel" msgid="6859253417269739139">"Utzi"</string>
+ <string name="okay" msgid="1997666393121016642">"Ados"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktibatu"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Aktibatu \"Ez molestatu\" modua"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Inoiz ez"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Lehentasuna dutenak soilik"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Ez duzu entzungo hurrengo alarma (<xliff:g id="WHEN">%1$s</xliff:g>)"</string>
<string name="alarm_template" msgid="4996153414057676512">"ordua: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"data: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Iraupena"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Galdetu beti"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 14e942dd9fb4..5ace9684e6bf 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"‏DNS خصوصی"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"‏حالت DNS خصوصی را انتخاب کنید"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"خاموش"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"خودکار"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"‏نام میزبان ارائه‌دهنده DNS خصوصی"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"‏نام میزبان ارائه‌دهنده DNS خصوصی را وارد کنید"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"نمایش گزینه‌ها برای گواهینامه نمایش بی‌سیم"</string>
@@ -248,7 +247,7 @@
<string name="verify_apps_over_usb_title" msgid="4177086489869041953">"‏تأیید برنامه‌های نصب شده از طریق USB"</string>
<string name="verify_apps_over_usb_summary" msgid="9164096969924529200">"‏برنامه‌های نصب شده از طریق ADB/ADT را ازنظر رفتار مخاطره‌آمیز بررسی کنید."</string>
<string name="bluetooth_show_devices_without_names_summary" msgid="2351196058115755520">"‏دستگاه‌های بلوتوث بدون نام (فقط نشانی‌های MAC) نشان داده خواهند شد"</string>
- <string name="bluetooth_disable_absolute_volume_summary" msgid="6031284410786545957">"در صورت وجود مشکل میزان صدا با دستگاه‌های راه دور مثل میزان صدای بلند ناخوشایند یا عدم کنترل صدا، قابلیت میزان صدای کامل بلوتوث را غیرفعال کنید."</string>
+ <string name="bluetooth_disable_absolute_volume_summary" msgid="6031284410786545957">"درصورت وجود مشکل در صدا با دستگاه‌های راه دور مثل صدای بلند ناخوشایند یا عدم کنترل صدا، ویژگی میزان صدای کامل بلوتوث را غیرفعال کنید."</string>
<string name="enable_terminal_title" msgid="95572094356054120">"ترمینال محلی"</string>
<string name="enable_terminal_summary" msgid="67667852659359206">"فعال کردن ترمینال برنامه‌ کاربردی که دسترسی به برنامه محلی را پیشنهاد می‌کند"</string>
<string name="hdcp_checking_title" msgid="8605478913544273282">"‏بررسی HDCP"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"فعالیت‌ها نگه داشته نشوند"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"از بین بردن هر فعالیت به محض خروج کاربر از آن"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"محدودیت پردازش در پس‌زمینه"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"‏نمایش تمام ANRها"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"نمایش گفتگوی \"برنامه پاسخ نمی‌دهد\" برای برنامه‌های پس‌زمینه"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"‏نمایش موارد ANR پس‌زمینه"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"نمایش گفتگوی \"برنامه پاسخ نمی‌دهد\" برای برنامه‌های پس‌زمینه"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"نمایش هشدارهای کانال اعلان"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"هنگامی که برنامه‌ای بدون وجود کانالی معتبر، اعلانی پست می‌کند، هشدار روی صفحه‌ای نمایش می‌دهد"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"اجازه اجباری به برنامه‌های دستگاه ذخیره خارجی"</string>
@@ -344,7 +343,7 @@
<string name="convert_to_file_encryption_enabled" msgid="2861258671151428346">"تبدیل…"</string>
<string name="convert_to_file_encryption_done" msgid="7859766358000523953">"از قبل به رمزگذاری بر حسب فایل تبدیل شده است"</string>
<string name="title_convert_fbe" msgid="1263622876196444453">"تبدیل به رمزگذاری مبتنی بر فایل"</string>
- <string name="convert_to_fbe_warning" msgid="6139067817148865527">"تبدیل پارتیشن داده‌ای به رمزگذاری مبتنی بر فایل.\n !!هشدار!! این کار تمام داده‌هایتان را پاک می‌کند.\n این قابلیت در نسخه آلفا قرار دارد و ممکن است به درستی کار نکند.\n برای ادامه، «پاک کردن و تبدیل…» را فشار دهید."</string>
+ <string name="convert_to_fbe_warning" msgid="6139067817148865527">"تبدیل پارتیشن داده‌ای به رمزگذاری مبتنی بر فایل.\n !!هشدار!! این کار تمام داده‌هایتان را پاک می‌کند.\n این ویژگی در نسخه آلفا قرار دارد و ممکن است به‌درستی کار نکند.\n برای ادامه، «پاک کردن و تبدیل…» را فشار دهید."</string>
<string name="button_convert_fbe" msgid="5152671181309826405">"پاک کردن و تبدیل…"</string>
<string name="picture_color_mode" msgid="4560755008730283695">"حالت رنگ عکس"</string>
<string name="picture_color_mode_desc" msgid="1141891467675548590">"‏استفاده از sRGB"</string>
@@ -354,42 +353,27 @@
<string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"قرمزدشواربینی (قرمز-سبز)"</string>
<string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"آبی‌دشواربینی (آبی-زرد)"</string>
<string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"تصحیح رنگ"</string>
- <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"این قابلیت آزمایشی است و ممکن است عملکرد را تحت تأثیر قرار دهد."</string>
+ <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"این ویژگی آزمایشی است و ممکن است عملکرد را تحت تأثیر قرار دهد."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"توسط <xliff:g id="TITLE">%1$s</xliff:g> لغو شد"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"حدود <xliff:g id="TIME">%1$s</xliff:g> باقی مانده است"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"حدوداً <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) شارژ باقی است"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"براساس میزان مصرف شما، <xliff:g id="TIME">%1$s</xliff:g> باقی‌مانده است"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"بسته به مصرفتان، حدوداً <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) شارژ باقی است"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> باقی مانده"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"بسته به مصرفتان (<xliff:g id="LEVEL">%2$s</xliff:g>)، حدوداً تا <xliff:g id="TIME">%1$s</xliff:g> شارژ دارید"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"بسته به مصرفتان، حدوداً تا <xliff:g id="TIME">%1$s</xliff:g> شارژ دارید"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"حدوداً تا <xliff:g id="TIME">%1$s</xliff:g> شارژ دارید (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"حدوداً تا <xliff:g id="TIME">%1$s</xliff:g> شارژ دارید"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"کمتر از <xliff:g id="THRESHOLD">%1$s</xliff:g> باقی مانده"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"کمتر از <xliff:g id="THRESHOLD">%1$s</xliff:g> شارژ باقی مانده است (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"بیش از <xliff:g id="TIME_REMAINING">%1$s</xliff:g> شارژ باقی مانده است (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"بیش از <xliff:g id="TIME_REMAINING">%1$s</xliff:g> باقی مانده است"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ممکن است تلفن به‌زودی خاموش شود"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ممکن است رایانه لوحی به‌زودی خاموش شود"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"ممکن است دستگاه به‌زودی خاموش شود"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ممکن است تلفن به‌زودی خاموش شود (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ممکن است رایانه لوحی به‌زودی خاموش شود (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"ممکن است دستگاه به‌زودی خاموش شود (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - ‏<xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> تا شارژ شدن کامل باقی مانده است"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> مانده تا شارژ کامل"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"زمان بیشتر."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"زمان کمتر."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"روشن کردن"</string>
<string name="cancel" msgid="6859253417269739139">"لغو"</string>
+ <string name="okay" msgid="1997666393121016642">"تأیید"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"روشن کردن"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"روشن کردن «مزاحم نشوید»"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"هرگز"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"فقط اولویت‌دار"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"صدای زنگ بعدی‌تان را در ساعت <xliff:g id="WHEN">%1$s</xliff:g> نخواهید شنید"</string>
<string name="alarm_template" msgid="4996153414057676512">"ساعت <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"روز <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"مدت"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"هربار پرسیده شود"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index 040a47572395..2a6becc3c77c 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Yksityinen DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Valitse yksityinen DNS-tila"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Pois käytöstä"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automaattinen"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Yksityisen DNS-tarjoajan isäntänimi"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Anna isäntänimi tai DNS-tarjoaja."</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Näytä langattoman näytön sertifiointiin liittyvät asetukset"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Älä säilytä toimintoja"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Tuhoa kaikki toiminnot, kun käyttäjä poistuu"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Taustaprosessi"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Näytä kaikki ANR:t"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Näytä Sovellus ei vastaa -ikkuna taustasovell."</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Näytä tausta-ANR:t"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Näytä taustalla olevien sovellusten Sovellus ei vastaa ‑valintaikkunat"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Näytä ilmoituskanavan varoitukset"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Näyttää varoituksen, kun sovellus julkaisee ilmoituksen ilman kelvollista kanavaa."</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Salli aina ulkoinen tallennus"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Tämä ominaisuus on kokeellinen ja voi vaikuttaa suorituskykyyn."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Tämän ohittaa <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Noin <xliff:g id="TIME">%1$s</xliff:g> jäljellä"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Noin <xliff:g id="TIME">%1$s</xliff:g> jäljellä (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Noin <xliff:g id="TIME">%1$s</xliff:g> jäljellä käytön perusteella"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Noin <xliff:g id="TIME">%1$s</xliff:g> jäljellä käyttösi perusteella (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> jäljellä"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Akun varaus loppuu käyttösi perusteella noin <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Akun varaus loppuu käyttösi perusteella noin <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Akun varaus loppuu noin <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Akun varaus loppuu noin <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Alle <xliff:g id="THRESHOLD">%1$s</xliff:g> jäljellä"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Alle <xliff:g id="THRESHOLD">%1$s</xliff:g> jäljellä (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Yli <xliff:g id="TIME_REMAINING">%1$s</xliff:g> jäljellä (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Yli <xliff:g id="TIME_REMAINING">%1$s</xliff:g> jäljellä"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Puhelin voi pian sammua"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tabletti voi pian sammua"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Laite voi pian sammua"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Puhelin voi pian sammua (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tabletti voi pian sammua (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Laite voi pian sammua (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> kunnes täynnä"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> täyteen lataukseen"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Enemmän aikaa"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Vähemmän aikaa"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ota käyttöön"</string>
<string name="cancel" msgid="6859253417269739139">"Peruuta"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ota käyttöön"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Ota Älä häiritse ‑tila käyttöön"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Ei koskaan"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Vain tärkeät"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Et kuule seuraavaa hälytystäsi (<xliff:g id="WHEN">%1$s</xliff:g>)."</string>
<string name="alarm_template" msgid="4996153414057676512">"kello <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Kesto"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Kysy aina"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index 2e9caa61a8b7..4304feab0540 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS privé"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Sélectionnez le mode DNS privé"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Désactivé"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatique"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nom d\'hôte du fournisseur DNS privé"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Entrez le nom d\'hôte du fournisseur DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Afficher les options pour la certification d\'affichage sans fil"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Ne pas conserver activités"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Supprimer immédiatement les activités abandonnées"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Limite processus arr.-plan"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Afficher tous les messages «L\'application ne répond pas»"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Afficher « L\'application ne répond plus » pour applis en arrière-plan"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Affich. ANR arrière-plan"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Afficher le message « L\'application ne répond plus » pour les applications en arrière-plan"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Affich. avertiss. canal notification"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Afficher avertiss. à l\'écran quand une app présente une notific. sans canal valide"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Forcer l\'autor. d\'applis sur stockage externe"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Cette fonctionnalité est expérimentale et peut affecter les performances."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Remplacé par <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Il reste environ <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Il reste environ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Il reste environ <xliff:g id="TIME">%1$s</xliff:g> en fonction de votre usage"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Il reste environ <xliff:g id="TIME">%1$s</xliff:g> en fonction de votre usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Temps restant : <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Durera jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g>, en fonction de votre usage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Durera jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g>, en fonction de votre usage"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Durera jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Durera jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Il reste plus de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Il reste plus de <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Il se peut que le téléphone s\'éteigne bientôt"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Il se peut que la tablette s\'éteigne bientôt"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Il se peut que l\'appareil s\'éteigne bientôt"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Il se peut que le téléphone s\'éteigne bientôt (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Il se peut que la tablette s\'éteigne bientôt (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Il se peut que l\'appareil s\'éteigne bientôt (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> jusqu\'à la charge complète"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> : <xliff:g id="TIME">%2$s</xliff:g> jusqu\'à la charge complète"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Plus longtemps."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Moins longtemps."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activer"</string>
<string name="cancel" msgid="6859253417269739139">"Annuler"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activer"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Activer la fonction « Ne pas déranger »"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Jamais"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Priorités seulement"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Vous n\'entendrez pas votre prochaine alarme à <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"à <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"le <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Durée"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Toujours demander"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index 9af818ec8da7..b48b3371ab5e 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -304,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Ne pas conserver activités"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Supprimer immédiatement les activités abandonnées"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Limite processus arr.-plan"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Afficher tous les messages ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Afficher \"L\'application ne répond plus\" pour applis en arrière-plan"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Voir ANR d\'arrière-plan"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Afficher la boîte de dialogue \"L\'application ne répond plus\" pour les applications en arrière-plan"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Voir avertissements liés aux canaux notification"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Affiche avertissement lorsqu\'une application publie notification sans canal valide"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Forcer disponibilité stockage externe pour applis"</string>
@@ -360,10 +360,10 @@
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Temps restant en fonction de votre utilisation : environ <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Temps restant en fonction de votre utilisation (<xliff:g id="LEVEL">%2$s</xliff:g>) : environ <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Temps restant : <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <string name="power_discharge_by_enhanced" msgid="8788299408879961465">"Temps restant en fonction de votre utilisation (<xliff:g id="LEVEL">%2$s</xliff:g>) : jusqu\'à <xliff:g id="TIME">%1$s</xliff:g> environ"</string>
- <string name="power_discharge_by_only_enhanced" msgid="7692297898877104416">"Temps restant en fonction de votre utilisation : jusqu\'à <xliff:g id="TIME">%1$s</xliff:g> environ"</string>
- <string name="power_discharge_by" msgid="6427074755635635749">"Temps restant : jusqu\'à <xliff:g id="TIME">%1$s</xliff:g> environ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
- <string name="power_discharge_by_only" msgid="5888058889261108064">"Temps restant : jusqu\'à <xliff:g id="TIME">%1$s</xliff:g> environ"</string>
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Temps restant en fonction de votre utilisation (<xliff:g id="LEVEL">%2$s</xliff:g>) : jusqu\'à <xliff:g id="TIME">%1$s</xliff:g> environ"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Temps restant en fonction de votre utilisation : jusqu\'à <xliff:g id="TIME">%1$s</xliff:g> environ"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Temps restant : jusqu\'à <xliff:g id="TIME">%1$s</xliff:g> environ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Temps restant : jusqu\'à <xliff:g id="TIME">%1$s</xliff:g> environ"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Il reste plus de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -424,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Plus longtemps."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Moins longtemps."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activer"</string>
<string name="cancel" msgid="6859253417269739139">"Annuler"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activer"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Activer le mode \"Ne pas déranger\""</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Jamais"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Prioritaires uniquement"</string>
@@ -434,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Vous n\'entendrez pas votre prochaine alarme <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"à <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"le <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Durée"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Toujours demander"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index 839a25ea038f..ddd6ce880745 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -76,7 +76,7 @@
<string name="bluetooth_profile_a2dp_high_quality" msgid="5444517801472820055">"Audio en HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string>
<string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="8510588052415438887">"Audio en HD"</string>
<string name="bluetooth_profile_hearing_aid" msgid="7999237886427812595">"Audiófonos"</string>
- <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="7188282786730266159">"Conectouse aos audiófonos"</string>
+ <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="7188282786730266159">"Conectouse ao audiófono"</string>
<string name="bluetooth_a2dp_profile_summary_connected" msgid="963376081347721598">"Conectado ao audio multimedia"</string>
<string name="bluetooth_headset_profile_summary_connected" msgid="7661070206715520671">"Conectado ao audio do teléfono"</string>
<string name="bluetooth_opp_profile_summary_connected" msgid="2611913495968309066">"Conectado ao servidor de transferencia de ficheiros"</string>
@@ -93,7 +93,7 @@
<string name="bluetooth_headset_profile_summary_use_for" msgid="8705753622443862627">"Utilízase para o audio do teléfono"</string>
<string name="bluetooth_opp_profile_summary_use_for" msgid="1255674547144769756">"Utilízase para a transferencia de ficheiros"</string>
<string name="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Utilízase para a entrada"</string>
- <string name="bluetooth_hearing_aid_profile_summary_use_for" msgid="908775281788309484">"Usar para os audiófonos"</string>
+ <string name="bluetooth_hearing_aid_profile_summary_use_for" msgid="908775281788309484">"Usar con audiófonos"</string>
<string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Sincronizar"</string>
<string name="bluetooth_pairing_accept_all_caps" msgid="6061699265220789149">"SINCRONIZAR"</string>
<string name="bluetooth_pairing_decline" msgid="4185420413578948140">"Cancelar"</string>
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS privado"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Selecciona o modo de DNS privado"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Desactivar"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automático"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nome de host de provedor de DNS privado"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Introduce o nome de host de provedor de DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Mostra opcións para o certificado de visualización sen fíos"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Non manter actividades"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Destruír actividades cando o usuario non as use"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Límite proceso 2º plano"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Mostrar todos os ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Informa que aplicación segundo plano non responde"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Mostrar ANR en segundo plano"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Indica que unha aplicación en segundo plano non responde"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Mostrar avisos de notificacións"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Mostra avisos cando unha aplicación publica notificacións sen unha canle válida"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Forzar permiso de aplicacións de forma externa"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Esta función é experimental e pode afectar ao rendemento."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Anulado por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Tempo que queda aproximadamente: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Tempo restante aproximado: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Tempo restante aproximado en función do uso: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Tempo restante aproximado en función do uso: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Tempo restante: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Duración aproximada en función do uso: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Duración aproximada en función do uso: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Duración aproximada: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Duración aproximada: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tempo restante inferior a <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Tempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Tempo restante: máis de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Tempo restante: máis de <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"É posible que o teléfono se apague en breve"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"É posible que a tableta se apague en breve"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"É posible que o dispositivo se apague en breve"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"É posible que o teléfono se apague en breve (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"É posible que a tableta se apague en breve (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"É posible que o dispositivo se apague en breve (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Tempo que queda ata cargar de todo: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> ata completar a carga"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Máis tempo."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Menos tempo."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activar"</string>
<string name="cancel" msgid="6859253417269739139">"Cancelar"</string>
+ <string name="okay" msgid="1997666393121016642">"Aceptar"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activar"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Activar modo Non molestar"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nunca"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Só prioridade"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Non escoitarás a alarma seguinte (<xliff:g id="WHEN">%1$s</xliff:g>)"</string>
<string name="alarm_template" msgid="4996153414057676512">"á seguinte hora: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"na seguinte data: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duración"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Preguntar sempre"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index 9b54fa6248b0..d723da5967cb 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"ખાનગી DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"ખાનગી DNS મોડને પસંદ કરો"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"બંધ"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"આપમેળે"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"ખાનગી DNS પ્રદાતા હોસ્ટનું નામ"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS પ્રદાતાના હોસ્ટનું નામ દાખલ કરો"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"વાયરલેસ ડિસ્પ્લે પ્રમાણપત્ર માટેના વિકલ્પો બતાવો"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"પ્રવૃત્તિઓ રાખશો નહીં"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"જેવો વપરાશકર્તા તેને છોડે, તરત જ દરેક પ્રવૃત્તિ નષ્ટ કરો"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"બૅકગ્રાઉન્ડ પ્રક્રિયા સીમા"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"બધા ANR બતાવો"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"બૅકગ્રાઉન્ડ ઍપ્લિકેશનો માટે ઍપ્લિકેશન પ્રતિસાદ આપતી નથી સંવાદ બતાવો"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"બૅકગ્રાઉન્ડના ANRs બતાવો"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"બૅકગ્રાઉન્ડ ઍપ માટે \"ઍપ પ્રતિસાદ આપતી નથી\" સંવાદ બતાવો"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"નોટિફિકેશન ચૅનલની ચેતવણી બતાવો"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"ઍપ્લિકેશન માન્ય ચૅનલ વિના નોટિફિકેશન પોસ્ટ કરે તો સ્ક્રીન પર ચેતવણી દેખાય છે"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"બાહ્ય પર એપ્લિકેશનોને મંજૂરી આપવાની ફરજ પાડો"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"આ સુવિધા પ્રાયોગિક છે અને કામગીરી પર અસર કરી શકે છે."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> દ્વારા ઓવરરાઇડ થયું"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"અંદાજે <xliff:g id="TIME">%1$s</xliff:g> બાકી"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"લગભગ <xliff:g id="TIME">%1$s</xliff:g> બાકી (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"તમારા વપરાશનાં આધારે લગભગ <xliff:g id="TIME">%1$s</xliff:g> બાકી છે"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"તમારા વપરાશના આધારે લગભગ <xliff:g id="TIME">%1$s</xliff:g> બાકી છે (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> બાકી"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"તમારા વપરાશના આધારે લગભગ <xliff:g id="TIME">%1$s</xliff:g> સુધી ચાલશે (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"તમારા વપરાશના આધારે લગભગ <xliff:g id="TIME">%1$s</xliff:g> સુધી ચાલશે"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"લગભગ <xliff:g id="TIME">%1$s</xliff:g> સુધી ચાલશે (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"લગભગ <xliff:g id="TIME">%1$s</xliff:g> સુધી ચાલશે"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> કરતાં ઓછો સમય બાકી છે"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> કરતાં ઓછો સમય બાકી છે (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> કરતાં વધુ સમય બાકી છે (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> કરતાં વધુ સમય બાકી છે"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ફોન થોડીક જ વારમાં બંધ થઈ શકે છે"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ટૅબ્લેટ થોડીક જ વારમાં બંધ થઈ શકે છે"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"ઉપકરણ થોડીક જ વારમાં બંધ થઈ શકે છે"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ફોન થોડીક જ વારમાં બંધ થઈ શકે છે (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ટૅબ્લેટ થોડીક જ વારમાં બંધ થઈ શકે છે (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"ઉપકરણ થોડીક જ વારમાં બંધ થઈ શકે છે (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"સંપૂર્ણપણે ચાર્જ થવામાં <xliff:g id="TIME">%1$s</xliff:g> બાકી"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - સંપૂર્ણપણે ચાર્જ થવા માટે <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"વધુ સમય."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"ઓછો સમય."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ચાલુ કરો"</string>
<string name="cancel" msgid="6859253417269739139">"રદ કરો"</string>
+ <string name="okay" msgid="1997666393121016642">"ઓકે"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ચાલુ કરો"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"ખલેલ પાડશો નહીં ચાલુ કરો"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"ક્યારેય નહીં"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"માત્ર પ્રાધાન્યતા"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"તમે <xliff:g id="WHEN">%1$s</xliff:g>નું તમારું આગલું અલાર્મ સાંભળી નહીં શકો"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g> વાગ્યે"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g> વાગ્યે"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"અવધિ"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"દર વખતે પૂછો"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 9179f2e86a07..a13c4d8056a1 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"निजी DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"निजी DNS मोड चुनें"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"बंद"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"अपने आप"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"निजी DNS सेवा देने वाले का होस्टनाम"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS सेवा देने वाले का होस्टनाम डालें"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"वायरलेस दिखाई देने के लिए प्रमाणन विकल्प दिखाएं"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"गतिविधियों को न रखें"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"उपयोगकर्ता के छोड़ते ही हर गतिविधि को खत्म करें"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"पृष्ठभूमि प्रक्रिया सीमा"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"सभी ANR दिखाएं"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"पृष्ठभूमि ऐप्स के लिए ऐप्स प्रतिसाद नहीं दे रहा डॉयलॉग दिखाएं"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"बैकग्राउंड के एएनआर दिखाएं"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"बैकग्राउंड में चलने वाले ऐप्लिकेशन के लिए, यह ऐप्लिकेशन नहीं चल रहा मैसेज दिखाएं"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"सूचना चैनल चेतावनी दिखाएं"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"ऐप सही चैनल के बिना सूचना पोस्ट करे तो स्क्रीन पर चेतावनी दिखाएं"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"ऐप्स को बाहरी मेमोरी पर बाध्‍य करें"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"यह सुविधा प्रायोगिक है और निष्पादन को प्रभावित कर सकती है."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> के द्वारा ओवरराइड किया गया"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"लगभग <xliff:g id="TIME">%1$s</xliff:g> शेष"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"बैटरी लगभग <xliff:g id="TIME">%1$s</xliff:g> में खत्म हो जाएगी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"आपके उपयोग के आधार पर लगभग <xliff:g id="TIME">%1$s</xliff:g> का समय बचा है"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"आपके इस्तेमाल के हिसाब से बैटरी लगभग <xliff:g id="TIME">%1$s</xliff:g> में खत्म हो जाएगी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> शेष"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"आपके इस्तेमाल के हिसाब से बैटरी लगभग <xliff:g id="TIME">%1$s</xliff:g> चलेगी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"आपके इस्तेमाल के हिसाब से बैटरी लगभग <xliff:g id="TIME">%1$s</xliff:g> चलेगी"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"बैटरी लगभग <xliff:g id="TIME">%1$s</xliff:g> चलेगी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"बैटरी लगभग <xliff:g id="TIME">%1$s</xliff:g> चलेगी"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> से कम समय बचा है"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> से कम बैटरी बची है (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> से ज़्यादा चलने लायक बैटरी बची है (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> से ज़्यादा चलने लायक बैटरी बची है"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"फ़ोन जल्दी ही बंद हो सकता है"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"टैबलेट जल्दी ही बंद हो सकता है"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"डिवाइस जल्दी ही बंद हो सकता है"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"फ़ोन जल्दी ही बंद हो सकता है (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"टैबलेट जल्दी ही बंद हो सकता है (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"डिवाइस जल्दी ही बंद हो सकता है (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"पूरी तरह से चार्ज होने में <xliff:g id="TIME">%1$s</xliff:g> शेष"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> पूरी तरह से चार्ज होने तक"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"ज़्यादा समय."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"कम समय."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"चालू करें"</string>
<string name="cancel" msgid="6859253417269739139">"रद्द करें"</string>
+ <string name="okay" msgid="1997666393121016642">"ठीक है"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"चालू करें"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"\'परेशान न करें\' चालू करें"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"कभी नहीं"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"सिर्फ़ ज़रूरी"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"आपको <xliff:g id="WHEN">%1$s</xliff:g> पर अपना अगला अलार्म नहीं सुनाई देगा"</string>
<string name="alarm_template" msgid="4996153414057676512">"अलार्म <xliff:g id="WHEN">%1$s</xliff:g> पर बजेगा"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"अलार्म <xliff:g id="WHEN">%1$s</xliff:g> को बजेगा"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"अवधि"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"हर बार पूछें"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index f0a7fc446141..d5baf3a2d59a 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privatni DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Odaberite način privatnog DNS-a"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Isključeno"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatski"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Naziv hosta davatelja usluge privatnog DNS-a"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Unesite naziv hosta davatelja usluge DNS-a"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Prikaži opcije za certifikaciju bežičnog prikaza"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Uklanjanje aktivnosti"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Aktivnost se prekida čim je korisnik napusti."</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Ograničenje pozadinskog procesa"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Prikaži sve ANR-ove"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Prikaz dijaloga o pozad. aplik. koja ne odgovara"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Pokaži pozadinske ANR-ove"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Dijalog o pozadinskim aplikacijama koja ne odgovaraju"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Prikaži upozorenja kanala obavijesti"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Prikazuje upozorenje na zaslonu kada aplikacija objavi obavijest bez važećeg kanala"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Prisilno dopusti aplikacije u vanjskoj pohrani"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ova je značajka eksperimentalna i može utjecati na performanse."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Premošćeno postavkom <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Još otprilike <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Još otprilike <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Još otprilike <xliff:g id="TIME">%1$s</xliff:g> na temelju vaše upotrebe"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Još otprilike <xliff:g id="TIME">%1$s</xliff:g> na temelju vaše upotrebe (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Još <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Trajat će otprilike do <xliff:g id="TIME">%1$s</xliff:g> na temelju vaše upotrebe (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Trajat će otprilike do <xliff:g id="TIME">%1$s</xliff:g> na temelju vaše upotrebe"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Trajat će otprilike do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Trajat će otprilike do <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon bi se uskoro mogao isključiti"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet bi se uskoro mogao isključiti"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Uređaj bi se uskoro mogao isključiti"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon bi se uskoro mogao isključiti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet bi se uskoro mogao isključiti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Uređaj bi se uskoro mogao isključiti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Još <xliff:g id="TIME">%1$s</xliff:g> do potpune napunjenosti"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> do potpune napunjenosti"</string>
@@ -441,8 +425,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Više vremena."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Manje vremena."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Uključi"</string>
<string name="cancel" msgid="6859253417269739139">"Odustani"</string>
+ <string name="okay" msgid="1997666393121016642">"U redu"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Uključi"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Uključite opciju Ne uznemiravaj."</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nikada"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Samo prioritetno"</string>
@@ -451,4 +436,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Nećete čuti sljedeći alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"u <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"u <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Trajanje"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Pitaj svaki put"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index b354ea96f3d3..3af70450394d 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privát DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"„Privát DNS” mód kiválasztása"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Ki"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatikus"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Privát DNS-szolgáltató gazdagépneve"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Adja meg a DNS-szolgáltató gazdagépnevét"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Vezeték nélküli kijelző tanúsítványával kapcsolatos lehetőségek megjelenítése"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Törölje a tevékenységeket"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Tevékenységek törlése, amint elhagyják azokat"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Háttérfolyamat-korlátozás"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Összes ANR mutatása"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Az Alkalmazás nem válaszol ablak megjelenítése"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Háttérben lévő ANR-ek"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Az Alkalmazás nem válaszol ablak megjelenítése a háttérben futó alkalmazásoknál"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Értesítő csatorna figyelmeztetései"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Figyelmeztet, ha egy alkalmazás érvényes csatorna nélkül küld értesítést"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Külső tárhely alkalmazásainak engedélyezése"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ez egy kísérleti funkció, és hatással lehet a teljesítményre."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Felülírva erre: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Körülbelül <xliff:g id="TIME">%1$s</xliff:g> maradt hátra"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Nagyjából <xliff:g id="TIME">%1$s</xliff:g> maradt (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Körülbelül <xliff:g id="TIME">%1$s</xliff:g> van hátra az eszköz igénybevétele alapján"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"A használat alapján nagyjából <xliff:g id="TIME">%1$s</xliff:g> maradt (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> van hátra"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"A használat alapján nagyjából még ennyit bír: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"A használat alapján nagyjából még ennyit bír: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Nagyjából még ennyit bír: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Nagyjából még ennyit bír: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Kevesebb mint <xliff:g id="THRESHOLD">%1$s</xliff:g> van hátra"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Kevesebb mint <xliff:g id="THRESHOLD">%1$s</xliff:g> van hátra (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Kevesebb mint <xliff:g id="TIME_REMAINING">%1$s</xliff:g> van hátra (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Több mint <xliff:g id="TIME_REMAINING">%1$s</xliff:g> van hátra"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Előfordulhat, hogy a telefon hamarosan leáll"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Előfordulhat, hogy a táblagép hamarosan leáll"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Előfordulhat, hogy az eszköz hamarosan leáll"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Előfordulhat, hogy a telefon hamarosan leáll (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Előfordulhat, hogy a táblagép hamarosan leáll (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Előfordulhat, hogy az eszköz hamarosan leáll (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> a teljes töltöttségig"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> a teljes feltöltésig"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Több idő."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Kevesebb idő."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Bekapcsolás"</string>
<string name="cancel" msgid="6859253417269739139">"Mégse"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Bekapcsolás"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"A Ne zavarjanak mód bekapcsolása"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Soha"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Csak prioritásos"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Nem fogja hallani a következő ébresztést. Időpontja: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"ekkor: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"ezen a napon: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Időtartam"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Mindig kérdezzen rá"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index 8e52ceb74a9c..36880d832f83 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Անհատական DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Ընտրեք անհատական DNS սերվերի ռեժիմը"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Անջատված է"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Ավտոմատ"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Անհատական DNS ծառայության մատակարարի խնամորդի անունը"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Մուտքագրեք DNS ծառայության մատակարարի խնամորդի անունը"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Ցույց տալ անլար էկրանի հավաստագրման ընտրանքները"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Պետք չէ պահել գործողությունները"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Ոչնչացնել ցանացած գործունեություն օգտատիրոջ հեռացումից հետո"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Հետնաշերտի գործընթացի սահմանաչափ"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Ցույց տալ բոլոր ANR-երը"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Ցուցադրել այն ծրագիրը, որը չի արձագանքում երկխոսությունը հետնաշերտի ծրագրերի համար"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"ANR-ները ֆոնային ռեժիմում"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Ցուցադրել «Հավելվածը չի արձագանքում» պատուհանը ֆոնային հավելվածների համար"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Ցուցադրել ծանուցումների ալիքի զգուշացումները"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Էկրանին ցուցադրվում է զգուշացում, երբ որևէ հավելված փակցնում է ծանուցում առանց վավեր ալիքի"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Միշտ թույլատրել ծրագրեր արտաքին պահեստում"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Սա փորձնական գործառույթ է և կարող է ազդել սարքի աշխատանքի վրա:"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Գերազանցված է <xliff:g id="TITLE">%1$s</xliff:g>-ից"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Մնացել է մոտ <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Լիցքը (<xliff:g id="LEVEL">%2$s</xliff:g>) կբավարարի մոտ <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Մնացել է մոտ <xliff:g id="TIME">%1$s</xliff:g>՝ օգտագործման եղանակից կախված"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Լիցքը (<xliff:g id="LEVEL">%2$s</xliff:g>) կբավարարի մոտ <xliff:g id="TIME">%1$s</xliff:g>՝ կախված օգտագործման եղանակից"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Մնացել է <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Լիցքը (<xliff:g id="LEVEL">%2$s</xliff:g>) կբավարարի մոտ <xliff:g id="TIME">%1$s</xliff:g>՝ կախված օգտագործման եղանակից"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Լիցքը կբավարարի մոտ <xliff:g id="TIME">%1$s</xliff:g>՝ կախված օգտագործման եղանակից"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Լիցքը (<xliff:g id="LEVEL">%2$s</xliff:g>) կբավարարի մոտ <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Լիցքը կբավարարի մոտ <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Մնացել է <xliff:g id="THRESHOLD">%1$s</xliff:g>-ից պակաս"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Մնացել է <xliff:g id="THRESHOLD">%1$s</xliff:g>-ից պակաս (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Մնացել է ավելի քան <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Մնացել է ավելի քան <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Հեռախոսը շուտով կանջատվի"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Պլանշետը շուտով կանջատվի"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Սարքը շուտով կանջատվի"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Հեռախոսը շուտով կանջատվի (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Պլանշետը շուտով կանջատվի (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Սարքը շուտով կանջատվի (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Մինչև լրիվ լիցքավորումը մնացել է <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> մինչև լրիվ լիցքավորումը"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Ավելացնել ժամանակը:"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Պակասեցնել ժամանակը:"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Միացնել"</string>
<string name="cancel" msgid="6859253417269739139">"Չեղարկել"</string>
+ <string name="okay" msgid="1997666393121016642">"Հաստատել"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Միացնել"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Միացրեք «Չանհանգստացնել» ռեժիմը"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Երբեք"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Միայն կարևորները"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Ժամը <xliff:g id="WHEN">%1$s</xliff:g>-ի զարթուցիչը չի զանգի"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g>-ին"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>-ին"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Տևողություն"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Հարցնել ամեն անգամ"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index 3e8c6766de8d..323d14f1625e 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS Pribadi"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Pilih Mode DNS Pribadi"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Nonaktif"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Otomatis"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Hostname penyedia DNS pribadi"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Masukkan hostname penyedia DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Tampilkan opsi untuk sertifikasi layar nirkabel"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Jangan simpan kegiatan"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Hancurkan tiap kgiatan setelah ditinggal pengguna"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Batas proses latar blkg"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Tampilkan semua ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Tmplkn dialog Apl Tidak Merespons utk apl ltr blkg"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Tampilkan ANR background"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Tampilkan dialog Aplikasi Tidak Merespons untuk aplikasi yang berjalan di background"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Menampilkan peringatan channel notifikasi"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Menampilkan peringatan di layar saat aplikasi memposting notifikasi tanpa channel yang valid"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Paksa izinkan aplikasi di eksternal"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Fitur ini bersifat eksperimental dan dapat memengaruhi kinerja."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Digantikan oleh <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Sekitar <xliff:g id="TIME">%1$s</xliff:g> lagi"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Tersisa kira-kira <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Kira-kira <xliff:g id="TIME">%1$s</xliff:g> lagi berdasarkan penggunaan Anda"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Tersisa kira-kira <xliff:g id="TIME">%1$s</xliff:g> berdasarkan penggunaan Anda (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> tersisa"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Akan bertahan kira-kira sampai <xliff:g id="TIME">%1$s</xliff:g> berdasarkan penggunaan Anda (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Akan bertahan kira-kira sampai <xliff:g id="TIME">%1$s</xliff:g> berdasarkan penggunaan Anda"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Akan bertahan kira-kira sampai <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Akan bertahan kira-kira sampai <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tersisa kurang dari <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Tersisa kurang dari <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Tersisa lebih dari <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Tersisa lebih dari <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Ponsel mungkin segera dimatikan"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet mungkin segera dimatikan"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Perangkat mungkin segera dimatikan"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Ponsel mungkin segera dimatikan (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet mungkin segera dimatikan (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Perangkat mungkin segera dimatikan (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> lagi hingga terisi penuh"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> lagi terisi penuh"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Lebih lama."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Lebih cepat."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktifkan"</string>
<string name="cancel" msgid="6859253417269739139">"Batal"</string>
+ <string name="okay" msgid="1997666393121016642">"Oke"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktifkan"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Aktifkan mode Jangan Ganggu"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Tidak pernah"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Hanya untuk prioritas"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Anda tidak akan mendengar alarm berikutnya <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"pukul <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"pada <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Durasi"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Selalu tanya"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index 0e90dd69baf4..f8a4d1bf7abc 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Lokað DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Velja lokaða DNS-stillingu"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Slökkt"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Sjálfvirkt"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Hýsilheiti lokaðrar DNS-veitu"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Slá inn hýsilheiti DNS-veitu"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Sýna valkosti fyrir vottun þráðlausra skjáa"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Ekki vista virkni"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Eyðileggja öll verk um leið og notandi yfirgefur þau"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Takmörkun á bakgrunnsvinnslum"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Öll forrit sem svara ekki"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Sýna „Forrit svarar ekki“ fyrir bakgrunnsforrit"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Sýna ANR bakgrunnsforrita"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Sýna „Forrit svarar ekki“ fyrir bakgrunnsforrit"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Sýna viðvaranir tilkynningarásar"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Birtir viðvörun á skjánum þegar forrit birtir tilkynningu án gildrar rásar"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Þvinga fram leyfi forrita í ytri geymslu"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Þessi eiginleiki er á tilraunastigi og getur haft áhrif á frammistöðu."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Hnekkt af <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Um það bil <xliff:g id="TIME">%1$s</xliff:g> eftir"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Um það bil <xliff:g id="TIME">%1$s</xliff:g> eftir (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"U.þ.b. <xliff:g id="TIME">%1$s</xliff:g> eftir miðað við notkun þína"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Um það bil <xliff:g id="TIME">%1$s</xliff:g> eftir miðað við notkun þína (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> eftir"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Endist til u.þ.b. <xliff:g id="TIME">%1$s</xliff:g> miðað við notkun þína (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Endist til u.þ.b. <xliff:g id="TIME">%1$s</xliff:g> miðað við notkun þína"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Endist til u.þ.b. <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Endist til u.þ.b. <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Minna en <xliff:g id="THRESHOLD">%1$s</xliff:g> eftir"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Minna en <xliff:g id="THRESHOLD">%1$s</xliff:g> eftir (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Meira en <xliff:g id="TIME_REMAINING">%1$s</xliff:g> eftir (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Meira en <xliff:g id="TIME_REMAINING">%1$s</xliff:g> eftir"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Síminn gæti slökkt á sér fljótlega"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Spjaldtölvan gæti slökkt á sér fljótlega"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Tækið gæti slökkt á sér fljótlega"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Síminn gæti slökkt á sér fljótlega (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Spjaldtölvan gæti slökkt á sér fljótlega (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Tækið gæti slökkt á sér fljótlega (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> þar til hleðslu er lokið"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> þar til fullri hleðslu er náð"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Meiri tími."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Minni tími."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Kveikja"</string>
<string name="cancel" msgid="6859253417269739139">"Hætta við"</string>
+ <string name="okay" msgid="1997666393121016642">"Í lagi"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Kveikja"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Kveikja á „Ónáðið ekki“"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Aldrei"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Aðeins forgangur"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Ekki mun heyrast í næsta vekjara <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"á/í <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"á/í <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Lengd"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Spyrja í hvert skipti"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index 0ac2b8e0c4eb..d478be1148da 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS privato"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Seleziona modalità DNS privato"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Non attiva"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatico"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nome host del provider DNS privato"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Inserisci il nome host del provider DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Mostra opzioni per la certificazione display wireless"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Non conservare attività"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Elimina ogni attività appena l\'utente la interrompe"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Limite processi background"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Mostra tutti errori ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Mostra finestra ANR per applicazioni in background"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Mostra ANR in background"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Mostra finestra di dialogo ANR per app in background"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Mostra avvisi canale di notifica"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Viene mostrato un avviso sullo schermo quando un\'app pubblica una notifica senza un canale valido"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Forza autorizzazione app su memoria esterna"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Questa funzione è sperimentale e potrebbe influire sulle prestazioni."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Valore sostituito da <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Tempo approssimativo rimanente: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Tempo rimanente: <xliff:g id="TIME">%1$s</xliff:g> circa (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Tempo rimanente in base al tuo utilizzo: <xliff:g id="TIME">%1$s</xliff:g> circa"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Tempo rimanente in base al tuo utilizzo (<xliff:g id="LEVEL">%2$s</xliff:g>): <xliff:g id="TIME">%1$s</xliff:g> circa"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Tempo rimanente: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Tempo rimanente in base al tuo utilizzo (<xliff:g id="LEVEL">%2$s</xliff:g>): <xliff:g id="TIME">%1$s</xliff:g> circa"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Tempo rimanente in base al tuo utilizzo: <xliff:g id="TIME">%1$s</xliff:g> circa"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Tempo rimanente: <xliff:g id="TIME">%1$s</xliff:g> circa (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Tempo rimanente: <xliff:g id="TIME">%1$s</xliff:g> circa"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tempo rimanente: meno di <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Tempo rimanente: meno di <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Tempo rimanente: più di <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Tempo rimanente: più di <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Il telefono potrebbe spegnersi a breve"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Il tablet potrebbe spegnersi a breve"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Il dispositivo potrebbe spegnersi a breve"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Il telefono potrebbe spegnersi a breve (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Il tablet potrebbe spegnersi a breve (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Il dispositivo potrebbe spegnersi a breve (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Tempo rimanente alla carica completa: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> alla carica completa"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Più tempo."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Meno tempo."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Attiva"</string>
<string name="cancel" msgid="6859253417269739139">"Annulla"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Attiva"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Attiva Non disturbare"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Mai"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Solo con priorità"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Non sentirai la prossima sveglia <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"alle ore <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"il giorno <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Durata"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Chiedi ogni volta"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index 7c4eb7cd4e89..23efd15e86b9 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"‏DNS פרטי"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"‏צריך לבחור במצב DNS פרטי"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"מושבת"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"באופן אוטומטי"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"‏שם מארח של ספק DNS פרטי"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"‏צריך להזין את שם המארח של ספק DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"‏הצג אפשרויות עבור אישור של תצוגת WiFi"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"ללא שמירת פעילויות"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"השמד כל פעילות ברגע שהמשתמש עוזב אותה"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"מגבלה של תהליכים ברקע"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"‏הצג את כל פריטי ה-ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"הצג תיבת דו-שיח של \'אפליקציה לא מגיבה\' עבור אפליקציות שפועלות ברקע"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"‏הצגת מקרי ANR ברקע"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"הצגת תיבת דו-שיח של \'אפליקציה לא מגיבה\' עבור אפליקציות שפועלות ברקע"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"אזהרות לגבי ערוץ הודעות"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"הצגת אזהרה כשאפליקציה שולחת הודעה ללא ערוץ חוקי"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"אילוץ הרשאת אפליקציות באחסון חיצוני"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"תכונה זו היא ניסיונית ועשויה להשפיע על הביצועים."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"נעקף על ידי <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"עוד <xliff:g id="TIME">%1$s</xliff:g> בקירוב"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"נותרו בערך <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"על סמך השימוש במכשיר, הסוללה תתרוקן בעוד <xliff:g id="TIME">%1$s</xliff:g>, בקירוב"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"נותרו בערך <xliff:g id="TIME">%1$s</xliff:g> על סמך השימוש במכשיר (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"נותרו <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"תחזיק מעמד בערך עד <xliff:g id="TIME">%1$s</xliff:g> על סמך השימוש במכשיר (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"תחזיק מעמד בערך עד <xliff:g id="TIME">%1$s</xliff:g> על סמך השימוש במכשיר"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"תחזיק מעמד בערך עד <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"תחזיק מעמד בערך עד <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"נותרו פחות מ-<xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"נותרו פחות מ-<xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"נותרו יותר מ-<xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"הזמן שנותר: יותר מ-<xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ייתכן שהטלפון ייכבה בקרוב"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ייתכן שהטאבלט ייכבה בקרוב"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"ייתכן שהמכשיר ייכבה בקרוב"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ייתכן שהטלפון ייכבה בקרוב (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ייתכן שהטאבלט ייכבה בקרוב (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"ייתכן שהמכשיר ייכבה בקרוב (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g>‏ - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> עד לטעינה מלאה"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> עד לטעינה מלאה"</string>
@@ -442,8 +426,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"יותר זמן."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"פחות זמן."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"הפעלה"</string>
<string name="cancel" msgid="6859253417269739139">"ביטול"</string>
+ <string name="okay" msgid="1997666393121016642">"אישור"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"הפעלה"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"הפעלת מצב נא לא להפריע"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"אף פעם"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"עדיפות בלבד"</string>
@@ -452,4 +437,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"לא תושמע ההתראה הבאה <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"בשעה <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"ב-<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"משך"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"שאל בכל פעם"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index c5836d64f236..e60b09ff0a84 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"プライベート DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"プライベート DNS モードを選択"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"OFF"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"自動"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"プライベート DNS プロバイダのホスト名"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS プロバイダのホスト名を入力"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"ワイヤレスディスプレイ認証のオプションを表示"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"アクティビティを保持しない"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"ユーザーが離れたアクティビティを直ちに破棄する"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"バックグラウンドプロセスの上限"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"すべてのANRを表示"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"バックグラウンドアプリが応答しない場合に通知する"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"バックグラウンド ANR の表示"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"バックグラウンド アプリが応答しない場合に通知"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"通知チャネルの警告を表示"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"アプリから有効なチャネルのない通知が投稿されたときに画面上に警告を表示します"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"外部ストレージへのアプリの書き込みを許可"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"この機能は試験運用機能であり、パフォーマンスに影響することがあります。"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g>によって上書き済み"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"あと約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"残り時間: 約 <xliff:g id="TIME">%1$s</xliff:g>(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"残り時間: 約 <xliff:g id="TIME">%1$s</xliff:g>(使用状況に基づく)"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"残り時間: 約 <xliff:g id="TIME">%1$s</xliff:g>(使用状況に基づく)(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g>(残り時間)"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"残り時間: 約 <xliff:g id="TIME">%1$s</xliff:g>(使用状況に基づく)(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"残り時間: 約 <xliff:g id="TIME">%1$s</xliff:g>(使用状況に基づく)"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"残り時間: 約 <xliff:g id="TIME">%1$s</xliff:g>(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"残り時間: 約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"残り時間: <xliff:g id="THRESHOLD">%1$s</xliff:g>未満"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"残り時間: <xliff:g id="THRESHOLD">%1$s</xliff:g>未満(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"残り時間: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>以上(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"残り時間: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>以上"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"スマートフォンの電源がもうすぐ切れます"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"タブレットの電源がもうすぐ切れます"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"端末の電源がもうすぐ切れます"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"スマートフォンの電源がもうすぐ切れます(<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"タブレットの電源がもうすぐ切れます(<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"端末の電源がもうすぐ切れます(<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"フル充電まであと <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - フル充電まで <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -442,8 +426,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"長くします。"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"短くします。"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ON にする"</string>
<string name="cancel" msgid="6859253417269739139">"キャンセル"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ON にする"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"マナーモードを ON にする"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"なし"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"優先的な通知のみ"</string>
@@ -452,4 +437,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"次回のアラーム(<xliff:g id="WHEN">%1$s</xliff:g>)は鳴りません"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"期間"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"毎回確認"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index caf15ccafe6a..a726ba11c520 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"პირადი DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"აირჩიეთ პირადი DNS რეჟიმი"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"გამორთული"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"ავტომატური"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"პირადი DNS პროვაიდერის სერვერის სახელი"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"შეიყვანეთ DNS პროვაიდერის სერვერის სახელი"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"უსადენო ეკრანის სერტიფიცირების ვარიანტების ჩვენება"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"ნუ შეინარჩუნებ მოქმედებებს"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"ნებისმიერი აქტივობის განადგურება დასრულებისთანავე"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"ფონური პროცესების ლიმიტი"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"ყველა ANR-ის ჩვენება"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"შეტყობინების ჩვენება, როცა ფონური აპლიკაცია არ პასუხობს"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"ფონური ANR-ების ჩვენება"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"„აპი არ რეაგირებს“ შეტყობინების ჩვენება, როცა ფონური აპლიკაცია არ პასუხობს"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"შეტყობინებათა არხის გაფრთხილებების ჩვენება"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"ეკრანზე აჩვენებს გაფრთხილებას, როცა აპი შეტყობინებას სწორი არხის გარეშე განათავსებს"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"აპების დაშვება გარე მეხსიერებაში"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"ეს ფუნქცია საცდელია და შეიძლება გავლენა იქონიოს ფუნქციონალობაზე."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"უკუგებულია <xliff:g id="TITLE">%1$s</xliff:g>-ის მიერ"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"დარჩა დაახლოებით <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"იმუშავებს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"დარჩა დაახლოებით <xliff:g id="TIME">%1$s</xliff:g>, ბატარეის მოხმარების გათვალისწინებით"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"იმუშავებს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g>, ბატარეის მოხმარების გათვალისწინებით (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"დარჩენილია <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"იმუშავებს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g>, მოხმარების გათვალისწინებით (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"იმუშავებს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g>, მოხმარების გათვალისწინებით"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"იმუშავებს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"იმუშავებს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"დარჩენილია <xliff:g id="THRESHOLD">%1$s</xliff:g>-ზე ნაკლები"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"დარჩენილია <xliff:g id="THRESHOLD">%1$s</xliff:g>-ზე ნაკლები დრო (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"დარჩენილია <xliff:g id="TIME_REMAINING">%1$s</xliff:g>-ზე მეტი დრო (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"დარჩენილია <xliff:g id="TIME_REMAINING">%1$s</xliff:g>-ზე მეტი დრო"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ტელეფონი შეიძლება მალე გაითიშოს"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ტაბლეტი შეიძლება მალე გაითიშოს"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"მოწყობილობა შეიძლება მალე გაითიშოს"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ტელეფონი შეიძლება მალე გაითიშოს (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ტაბლეტი შეიძლება მალე გაითიშოს (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"მოწყობილობა შეიძლება მალე გაითიშოს (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"სრულ დატენვამდე დარჩენილია <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> — სრულ დატენვამდე დარჩა <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"მეტი დრო."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"ნაკლები დრო."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ჩართვა"</string>
<string name="cancel" msgid="6859253417269739139">"გაუქმება"</string>
+ <string name="okay" msgid="1997666393121016642">"კარგი"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ჩართვა"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"„არ შემაწუხოთ“ რეჟიმის ჩართვა"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"არასოდეს"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"მხოლოდ პრიორიტეტული"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"ვერ გაიგონებთ მომდევნო მაღვიძარას <xliff:g id="WHEN">%1$s</xliff:g>-ზე"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g>-ზე"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>-ზე"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"ხანგრძლივობა"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ყოველთვის მკითხეთ"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index 08733ae3f375..640e6328513f 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Жеке DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Жеке DNS режимін таңдаңыз"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Өшіру"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Автоматты"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Жеке DNS провайдерінің хост атауы"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS провайдерінің хост атауын енгізіңіз"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Сымсыз дисплей растау опцияларын көрсету"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Әрекеттерді сақтамау"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Әр әрекетті пайдаланушы аяқтай салысымен жою"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Фондық үрдіс шектеуі"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Барлық ANR (қолданба жауап бермеді) хабарларын көрсетіңіз"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Фондық қолданбалардың жауап бермегенін көрсету"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Фондық ANR-ларды көрсету"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Фондық қолданбалар үшін \"Қолданба жауап бермейді\" терезесін шығару"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Хабарландыру арнасының ескертулерін көрсету"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Қолданба жарамсыз арна арқылы хабарландыру жариялағанда, экрандық ескертуді көрсетеді"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Сыртқыда қолданбаларға мәжбүрлеп рұқсат ету"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Бұл мүмкіндік эксперименттік болып табылады және өнімділікке әсер етуі мүмкін."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> үстінен басқан"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Қалған <xliff:g id="TIME">%1$s</xliff:g> туралы"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Шамамен <xliff:g id="TIME">%1$s</xliff:g> қалды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Пайдалану негізінде шамамен <xliff:g id="TIME">%1$s</xliff:g> қалды"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Пайдалануға байланысты шамамен <xliff:g id="TIME">%1$s</xliff:g> қалды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> қалды"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Пайдалануға байланысты шамамен <xliff:g id="TIME">%1$s</xliff:g> уақытқа жетеді (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Пайдаланылуына қарай шамамен <xliff:g id="TIME">%1$s</xliff:g> уақытқа жетеді"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Шамамен <xliff:g id="TIME">%1$s</xliff:g> уақытқа дейін жетеді (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Шамамен <xliff:g id="TIME">%1$s</xliff:g> уақытқа жетеді"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> шамасынан аз қалды"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> шамасынан аз қалды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> шамасынан көп уақыт қалды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> шамасынан көп уақыт қалды"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Телефон көп ұзамай өшуі мүмкін"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Планшет көп ұзамай өшуі мүмкін"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Құрылғы көп ұзамай өшуі мүмкін"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Телефон көп ұзамай өшуі мүмкін (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Планшет көп ұзамай өшуі мүмкін (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Құрылғы көп ұзамай өшуі мүмкін (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Толық зарядқа <xliff:g id="TIME">%1$s</xliff:g> қалды"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – толық зарядталғанға дейін <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Көбірек уақыт."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Азырақ уақыт."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Қосу"</string>
<string name="cancel" msgid="6859253417269739139">"Бас тарту"</string>
+ <string name="okay" msgid="1997666393121016642">"Жарайды"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Қосу"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"\"Мазаламау\" режимін қосу"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Ешқашан"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Маңыздылары ғана"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Келесі дабылыңыз (уақыты: <xliff:g id="WHEN">%1$s</xliff:g>) естілмейді"</string>
<string name="alarm_template" msgid="4996153414057676512">"Уақыты: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"Уақыты: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Ұзақтығы"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Әрдайым сұрау"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index 57022a84d1e1..eac700ad008b 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS ឯកជន"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"ជ្រើសរើសមុខងារ DNS ឯកជន"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"បិទ"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"ស្វ័យប្រវត្តិ"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"ឈ្មោះម៉ាស៊ីនក្រុមហ៊ុនផ្ដល់សេវា DNS ឯកជន"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"បញ្ចូលឈ្មោះម៉ាស៊ីនរបស់ក្រុមហ៊ុនផ្ដល់សេវា DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"បង្ហាញ​ជម្រើស​សម្រាប់​វិញ្ញាបនបត្រ​បង្ហាញ​ឥត​ខ្សែ"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"កុំ​រក្សា​ទុកសកម្មភាព"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"បំផ្លាញ​គ្រប់​សកម្មភាព ពេល​អ្នក​ប្រើ​ចាកចេញ"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"ដែន​កំណត់​ដំណើរការ​ក្នុង​ផ្ទៃ​ខាង​ក្រោយ"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"បង្ហាញ ANRs ទាំងអស់"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"បង្ហាញ​ប្រអប់​កម្មវិធី​មិន​ឆ្លើយតប​សម្រាប់​កម្មវិធី​ផ្ទៃ​ខាង​ក្រោយ"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"បង្ហាញ ANR ផ្ទៃខាង​ក្រោយ"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"បង្ហាញ​ប្រអប់​កម្មវិធី​មិន​ឆ្លើយតប​សម្រាប់​កម្មវិធី​ផ្ទៃ​ខាង​ក្រោយ"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"បង្ហាញការព្រមានអំពីបណ្តាញជូនដំណឹង"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"បង្ហាញការព្រមាននៅលើអេក្រង់ នៅពេលកម្មវិធីបង្ហោះការជូនដំណឹងដោយមិនមានបណ្តាញត្រឹមត្រូវ"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"បង្ខំឲ្យអនុញ្ញាតកម្មវិធីលើឧបករណ៍ផ្ទុកខាងក្រៅ"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"មុខងារនេះ​គឺ​ជា​ការ​ពិសោធន៍ ហើយ​អាច​ប៉ះពាល់​ដំណើរការ​។"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"បដិសេធ​ដោយ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"សល់​ប្រហែល <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"នៅសល់ប្រហែល <xliff:g id="TIME">%1$s</xliff:g> ទៀត (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"សល់ប្រហែល <xliff:g id="TIME">%1$s</xliff:g> ទៀតផ្អែកលើការប្រើប្រាស់របស់អ្នក"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"នៅសល់​ប្រហែល <xliff:g id="TIME">%1$s</xliff:g> ទៀត ផ្អែក​លើការ​ប្រើប្រាស់​របស់អ្នក (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"នៅសល់ <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"នឹងអាច​ប្រើបាន​រហូតដល់​ម៉ោងប្រហែល <xliff:g id="TIME">%1$s</xliff:g> ដោយអាស្រ័យ​លើការ​ប្រើប្រាស់​របស់អ្នក (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"នឹងអាច​ប្រើបាន​រហូតដល់​ម៉ោងប្រហែល <xliff:g id="TIME">%1$s</xliff:g> ​ដោយ​អាស្រ័យលើ​ការប្រើប្រាស់​របស់អ្នក"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"នឹងអាច​ប្រើបាន​រហូតដល់​ម៉ោងប្រហែល <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"នឹងអាច​ប្រើបាន​រហូតដល់​ម៉ោងប្រហែល <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"នៅ​សល់​តិច​ជាង <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"នៅសល់​តិចជាង <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"នៅសល់​ច្រើនជាង <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"នៅ​សល់​ច្រើន​ជាង <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ទូរសព្ទ​អាចនឹង​បិទក្នុង​ពេលបន្តិច​ទៀត"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ថេប្លេត​អាចនឹង​បិទក្នុង​ពេលបន្តិច​ទៀត"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"ឧបករណ៍​អាចនឹង​បិទក្នុង​ពេលបន្តិច​ទៀត"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ទូរសព្ទ​អាចនឹង​បិទក្នុង​ពេលបន្តិច​ទៀត (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ថេប្លេត​អាចនឹង​បិទក្នុង​ពេលបន្តិច​ទៀត (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"ឧបករណ៍​អាចនឹង​បិទក្នុង​ពេលបន្តិច​ទៀត (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"សល់ <xliff:g id="TIME">%1$s</xliff:g> ទើប​សាកថ្ម​ពេញ"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> រហូតដល់សាកពេញ"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"រយៈពេល​ច្រើន​ជាង។"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"រយៈពេល​តិច​ជាង។"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"បើក"</string>
<string name="cancel" msgid="6859253417269739139">"បោះ​បង់​"</string>
+ <string name="okay" msgid="1997666393121016642">"យល់ព្រម"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"បើក"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"បើកមុខងារកុំរំខាន"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"កុំឱ្យសោះ"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"អាទិភាពប៉ុណ្ណោះ"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"អ្នក​នឹង​មិន​ឮ​ម៉ោង​រោទ៍​បន្ទាប់​របស់​អ្នក​នៅ​ម៉ោង <xliff:g id="WHEN">%1$s</xliff:g> ទេ"</string>
<string name="alarm_template" msgid="4996153414057676512">"នៅ​ម៉ោង <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"នៅ​ថ្ងៃ <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"រយៈពេល"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"សួរគ្រប់ពេល"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index 8a5b2515ae8e..b4e89b38a3d8 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"ಖಾಸಗಿ DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"ಖಾಸಗಿ DNS ಮೋಡ್ ಆಯ್ಕೆಮಾಡಿ"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"ಆಫ್"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"ಸ್ವಯಂಚಾಲಿತ"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"ಖಾಸಗಿ DNS ಪೂರೈಕೆದಾರರ ಹೋಸ್ಟ್‌ಹೆಸರು"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS ಪೂರೈಕೆದಾರರ ಹೋಸ್ಟ್‌ಹೆಸರನ್ನು ನಮೂದಿಸಿ"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"ವೈರ್‌ಲೆಸ್‌‌‌ ಪ್ರದರ್ಶನ ಪ್ರಮಾಣೀಕರಣಕ್ಕಾಗಿ ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"ಚಟುವಟಿಕೆಗಳನ್ನು ಇರಿಸದಿರು"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"ಬಳಕೆದಾರರು ಹೊರಹೋಗುತ್ತಿದ್ದಂತೆಯೇ ಚಟುವಟಿಕೆ ನಾಶಪಡಿಸು"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"ಹಿನ್ನೆಲೆ ಪ್ರಕ್ರಿಯೆ ಮಿತಿ"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"ಎಲ್ಲ ANR ಗಳನ್ನು ತೋರಿಸು"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"ಹಿನ್ನೆಲೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಿಲ್ಲ ಎಂಬ ಸಂಭಾಷಣೆ ತೋರಿಸು"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"ಹಿನ್ನೆಲೆ ANR ಗಳನ್ನು ತೋರಿಸಿ"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"ಹಿನ್ನೆಲೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಿಲ್ಲ ಎಂಬ ಸಂಭಾಷಣೆ ತೋರಿಸಿ"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"ಅಧಿಸೂಚನೆ ಎಚ್ಚರಿಕೆ ತೋರಿಸಿ"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"ಅಮಾನ್ಯ ಚಾನಲ್ ಅಧಿಸೂಚನೆಗಾಗಿ ಪರದೆಯಲ್ಲಿ ಎಚ್ಚರಿಕೆ"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"ಬಾಹ್ಯವಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಒತ್ತಾಯವಾಗಿ ಅನುಮತಿಸಿ"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"ಇದು ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ. ಕಾರ್ಯಕ್ಷಮತೆ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> ಮೂಲಕ ಅತಿಕ್ರಮಿಸುತ್ತದೆ"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"ಸುಮಾರು <xliff:g id="TIME">%1$s</xliff:g> ಬಾಕಿಯಿದೆ"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"<xliff:g id="TIME">%1$s</xliff:g> ಸಮಯ ಬಾಕಿ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"ನಿಮ್ಮ ಬಳಕೆಯ ಆಧಾರದ ಮೇಲೆ ಸುಮಾರು <xliff:g id="TIME">%1$s</xliff:g> ಉಳಿದಿದೆ"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"ನಿಮ್ಮ ಬಳಕೆಯ <xliff:g id="LEVEL">%2$s</xliff:g> ಆಧಾರದ ಮೇಲೆ ಸುಮಾರು <xliff:g id="TIME">%1$s</xliff:g> ಉಳಿದಿದೆ"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> ಉಳಿದಿದೆ"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"ನಿಮ್ಮ ಬಳಕೆ (<xliff:g id="LEVEL">%2$s</xliff:g>) ಆಧರಿಸಿ <xliff:g id="TIME">%1$s</xliff:g> ಸಮಯದವರೆಗೆ ರನ್ ಆಗುತ್ತದೆ"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"ನಿಮ್ಮ ಬಳಕೆ ಆಧರಿಸಿ <xliff:g id="TIME">%1$s</xliff:g> ಸಮಯದವರೆಗೆ ರನ್ ಆಗುತ್ತದೆ"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"<xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) ಸಮಯದವರೆಗೆ ಫೋನ್ ರನ್‌ಆಗುತ್ತದೆ"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"<xliff:g id="TIME">%1$s</xliff:g> ಸಮಯದವರೆಗೆ ರನ್ ಆಗುತ್ತದೆ"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ ಸಮಯ ಉಳಿದಿದೆ"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ಕ್ಕಿಂತ ಕಡಿಮೆ (<xliff:g id="LEVEL">%2$s</xliff:g>) ಬಾಕಿ"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ಕ್ಕಿಂತ ಹೆಚ್ಚು (<xliff:g id="LEVEL">%2$s</xliff:g>) ಬಾಕಿ"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಮಯ ಉಳಿದಿದೆ"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ಫೋನ್ ಶೀಘ್ರದಲ್ಲೇ ಶಟ್ ಡೌನ್ ಆಗಬಹುದು"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ಟ್ಯಾಬ್ಲೆಟ್‌‌ ಶೀಘ್ರದಲ್ಲೇ ಶಟ್ ಡೌನ್ ಆಗಬಹುದು"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"ಸಾಧನವು ಶೀಘ್ರದಲ್ಲೇ ಶಟ್ ಡೌನ್ ಆಗಬಹುದು"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ಫೋನ್ ಶೀಘ್ರದಲ್ಲೇ ಶಟ್ ಡೌನ್ ಆಗಬಹುದು (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ಟ್ಯಾಬ್ಲೆಟ್‌‌ ಶೀಘ್ರದಲ್ಲೇ ಶಟ್ ಡೌನ್ ಆಗಬಹುದು (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"ಸಾಧನವು ಶೀಘ್ರದಲ್ಲೇ ಶಟ್ ಡೌನ್ ಆಗಬಹುದು (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"ಸಂಪೂರ್ಣ ಚಾರ್ಜ್ ಆಗಲು <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - ಸಂಪೂರ್ಣ ಚಾರ್ಜ್ ಆಗಲು <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"ಹೆಚ್ಚು ಸಮಯ."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"ಕಡಿಮೆ ಸಮಯ."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ಆನ್ ಮಾಡಿ"</string>
<string name="cancel" msgid="6859253417269739139">"ರದ್ದುಮಾಡಿ"</string>
+ <string name="okay" msgid="1997666393121016642">"ಸರಿ"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ಆನ್ ಮಾಡಿ"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಅನ್ನು ಆನ್ ಮಾಡಿ"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"ಎಂದೂ ಇಲ್ಲ"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"ಆದ್ಯತೆ ಮಾತ್ರ"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"ನಿಮ್ಮ ಮುಂದಿನ <xliff:g id="WHEN">%1$s</xliff:g> ಅಲಾರಮ್ ಅನ್ನು ನೀವು ಆಲಿಸುವುದಿಲ್ಲ"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g> ರಲ್ಲಿ"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g> ಕ್ಕೆ"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"ಅವಧಿ"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ಪ್ರತಿ ಬಾರಿ ಕೇಳಿ"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index af1859abe4b7..ac265b1cfb8c 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"비공개 DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"비공개 DNS 모드 선택"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"사용 안함"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"자동"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"비공개 DNS 제공업체 호스트 이름"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS 제공업체의 호스트 이름 입력"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"무선 디스플레이 인증서 옵션 표시"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"액티비티 유지 안함"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"사용자가 종료하는 즉시 바로 제거"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"백그라운드 프로세스 수 제한"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"모든 ANR 보기"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"백그라운드 앱에 대해 앱 응답 없음 대화상자 표시"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"백그라운드 ANR 표시"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"백그라운드 앱과 관련해 앱 응답 없음 대화상자 표시"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"알림 채널 경고 표시"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"앱에서 유효한 채널 없이 알림을 게시하면 화면에 경고가 표시됩니다."</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"외부에서 앱 강제 허용"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"실험실 기능이며 성능에 영향을 줄 수 있습니다."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> 우선 적용됨"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"약 <xliff:g id="TIME">%1$s</xliff:g> 남음"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"약 <xliff:g id="TIME">%1$s</xliff:g> 남음(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"내 사용량을 기준으로 약 <xliff:g id="TIME">%1$s</xliff:g> 남음"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"내 사용량(<xliff:g id="LEVEL">%2$s</xliff:g>)을 기준으로 약 <xliff:g id="TIME">%1$s</xliff:g> 남음"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> 남음"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"내 사용량에 따르면 <xliff:g id="TIME">%1$s</xliff:g> 정도까지 사용 가능(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"내 사용량에 따르면 <xliff:g id="TIME">%1$s</xliff:g> 정도까지 사용 가능"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"<xliff:g id="TIME">%1$s</xliff:g> 정도까지 사용 가능(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"<xliff:g id="TIME">%1$s</xliff:g> 정도까지 사용 가능"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> 미만 남음"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> 미만 남음(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> 이상 남음(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> 이상 남음"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"휴대전화가 곧 종료될 수 있음"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"태블릿이 곧 종료될 수 있음"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"기기가 곧 종료될 수 있음"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"휴대전화가 곧 종료될 수 있음(<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"태블릿이 곧 종료될 수 있음(<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"기기가 곧 종료될 수 있음(<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"충전 완료까지 <xliff:g id="TIME">%1$s</xliff:g> 남음"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - 충전 완료까지 <xliff:g id="TIME">%2$s</xliff:g> 남음"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"시간 늘리기"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"시간 줄이기"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"켜기"</string>
<string name="cancel" msgid="6859253417269739139">"취소"</string>
+ <string name="okay" msgid="1997666393121016642">"확인"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"켜기"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"알림 일시중지 사용 설정"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"사용 안함"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"중요 알림만"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"<xliff:g id="WHEN">%1$s</xliff:g>에 다음 알람을 들을 수 없습니다."</string>
<string name="alarm_template" msgid="4996153414057676512">"시간: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"일시: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"지속 시간"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"항상 확인"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index baf27532602d..ff6bc8c5b3c9 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Купуя DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Купуя DNS режимин тандаңыз"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Өчүк"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Автоматтык режим"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Купуя DNS түйүндүн аталышы"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS түйүндүн аталышын киргизиңиз"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Зымсыз дисплейди сертификатто мүмкүнчүлүктөрүн көргөзүү"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Аракеттер сакталбасын"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Колдонуучу аракетти таштап кетээр замат аны бузуу"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Фондогу процесстер чеги"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Бардык ANR\'лерди көрсөтүү"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Фондогу колдонмолорго Колдонмо Жооп Бербейт деп көрсөтүү"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Фондогу \"Колдонмо жооп бербей жатат\" деп көрсөтүү"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Фондогу колдонмолор үчүн \"Колдонмо жооп бербей жатат\" деп көрсөтүү"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Эскертме каналынын эскертүүлөрүн көрсөтүү"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Колдонмодон жарактуу каналсыз эскертме жайгаштырылганда, экрандан эскертүү көрсөтүлөт"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Тышкы сактагычка сактоого уруксат берүү"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Бул сынамык мүмкүнчүлүк болгондуктан, түзмөктүн иштешине таасир этиши мүмкүн."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> менен алмаштырылган"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Батарея түгөнгөнгө чейин калган убакыт: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Болжол менен <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) калды"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Колдонушуңузга караганда болжол менен <xliff:g id="TIME">%1$s</xliff:g> калды"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Колдонгонуңузга караганда болжол менен <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) калды"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> калды"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Колдонгонуңузга караганда болжол менен <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) кийин өчөт"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Колдонгонуңузга караганда болжол менен <xliff:g id="TIME">%1$s</xliff:g> кийин өчөт"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Болжол менен <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) кийин өчөт"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Болжол менен <xliff:g id="TIME">%1$s</xliff:g> кийин өчөт"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> жетпеген убакыт калды"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> жетпеген убакыт калды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ашыгыраак убакыт калды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ашыгыраак убакыт калды"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Телефон бир аздан кийин өчүп калышы мүмкүн"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Планшет бир аздан кийин өчүп калышы мүмкүн"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Түзмөк бир аздан кийин өчүп калышы мүмкүн"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Телефон бир аздан кийин өчүп калышы мүмкүн (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Планшет бир аздан кийин өчүп калышы мүмкүн (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Түзмөк бир аздан кийин өчүп калышы мүмкүн (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Батарея толгонго чейин калган убакыт: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> кийин толук кубатталат"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Көбүрөөк убакыт."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Азыраак убакыт."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Күйгүзүү"</string>
<string name="cancel" msgid="6859253417269739139">"Жокко чыгаруу"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Күйгүзүү"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"\"Тынчымды алба\" режимин күйгүзүү"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Эч качан"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Шашылыш эскертмелер гана"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"<xliff:g id="WHEN">%1$s</xliff:g> боло турган кийинки ойготкучту укпайсыз"</string>
<string name="alarm_template" msgid="4996153414057676512">"саат <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Узактыгы"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Ар дайым суралсын"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index 5f673f2b9d6e..424164e026a4 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS ສ່ວນຕົວ"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"ເລືອກໂໝດ DNS ສ່ວນຕົວ"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"ປິດ"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"ອັດຕະໂນມັດ"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"ຊື່ໂຮສຜູ້ໃຫ້ບໍລິການ DNS ສ່ວນຕົວ"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"ລະບຸຊື່ໂຮສຂອງຜູ້ໃຫ້ບໍລິການ DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"ສະແດງໂຕເລືອກສຳລັບການສະແດງການຮັບຮອງລະບົບໄຮ້ສາຍ"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"ບໍ່ຕ້ອງຮັກສາການເຮັດວຽກ"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"ລຶບທຸກການເຄື່ອນໄຫວທັນທີທີ່ຜູ່ໃຊ້ອອກຈາກມັນ"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"ການຈຳກັດໂປຣເຊສໃນພື້ນຫຼັງ"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"ສະ​ແດງ ANRs ທັງ​ຫມົດ"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"ສະແດງໜ້າຈໍແອັບຯທີ່ບໍ່ຕອບສະໜອງສຳລັບແອັບຯພື້ນຫຼັງ"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"ສະແດງ ANR ພື້ນຫຼັງ"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"ສະແດງກ່ອງຂໍ້ຄວາມບໍ່ຕອບສະໜອງແອັບສຳລັບແອັບພື້ນຫຼັງ"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"ສະແດງຄຳເຕືອນຊ່ອງການແຈ້ງເຕືອນ"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"ສະແດງຄຳເຕືອນໃນໜ້າຈໍເມື່ອແອັບໂພສການແຈ້ງເຕືອນໂດຍບໍ່ມີຊ່ອງທີ່ຖືກຕ້ອງ"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"ບັງຄັບອະນຸຍາດແອັບ​ຢູ່​ພາຍນອກ"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"​ຄຸນ​ສົມ​ບັດ​ນີ້​ກຳ​ລັງ​ຢູ່​ໃນ​ການ​ທົດ​ລອງ​ແລະ​ອາດ​ມີ​ຜົນ​ຕໍ່​ປະ​ສິດ​ທິ​ພາບ."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"ຖືກແທນໂດຍ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"ອີກປະມານ <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"ເຫຼືອອີກປະມານ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"ເຫຼືອອີກປະມານ <xliff:g id="TIME">%1$s</xliff:g> ໂດຍອ້າງອີງຈາກການນຳໃຊ້ຂອງທ່ານ"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"ເຫຼືອອີກປະມານ <xliff:g id="TIME">%1$s</xliff:g> ໂດຍອ້າງອີງຈາກການນຳໃຊ້ຂອງທ່ານ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"ຍັງເຫຼືອ <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"ຈະໃຊ້ໄດ້ຈົນຮອດປະມານ <xliff:g id="TIME">%1$s</xliff:g> ໂດຍອ້າງອີງຈາກການນຳໃຊ້ຂອງທ່ານ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"ຈະໃຊ້ໄດ້ຈົນຮອດປະມານ <xliff:g id="TIME">%1$s</xliff:g> ໂດຍອ້າງອີງຈາກການນຳໃຊ້ຂອງທ່ານ"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"ຈະໃຊ້ໄດ້ຈົນຮອດປະມານ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"ຈະໃຊ້ໄດ້ຈົນຮອດປະມານ <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"ຍັງເຫຼືອໜ້ອຍກວ່າ <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"ຍັງເຫຼືອໜ້ອຍກວ່າ <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"ຍັງເຫຼືອຫຼາຍກວ່າ <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"ຍັງເຫຼືອຫຼາຍກວ່າ <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ໂທລະສັບອາດຈະປິດໃນໄວໆນີ້"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ແທັບເລັດອາດຈະປິດໃນໄວໆນີ້"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"ອຸປະກອນອາດຈະປິດໃນໄວໆນີ້"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ໂທລະສັບອາດຈະປິດໃນໄວໆນີ້ (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ແທັບເລັດອາດຈະປິດໃນໄວໆນີ້ (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"ອຸປະກອນອາດຈະປິດໃນໄວໆນີ້ (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> ຈົນກວ່າຈະສາກເຕັມ"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> ຈົນກວ່າຈະສາກເຕັມ"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"ເພີ່ມເວລາ."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"ຫຼຸດເວລາ."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ເປີດ"</string>
<string name="cancel" msgid="6859253417269739139">"ຍົກເລີກ"</string>
+ <string name="okay" msgid="1997666393121016642">"ຕົກລົງ"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ເປີດ"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"ເປີດໂໝດຫ້າມລົບກວນ"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"ບໍ່ໃຊ້"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"ສຳຄັນເທົ່ານັ້ນ"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"ທ່ານຈະບໍ່ໄດ້ຍິນສຽງໂມງປຸກເທື່ອຕໍ່ໄປຂອງທ່ານເວລາ <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"ເວລາ <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"ເວລາ <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"ໄລຍະເວລາ"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ຖາມທຸກເທື່ອ"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index eb48b7f6a78b..377bfc6b6d4d 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privatus DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Pasirinkite privataus DNS režimą"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Išjungta"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatinis"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Privataus DNS teikėjo prieglobos serverio pavadinimas"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Įveskite DNS teikėjo prieglobos serverio pavadinimą"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Rodyti belaidžio rodymo sertifikavimo parinktis"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Nesaugoti veiklos"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Sunaikinti visą veiklą, kai naud. iš jos išeina"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Fono procesų apribojimas"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Rodyti visus ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Fon. programose rodyti dialogo langą „Neatsako“"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Rodyti foninius ANR"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Foninėse programose rodyti dialogo langą „Programa neatsako“"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Rodyti pran. kan. įspėj."</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Ekr. rod. įsp., kai progr. pask. pr. be tink. kan."</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Priverstinai leisti programas išorinėje atmintin."</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ši funkcija yra eksperimentinė ir ji gali turėti įtakos našumui."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Nepaisyta naudojant nuostatą „<xliff:g id="TITLE">%1$s</xliff:g>“"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Liko maždaug <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Liko maždaug <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Liko maždaug <xliff:g id="TIME">%1$s</xliff:g>, atsižvelgiant į naudojimą"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Liko maždaug <xliff:g id="TIME">%1$s</xliff:g>, atsižvelgiant į naudojimą (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Liko <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Išsikraus maždaug po <xliff:g id="TIME">%1$s</xliff:g>, atsižvelgiant į naudojimą (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Išsikraus maždaug po <xliff:g id="TIME">%1$s</xliff:g>, atsižvelgiant į naudojimą"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Išsikraus maždaug po <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Išsikraus maždaug po <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Liko mažiau nei <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Liko mažiau nei <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Liko daugiau nei <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Liko daugiau nei <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefonas netrukus gali būti išjungtas"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Planšetinis komp. netrukus gali būti išjungtas"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Įrenginys netrukus gali būti išjungtas"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefonas netrukus gali būti išjungtas (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Planšetinis kompiuteris netrukus gali būti išjungtas (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Įrenginys netrukus gali būti išjungtas (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Iki visiškos įkrovos liko <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> iki visiško įkrovimo"</string>
@@ -442,8 +426,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Daugiau laiko."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Mažiau laiko."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Įjungti"</string>
<string name="cancel" msgid="6859253417269739139">"Atšaukti"</string>
+ <string name="okay" msgid="1997666393121016642">"Gerai"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Įjungti"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Netrukdymo režimo įjungimas"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Niekada"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Tik prioritetiniai"</string>
@@ -452,4 +437,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Negirdėsite kito signalo <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Trukmė"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Klausti kaskart"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 96a9d1e0b7cc..d27812945bb0 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privāts DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Atlasiet privāta DNS režīmu"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Izslēgts"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automātiski"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Privātā DNS pakalpojumu sniedzēja saimniekdatora nosaukums"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Ievadiet DNS pakalpojumu sniedzēja saimniekdatora nosaukumu"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Rādīt bezvadu attēlošanas sertifikācijas iespējas"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Nesaglabāt darbības"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Iznīcināt katru darbību, kad lietotājs to pārtrauc"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Fona procesu ierobežojums"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Rādīt visus ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Rādīt fona lietotņu dialoglodz. Lietotne nereaģē"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Rādīt fona ANR"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Rādīt fona lietotņu dialoglodziņu Lietotne nereaģē"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Paziņojumu kanāla brīdinājumi"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Brīdinājums ekrānā, kad lietotne publicē paziņojumu, nenorādot derīgu kanālu"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Lietotņu piespiedu atļaušana ārējā krātuvē"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Šī funkcija ir eksperimentāla un var ietekmēt veiktspēju."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Jaunā preference: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Atlikušais laiks: aptuveni <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Atlikušais laiks: aptuveni <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Atlikušais laiks: aptuveni <xliff:g id="TIME">%1$s</xliff:g> (ņemot vērā lietojumu)"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Ņemot vērā lietojumu, atlikušais laiks: aptuveni <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Atlicis: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Ņemot vērā lietojumu, darbosies aptuveni līdz <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Ņemot vērā lietojumu, darbosies aptuveni līdz <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Darbosies aptuveni līdz <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Darbosies aptuveni līdz <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Atlikušais laiks — mazāk nekā <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Atlicis mazāk nekā <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Atlicis vairāk nekā <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Atlicis vairāk nekā <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Iespējams, tālrunis drīz izslēgsies"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Iespējams, planšetdators drīz izslēgsies"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Iespējams, ierīce drīz izslēgsies"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Iespējams, tālrunis drīz izslēgsies (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Iespējams, planšetdators drīz izslēgsies (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Iespējams, ierīce drīz izslēgsies (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> — <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Atlikušais laiks līdz pilnai uzlādei: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g>, kamēr pilnībā uzlādēts"</string>
@@ -441,8 +425,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Vairāk laika."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Mazāk laika."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ieslēgt"</string>
<string name="cancel" msgid="6859253417269739139">"Atcelt"</string>
+ <string name="okay" msgid="1997666393121016642">"LABI"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ieslēgt"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Režīma “Netraucēt” ieslēgšana"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nekad"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Tikai prioritārie pārtraukumi"</string>
@@ -451,4 +436,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Nākamais signāls (<xliff:g id="WHEN">%1$s</xliff:g>) netiks atskaņots."</string>
<string name="alarm_template" msgid="4996153414057676512">"plkst. <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Ilgums"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Vaicāt katru reizi"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index 534e994c4212..cd9af2d36ad0 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Приватен DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Изберете режим на приватен DNS"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Исклучено"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Автоматски"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Име на хост на оператор на приватен DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Внесете име на хост на операторот на DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Покажи ги опциите за безжичен приказ на сертификат"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Не чувај активности"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Уништи ја секоја активност штом корисникот ќе го остави"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Граница на процес во зад."</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Прикажи ги сите ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Прикажи „Апл. не реагира“ за. апл. во заднина"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Прикажи заднински ANR"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Прикажи го дијалогот „Апликацијата не реагира“ за апликации во заднина"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Прикажи ги предупредувањата на каналот за известувањe"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Предупредува кога апликација дава известување без важечки канал"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Принуд. дозволете апликации на надворешна меморија"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Функцијата е експериментална и може да влијае на изведбата."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Прескокнато според <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Преостануваат околу <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Уште околу <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Уште околу <xliff:g id="TIME">%1$s</xliff:g> според користењето"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Уште околу <xliff:g id="TIME">%1$s</xliff:g> според вашето користење (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"уште <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Ќе трае до околу <xliff:g id="TIME">%1$s</xliff:g> според вашето користење (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Ќе трае до околу <xliff:g id="TIME">%1$s</xliff:g> според вашето користење"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Ќе трае до околу <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Ќе трае до околу <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Уште помалку од <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Уште помалку од <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Уште повеќе од <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Уште повеќе од <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Телефон може да се исклучи наскоро"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Таблетот може да се исклучи наскоро"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Уредот може да се исклучи наскоро"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Телефон може да се исклучи наскоро (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Таблетот може да се исклучи наскоро (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Уредот може да се исклучи наскоро (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Преостануваат <xliff:g id="TIME">%1$s</xliff:g> дури се наполни целосно"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> дури се наполни целосно"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Повеќе време."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Помалку време."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Вклучи"</string>
<string name="cancel" msgid="6859253417269739139">"Откажи"</string>
+ <string name="okay" msgid="1997666393121016642">"Во ред"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Вклучи"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Исклучување на „Не вознемирувај“"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Никогаш"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Само приоритетно"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Нема да се вклучи следниот аларм <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"во <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"во <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Времетраење"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Секогаш прашувај"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index 20a1e29f843b..74d1bcd395f2 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"സ്വകാര്യ DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"സ്വകാര്യ DNS മോഡ് തിരഞ്ഞെടുക്കുക"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"ഓഫ്"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"സ്വമേധയാ"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"സ്വകാര്യ DNS ദാതാവിന്‍റെ ഹോസ്റ്റുനാമം"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS ദാതാവിന്‍റെ ഹോസ്റ്റുനാമം നൽകുക"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"വയർലെസ് ഡിസ്‌പ്ലേ സർട്ടിഫിക്കേഷനായി ഓപ്‌ഷനുകൾ ദൃശ്യമാക്കുക"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"പ്രവർത്തനങ്ങൾ സൂക്ഷിക്കരുത്"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"ഉപയോക്താവ് ഉപേക്ഷിക്കുന്നതിനനുസരിച്ച് എല്ലാ പ്രവർത്തനങ്ങളും നശിപ്പിക്കുക"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"പശ്ചാത്തല പ്രോസ‌സ്സ് പരിധി"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"എല്ലാ ANR-കളും ദൃശ്യമാക്കുക"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"പ‌ശ്ചാത്തല അപ്ലിക്കേഷനുകൾക്ക് അപ്ലിക്കേഷൻ പ്രതികരിക്കുന്നില്ല എന്ന ഡയലോഗ് കാണിക്കുക"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"പശ്ചാത്തല ANR-കൾ കാണിക്കുക"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"പ‌ശ്ചാത്തല ആപ്പുകൾക്കായി \'ആപ്പ് പ്രതികരിക്കുന്നില്ല\' ഡയലോഗ് പ്രദര്‍ശിപ്പിക്കുക"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"ചാനൽ മുന്നറിയിപ്പ് കാണിക്കൂ"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"സാധുതയുള്ള ചാനലില്ലാതെ ഒരു ആപ്പ്, അറിയിപ്പ് പോസ്റ്റുചെയ്യുമ്പോൾ ഓൺ-സ്‌ക്രീൻ മുന്നറിയിപ്പ് ‌പ്രദർശിപ്പിക്കുന്നു"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"ബാഹ്യമായതിൽ നിർബന്ധിച്ച് അനുവദിക്കുക"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"ഈ ഫീച്ചർ പരീക്ഷണാത്മകമായതിനാൽ പ്രകടനത്തെ ബാധിച്ചേക്കാം."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> ഉപയോഗിച്ച് അസാധുവാക്കി"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> ശേഷിക്കുന്നു"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> ശേഷിക്കുന്നു (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"നിങ്ങളുടെ ഉപയോഗത്തെ അടിസ്ഥാനമാക്കി ഏതാണ്ട് <xliff:g id="TIME">%1$s</xliff:g> ശേഷിക്കുന്നു"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"നിങ്ങളുടെ ഉപയോഗത്തെ അടിസ്ഥാനമാക്കി ഏതാണ്ട് <xliff:g id="TIME">%1$s</xliff:g> ശേഷിക്കുന്നു (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> ശേഷിക്കുന്നു"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"നിങ്ങളുടെ ഉപയോഗത്തെ അടിസ്ഥാനമാക്കി, ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> വരെ നീണ്ടുനിൽക്കും (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"നിങ്ങളുടെ ഉപയോഗത്തെ അടിസ്ഥാനമാക്കി, ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> വരെ നീണ്ടുനിൽക്കും"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) വരെ നീണ്ടുനിൽക്കും"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> വരെ നീണ്ടുനിൽക്കും"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-ൽ കുറവ് സമയം ശേഷിക്കുന്നു"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-ൽ കുറവ് സമയം ശേഷിക്കുന്നു (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>-ൽ കൂടുതൽ സമയം ശേഷിക്കുന്നു (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>-ൽ കൂടുതൽ സമയം ശേഷിക്കുന്നു"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ഫോൺ ഉടൻ ഷട്ട് ഡൗൺ ആയേക്കാം"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ടാബ്‌ലെറ്റ് ഉടൻ ഷട്ട് ഡൗൺ ആയേക്കാം"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"ഉപകരണം ഉടൻ ഷട്ട്ഡൗൺ ആയേക്കാം"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ഫോൺ ഉടൻ ഷട്ട് ഡൗൺ ആയേക്കാം (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ടാബ്‌ലെറ്റ് ഉടൻ ഷട്ട് ഡൗൺ ആയേക്കാം (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"ഉപകരണം ഉടൻ ഷട്ട്ഡൗൺ ആയേക്കാം (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"മുഴുവൻ ചാർജാകാൻ <xliff:g id="TIME">%1$s</xliff:g> ശേഷിക്കുന്നു"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - ഫുൾ ചാർജാകാൻ <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"കൂടുതൽ സമയം."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"കുറഞ്ഞ സമയം."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ഓണാക്കുക"</string>
<string name="cancel" msgid="6859253417269739139">"റദ്ദാക്കുക"</string>
+ <string name="okay" msgid="1997666393121016642">"ശരി"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ഓണാക്കുക"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"\'ശല്യപ്പെടുത്തരുത്\' ഓണാക്കുക"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"ഒരിക്കലും ഇല്ല"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"മുൻഗണന മാത്രം"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"<xliff:g id="WHEN">%1$s</xliff:g>-നുള്ള നിങ്ങളുടെ അടുത്ത അലാറം കേൾക്കില്ല"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g>-ന്"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>-ന്"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"ദൈർഘ്യം"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"എപ്പോഴും ചോദിക്കുക"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index 04ca84ac4c48..faded025ca36 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Хувийн DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Хувийн DNS Горимыг сонгох"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Унтраалттай"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Автомат"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Хувийн DNS-н үйлчилгээ үзүүлэгчийн хостын нэр"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS-н үйлчилгээ үзүүлэгчийн хостын нэрийг оруулах"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Утасгүй дэлгэцийн сертификатын сонголтыг харуулах"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Үйлдлүүдийг хадгалахгүй"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Үйлдэл бүрийг хэрэглэгч орхимогц нь устгах"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Далд процессын хязгаар"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Бүх ANRs харуулах"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Далд апп-уудад Апп Хариу Өгөхгүй байна гэснийг харуулах"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Цаана ANR-г харуулах"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Апп хариу өгөхгүй байна гэсэн харилцах цонхыг Цаана байгаа аппад харуулах"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Мэдэгдлийн сувгийн анхааруулгыг харуулах"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Апп хүчинтэй суваггүйгээр мэдэгдэл гаргах үед дэлгэцэд сануулга харуулна"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Аппыг гадаад санах ойд хадгалахыг зөвшөөрөх"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Энэ функц туршилтынх бөгөөд ажиллагаанд нөлөөлж болзошгүй."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Давхарласан <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> үлдсэн"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> үлдсэн (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Таны хэрэглээнд тулгуурлан <xliff:g id="TIME">%1$s</xliff:g> орчмын хугацаа үлдсэн байна"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Таны хэрэглээнд тулгуурлан ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> үлдсэн (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> үлдсэн"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Таны хэрэглээнд тулгуурлан ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> үргэлжилнэ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Таны хэрэглээнд тулгуурлан ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> үргэлжилнэ"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> үргэлжилнэ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> үргэлжилнэ"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-с бага хугацаа үлдсэн"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-с бага хугацаа үлдсэн (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>-с их хугацаа үлдсэн (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>-с их хугацаа үлдсэн"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Утас удахгүй унтарна"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Таблет удахгүй унтарна"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Төхөөрөмж удахгүй унтарна"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Утас удахгүй унтарна (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Таблет удахгүй унтарна (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Төхөөрөмж удахгүй унтарна (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Бүрэн цэнэглэх хүртэл <xliff:g id="TIME">%1$s</xliff:g> үлдсэн"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"бүрэн цэнэглэх хүртэл <xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Их хугацаа."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Бага хугацаа."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Асаах"</string>
<string name="cancel" msgid="6859253417269739139">"Цуцлах"</string>
+ <string name="okay" msgid="1997666393121016642">"ТИЙМ"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Асаах"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Бүү саад бол горимыг асаах"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Хэзээ ч үгүй"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Зөвхөн чухал зүйлс"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Та дараагийн сэрүүлгээ <xliff:g id="WHEN">%1$s</xliff:g>-д сонсохгүй"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g>-д"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>-д"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Хугацаа"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Тухай бүрт асуух"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index de9328249f55..6e8793a5aeb2 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"खाजगी DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"खाजगी DNS मोड निवडा"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"बंद"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"आपोआप"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"खाजगी DNS पुरवठादार होस्ट नाव"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS पुरवठादाराचे होस्टनाव टाका"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"वायरलेस डिस्प्ले प्रमाणिकरणाचे पर्याय दाखवा"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"अॅक्टिव्हिटी ठेवू नका"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"वापरकर्त्याने प्रत्येक अॅक्टिव्हिटी सोडताच ती नष्ट करा"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"पार्श्वभूमी प्रक्रिया मर्यादा"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"सर्व ANR दर्शवा"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"पार्श्वभूमी अॅप्ससाठी अॅप प्रतिसाद देत नाही संवाद दर्शवा"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"बॅकग्राउंड ANR दाखवा"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"बॅकग्राउंड अॅप्ससाठी अॅप प्रतिसाद देत नाही डिस्‍प्‍ले अॅप"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"सूचना चॅनेल चेतावण्या दाखवा"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"एखादे अ‍ॅप वैध चॅनेलशिवाय सूचना पोस्ट करते तेव्हा स्क्रीनवर चेतावणी देते"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"बाह्यवर अॅप्सना अनुमती देण्याची सक्ती करा"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"हे वैशिष्‍ट्य प्रायोगिक आहे आणि कदाचित कार्यप्रदर्शन प्रभावित करू शकते."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> द्वारे अधिलिखित"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"सुमारे <xliff:g id="TIME">%1$s</xliff:g> शिल्‍लक"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"<xliff:g id="TIME">%1$s</xliff:g> शिल्लक (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"तुमच्या वापरानुसार अंदाजे <xliff:g id="TIME">%1$s</xliff:g> पुरेल इतकी बॅटरी शिल्लक आहे"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"तुमच्या वापराच्या (<xliff:g id="LEVEL">%2$s</xliff:g>) आधारावर <xliff:g id="TIME">%1$s</xliff:g> शिल्लक आहे"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> शिल्लक"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"तुमच्‍या वापरावर आधारित (<xliff:g id="LEVEL">%2$s</xliff:g>) अंदाजे <xliff:g id="TIME">%1$s</xliff:g> पर्यंत चालेल"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"तुमच्‍या वापरावर आधारित अंदाजे <xliff:g id="TIME">%1$s</xliff:g> पर्यंत चालेल"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"अंदाजे <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) पर्यंत चालेल"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"अंदाजे <xliff:g id="TIME">%1$s</xliff:g> पर्यंत चालेल"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> पेक्षा कमी शिल्लक आहे"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> पेक्षा कमी वेळ शिल्लक आहे (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> पेक्षा जास्त वेळ शिल्लक आहे (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> हून जास्त वेळ शिल्लक आहे"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"फोन लवकरच बंद होऊ शकतो"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"टॅबलेट लवकरच बंद होऊ शकतो"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"डिव्हाइस लवकरच बंद होऊ शकते"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"फोन लवकरच बंद होऊ शकतो (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"टॅबलेट लवकरच बंद होऊ शकतो (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"डिव्हाइस लवकरच बंद पडू शकते (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"पूर्णपणे चार्ज होण्यास <xliff:g id="TIME">%1$s</xliff:g> शिल्‍लक"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - पूर्णपणे चार्ज होण्यात <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"जास्त वेळ."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"कमी वेळ."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"चालू करा"</string>
<string name="cancel" msgid="6859253417269739139">"रद्द करा"</string>
+ <string name="okay" msgid="1997666393121016642">"ठीक आहे"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"चालू करा"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"व्यत्यय आणू नका चालू करा"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"कधीही नाही"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"केवळ प्राधान्य"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"तुमचा पुढील <xliff:g id="WHEN">%1$s</xliff:g> वाजता होणारा अलार्म, तुम्ही ऐकू शकणार नाही"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g> वाजता"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g> रोजी"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"कालावधी"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"प्रत्येक वेळी विचारा"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index 99f6c0a85538..1c4e6681d966 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS Peribadi"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Pilih Mod DNS Peribadi"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Mati"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatik"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nama hos pembekal DNS peribadi"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Masukkan nama hos pembekal DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Tunjukkan pilihan untuk pensijilan paparan wayarles"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Jangan simpan aktiviti"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Hapus aktiviti selepas ditinggalkan oleh pengguna"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Had proses latar belakang"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Tunjukkan semua ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Tunjukkan dialog Aplikasi Tidak Memberi Maklum Balas untuk aplikasi latar belakang"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Tunjukkan ANR latar belakang"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Paparkan dialog Apl Tiada Respons untuk apl latar belakang"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Papar amaran saluran pemberitahuan"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Memaparkan amaran pada skrin apabila apl menyiarkan pemberitahuan tanpa saluran sah"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Benarkan apl secara paksa pada storan luaran"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ciri ini adalah percubaan dan boleh menjejaskan prestasi."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Diatasi oleh <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Kira-kira <xliff:g id="TIME">%1$s</xliff:g> lagi"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Tinggal kira-kira <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Tinggal kira-kira <xliff:g id="TIME">%1$s</xliff:g> berdasarkan penggunaan anda"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Tinggal kira-kira <xliff:g id="TIME">%1$s</xliff:g> berdasarkan penggunaan anda (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> lagi"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Boleh digunakan hingga kira-kira <xliff:g id="TIME">%1$s</xliff:g> berdasarkan penggunaan anda (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Boleh digunakan hingga kira-kira <xliff:g id="TIME">%1$s</xliff:g> berdasarkan penggunaan anda"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Boleh digunakan hingga kira-kira <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Boleh digunakan hingga kira-kira <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Tinggal kurang daripada <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Kurang daripada <xliff:g id="THRESHOLD">%1$s</xliff:g> lagi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Lebih daripada <xliff:g id="TIME_REMAINING">%1$s</xliff:g> lagi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Lebih daripada <xliff:g id="TIME_REMAINING">%1$s</xliff:g> lagi"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon mungkin ditutup tidak lama lagi"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet mungkin ditutup tidak lama lagi"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Peranti mungkin ditutup tidak lama lagi"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon mungkin ditutup tidak lama lagi (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet mungkin ditutup tidak lama lagi (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Peranti mungkin ditutup tidak lama lagi (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> lagi sehingga dicas penuh"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> sehingga dicas penuh"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Lagi masa."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Kurang masa."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Hidupkan"</string>
<string name="cancel" msgid="6859253417269739139">"Batal"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Hidupkan"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Hidupkan Jangan Ganggu"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Jangan sekali-kali"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Keutamaan sahaja"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Anda tidak akan mendengar penggera yang seterusnya <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"pada <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"pada <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Tempoh"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Tanya setiap kali"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index aedb2910fc27..e5e9ad87fa5e 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"သီးသန့် DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"သီးသန့် DNS မုဒ်ကို ရွေးပါ"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"ပိတ်ရန်"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"အလိုအလျောက်"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"သီးသန့် DNS ပံ့ပိုးသူ၏ အင်တာနက်လက်ခံဝန်ဆောင်ပေးသူအမည်"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS ဝန်ဆောင်မှုပေးသူ၏ အင်တာနက်လက်ခံဝန်ဆောင်ပေးသူအမည်ကို ထည့်ပါ"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"ကြိုးမဲ့ အခင်းအကျင်း အသိအမှတ်ပြုလက်မှတ်အတွက် ရွေးချယ်စရာများပြရန်"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"ဆောင်ရွက်မှုများကို မသိမ်းထားပါနှင့်"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"အသုံးပြုသူထွက်ခွါသွားသည်နှင့် လုပ်ဆောင်ချက်များကို ဖျက်ပစ်မည်"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"နောက်ခံလုပ်ငန်းစဉ်ကန့်သတ်ခြင်း"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"ANRsအားလုံးအား ပြသရန်"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"နောက်ခံအပ်ပလီကေးရှင်းအတွက်တုံ့ပြန်မှုမရှိပြရန်"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"နောက်ခံ ANR များကို ပြရန်"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"နောက်ခံ အပလီကေးရှင်းများ အတွက် \'အက်ပ်တုံ့ပြန်မှုမရှိ\' ဟု ပြရန်"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"ချန်နယ်သတိပေးချက်များပြပါ"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"ချန်နယ်မရှိဘဲ အကြောင်းကြားလျှင် စကရင်တွင်သတိပေးသည်"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"အပြင်မှာ အတင်း ခွင့်ပြုရန်"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"ဤဝန်ဆောင်မှုမှာ စမ်းသပ်အဆင့်သာဖြစ်၍ လုပ်ဆောင်မှုအားနည်းနိုင်သည်။"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> မှ ကျော်၍ လုပ်ထားသည်။"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"<xliff:g id="TIME">%1$s</xliff:g> ခန့်လိုပါသည်"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"<xliff:g id="TIME">%1$s</xliff:g> ခန့် ကျန်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"သင့်အသုံးပြုမှုအရ <xliff:g id="TIME">%1$s</xliff:g> ခန့် ကျန်ပါသည်"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"သင်၏ အသုံးပြုမှု အပေါ် မူတည်၍ <xliff:g id="TIME">%1$s</xliff:g> ခန့် ကျန်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> ကျန်သည်"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"သင်၏ အသုံးပြုမှုအပေါ် မူတည်၍ <xliff:g id="TIME">%1$s</xliff:g> ခန့်အထိ သုံးနိုင်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"သင်၏ အသုံးပြုမှုအပေါ် အခြေခံ၍ <xliff:g id="TIME">%1$s</xliff:g> ခန့်အထိ သုံးနိုင်သည်"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"<xliff:g id="TIME">%1$s</xliff:g> ခန့်အထိ သုံးနိုင်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"<xliff:g id="TIME">%1$s</xliff:g> ခန့်အထိ သုံးနိုင်သည်"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ခန့်သာ ကျန်တော့သည်"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> အောက်သာ ကျန်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ကျော် ကျန်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ကျော် ကျန်သေးသည်"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"မကြာမီ ဖုန်းပိတ်သွားနိုင်သည်"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"မကြာမီ တက်ဘလက်ပိတ်သွားနိုင်သည်"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"မကြာမီ စက်ပိတ်သွားနိုင်သည်"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"မကြာမီ ဖုန်းပိတ်သွားနိုင်သည် (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"မကြာမီ တက်ဘလက် ပိတ်သွားနိုင်သည် (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"မကြာမီ စက်ပိတ်သွားနိုင်သည် (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"အားပြည့်ရန် <xliff:g id="TIME">%1$s</xliff:g> လိုပါသည်"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> − အားပြည့်ရန် <xliff:g id="TIME">%2$s</xliff:g> ကျန်သည်"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"အချိန်တိုးရန်။"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"အချိန်လျှော့ရန်။"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ဖွင့်ရန်"</string>
<string name="cancel" msgid="6859253417269739139">"မလုပ်တော့"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ဖွင့်ရန်"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"\'မနှောင့်ယှက်ရ\' ဖွင့်ခြင်း"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"ဘယ်တော့မှ"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"ဦးစားပေးများသာ"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"သင်၏ နောက်ထပ် <xliff:g id="WHEN">%1$s</xliff:g> နှိုးစက်ကို ကြားမည်မဟုတ်ပါ"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g> တွင်"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g> တွင်"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"ကြာချိန်"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"အမြဲမေးပါ"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index fadf15404d91..13fa5ccff6be 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privat DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Velg Privat DNS-modus"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Av"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatisk"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Vertsnavn for privat DNS-leverandør"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Skriv inn vertsnavnet til DNS-leverandøren"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Vis alternativer for sertifisering av trådløs skjerm"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Ikke behold aktiviteter"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Fjern hver aktivitet så fort brukeren forlater den"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Bakgrunnsprosessgrense"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Vis alle ANR-er"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Vis Appen svarer ikke-dialog for bakgrunnsapper"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Vis ANR-feil i bakgrunnen"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Vis Appen svarer ikke-dialog for bakgrunnsapper"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Vis varselskanaladvarsler"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Viser advarsler på skjermen når apper publiserer varsler uten en gyldig kanal"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Tving frem tillatelse for ekstern lagring av apper"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Dette er en eksperimentell funksjon som kan gjøre at telefonen ikke fungerer optimalt."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Overstyres av <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Omtrent <xliff:g id="TIME">%1$s</xliff:g> gjenstår"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Omtrent <xliff:g id="TIME">%1$s</xliff:g> gjenstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Omtrent <xliff:g id="TIME">%1$s</xliff:g> igjen basert på bruken din"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Omtrent <xliff:g id="TIME">%1$s</xliff:g> gjenstår basert på bruken din (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> gjenstår"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Varer til omtrent <xliff:g id="TIME">%1$s</xliff:g> basert på bruken din (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Varer til omtrent <xliff:g id="TIME">%1$s</xliff:g> basert på bruken din"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Varer til omtrent <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Varer til omtrent <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Mindre enn <xliff:g id="THRESHOLD">%1$s</xliff:g> gjenstår"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Mindre enn <xliff:g id="THRESHOLD">%1$s</xliff:g> gjenstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mer enn <xliff:g id="TIME_REMAINING">%1$s</xliff:g> gjenstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Mer enn <xliff:g id="TIME_REMAINING">%1$s</xliff:g> gjenstår"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefonen slås kanskje av snart"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Nettbrettet slås kanskje av snart"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Enheten slås kanskje av snart"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefonen slås kanskje av snart (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Nettbrettet slås kanskje av snart (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Enheten slås kanskje av snart (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> til det er fulladet"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> til det er fulladet"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Mer tid."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Mindre tid."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Slå på"</string>
<string name="cancel" msgid="6859253417269739139">"Avbryt"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Slå på"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Slå på Ikke forstyrr"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Aldri"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Bare prioritet"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Du hører ikke neste innstilte alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"kl. <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Varighet"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Spør hver gang"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index e778c8eb05fb..2a62a56b2dbc 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"निजी DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"निजी DNS मोड चयन गर्नुहोस्"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"निष्क्रिय छ"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"स्वचालित"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"निजी DNS प्रदायकको होस्टनाम"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS प्रदायकको होस्टनाम प्रविष्ट गर्नुहोस्"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"ताररहित प्रदर्शन प्रमाणीकरणका लागि विकल्पहरू देखाउनुहोस्"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"गतिविधिहरू नराख्नुहोस्"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"प्रयोगकर्ताले यसलाई छोड्ने बित्तिकै जति सक्दो चाँडो हरेक गतिविधि ध्वस्त पार्नुहोस्"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"पृष्ठभूमि प्रक्रिया सीमा"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"सबै ANRs देखाउनुहोस्"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"पृष्ठभूमि अनुप्रयोगका लागि जवाफ नदिइरहेका अनुप्रयोगहरू देखाउनुहोस्"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"पृष्ठभूमिका ANR हरू देखाउनुहोस्"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"पृष्ठभूमिका अनुप्रयोगहरूको संवादको प्रतिक्रिया नदिइरहेका अनुप्रयोगहरू प्रदर्शन गर्नुहोस्"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"सूचना च्यानलका चेतावनी देखाउनुहोस्"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"अनुप्रयोगले कुनै मान्य च्यानल बिना सूचना पोस्ट गर्दा स्क्रिनमा चेतावनी देखाउँछ"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"बाह्यमा बल प्रयोगको अनुमति प्राप्त अनुप्रयोगहरू"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"यो सुविधा प्रयोगात्मक छ र प्रदर्शनमा असर गर्न सक्छ।"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> द्वारा अधिरोहित"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"लगभग <xliff:g id="TIME">%1$s</xliff:g> बाँकी"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"लगभग <xliff:g id="TIME">%1$s</xliff:g> बाँकी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"तपाईंको प्रयोगका आधारमा लगभग <xliff:g id="TIME">%1$s</xliff:g> बाँकी"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"तपाईंको प्रयोगका आधारमा <xliff:g id="TIME">%1$s</xliff:g> बाँकी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"बाँकी समय <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"तपाईंको प्रयोगका आधारमा लगभग <xliff:g id="TIME">%1$s</xliff:g> सम्म टिक्ने छ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"तपाईंको प्रयोगका आधारमा लगभग <xliff:g id="TIME">%1$s</xliff:g> सम्म टिक्ने छ"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"लगभग <xliff:g id="TIME">%1$s</xliff:g> सम्म टिक्ने छ <xliff:g id="LEVEL">%2$s</xliff:g>"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"लगभग <xliff:g id="TIME">%1$s</xliff:g> सम्म टिक्ने छ"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> भन्दा कम समय बाँकी छ"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> भन्दा कम समय बाँकी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> भन्दा बढी समय बाँकी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> भन्दा बढी समय बाँकी"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"फोन चाँडै बन्द हुन सक्छ"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ट्याब्लेट चाँडै बन्द हुन सक्छ"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"यन्त्र चाँडै बन्द हुन सक्छ"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"फोन चाँडै बन्द हुन सक्छ (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ट्याब्लेट चाँडै बन्द हुन सक्छ (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"यन्त्र चाँडै बन्द हुन सक्छ (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"पूर्णरूपमा चार्ज हुन <xliff:g id="TIME">%1$s</xliff:g> बाँकी"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - पूर्णरूपमा चार्ज हुन <xliff:g id="TIME">%2$s</xliff:g> बाँकी"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"थप समय।"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"कम समय।"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"सक्रिय गर्नुहोस्"</string>
<string name="cancel" msgid="6859253417269739139">"रद्द गर्नुहोस्"</string>
+ <string name="okay" msgid="1997666393121016642">"ठीक छ"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"सक्रिय गर्नुहोस्"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"बाधा नपुऱ्याउनुहोस् नामक मोडलाई सक्रिय गर्नुहोस्"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"कहिल्यै होइन"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"प्राथमिकता मात्र"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"तपाईं <xliff:g id="WHEN">%1$s</xliff:g> मा बज्ने आफ्नो अर्को अलार्म सुन्नु हुने छैन"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g> मा"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g> मा"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"अवधि"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"प्रत्येक पटक सोध्नुहोस्"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index dc56ac4b5aa6..3565e21f12c7 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privé-DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Selecteer de modus Privé-DNS"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Uit"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatisch"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Hostnaam van privé-DNS-provider"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Geef hostnaam van DNS-provider op"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Opties weergeven voor certificering van draadloze weergave"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Activiteiten niet opslaan"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Activiteit wissen zodra de gebruiker deze verlaat"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Achtergrondproceslimiet"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Alle ANR\'s weergeven"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"\'App reageert niet\' weerg. voor apps op achtergr."</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"ANR\'s op de achtergrond"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Dialoogvenster \'App reageert niet\' weergeven voor apps op de achtergrond"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Kanaalwaarschuwingen voor meldingen weergeven"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Geeft een waarschuwing op het scherm weer wanneer een app een melding post zonder geldig kanaal"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Toestaan van apps op externe opslag afdwingen"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Deze functie is experimenteel en kan invloed hebben op de prestaties."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Overschreven door <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Nog ongeveer <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Nog ongeveer <xliff:g id="TIME">%1$s</xliff:g> resterend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Nog ongeveer <xliff:g id="TIME">%1$s</xliff:g> over op basis van je gebruik"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Nog ongeveer <xliff:g id="TIME">%1$s</xliff:g> resterend op basis van je gebruik (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> resterend"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Gaat nog ongeveer <xliff:g id="TIME">%1$s</xliff:g> mee op basis van je gebruik (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Gaat nog ongeveer <xliff:g id="TIME">%1$s</xliff:g> mee op basis van je gebruik"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Gaat nog ongeveer <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) mee"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Gaat nog ongeveer <xliff:g id="TIME">%1$s</xliff:g> mee"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Minder dan <xliff:g id="THRESHOLD">%1$s</xliff:g> resterend"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Minder dan <xliff:g id="THRESHOLD">%1$s</xliff:g> resterend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Meer dan <xliff:g id="TIME_REMAINING">%1$s</xliff:g> resterend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Meer dan <xliff:g id="TIME_REMAINING">%1$s</xliff:g> resterend"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefoon wordt binnenkort mogelijk uitgeschakeld"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet wordt binnenkort mogelijk uitgeschakeld"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Apparaat wordt binnenkort mogelijk uitgeschakeld"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefoon wordt binnenkort mogelijk uitgeschakeld (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet wordt binnenkort mogelijk uitgeschakeld (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Apparaat wordt binnenkort mogelijk uitgeschakeld (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Nog <xliff:g id="TIME">%1$s</xliff:g> tot volledig opgeladen"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> tot volledig opgeladen"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Meer tijd."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Minder tijd."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Inschakelen"</string>
<string name="cancel" msgid="6859253417269739139">"Annuleren"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Inschakelen"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Schakel Niet storen in."</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nooit"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Alleen prioriteit"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Je hoort je volgende wekker niet <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"om <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"op <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duur"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Altijd vragen"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index 2287d232a61e..f28d7acbbff4 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"ਨਿੱਜੀ DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"ਨਿੱਜੀ DNS ਮੋਡ ਚੁਣੋ"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"ਬੰਦ"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"ਸਵੈਚਲਿਤ"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"ਨਿੱਜੀ DNS ਪ੍ਰਦਾਨਕ ਹੋਸਟਨਾਮ"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS ਪ੍ਰਦਾਨਕ ਦਾ ਹੋਸਟਨਾਮ ਦਾਖਲ ਕਰੋ"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"ਵਾਇਰਲੈੱਸ ਡਿਸਪਲੇ ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ ਚੋਣਾਂ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੋ"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"ਗਤੀਵਿਧੀਆਂ ਨਾ ਰੱਖੋ"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"ਹਰੇਕ ਗਤੀਵਿਧੀ ਨੂੰ ਨਸ਼ਟ ਕਰੋ ਜਿਵੇਂ ਹੀ ਉਪਭੋਗਤਾ ਇਸਨੂੰ ਛੱਡ ਦੇਵੇ"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"ਪਿਛੋਕੜ ਪ੍ਰਕਿਰਿਆ ਸੀਮਾ"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"ਸਾਰੇ ANR ਦਿਖਾਓ"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"ਬੈਕਗਰਾਊਂਡ ਐਪਾਂ ਲਈ ਐਪ ਜਵਾਬ ਨਹੀਂ ਦੇ ਰਹੇ ਡਾਇਲੌਗ ਦਿਖਾਓ"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"ਬੈਕਗ੍ਰਾਊਂਡ ANRs ਦਿਖਾਓ"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"ਬੈਕਗ੍ਰਾਊਂਡ ਐਪਾਂ ਲਈ \'ਐਪ ਪ੍ਰਤਿਕਿਰਿਆ ਨਹੀਂ ਦੇ ਰਹੀ ਹੈ\' ਡਾਇਲੌਗ ਦਿਖਾਓ"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"ਸੂਚਨਾ ਚੈਨਲ ਚਿਤਾਵਨੀਆਂ ਦਿਖਾਓ"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"ਐਪ ਵੱਲੋਂ ਵੈਧ ਚੈਨਲ ਤੋਂ ਬਿਨਾਂ ਸੂਚਨਾ ਪੋਸਟ ਕਰਨ \'ਤੇ ਸਕ੍ਰੀਨ \'ਤੇ ਚਿਤਾਵਨੀ ਦਿਖਾਉਂਦੀ ਹੈ"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"ਐਪਸ ਨੂੰ ਬਾਹਰਲੇ ਤੇ ਜ਼ਬਰਦਸਤੀ ਆਗਿਆ ਦਿਓ"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਪ੍ਰਯੋਗਾਤਮਿਕ ਹੈ ਅਤੇ ਪ੍ਰਦਰਸ਼ਨ ਤੇ ਅਸਰ ਪਾ ਸਕਦੀ ਹੈ।"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> ਦੁਆਰਾ ਓਵਰਰਾਈਡ ਕੀਤਾ"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਬਾਕੀ"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਬਾਕੀ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"ਤੁਹਾਡੀ ਵਰਤੋਂ ਦੇ ਆਧਾਰ \'ਤੇ ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਬਾਕੀ"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"ਤੁਹਾਡੀ ਵਰਤੋਂ ਦੇ ਆਧਾਰ \'ਤੇ ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਬਾਕੀ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> ਬਾਕੀ"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"ਤੁਹਾਡੀ ਵਰਤੋਂ ਦੇ ਆਧਾਰ \'ਤੇ ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਬਾਕੀ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"ਤੁਹਾਡੀ ਵਰਤੋਂ ਦੇ ਆਧਾਰ \'ਤੇ ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਬਾਕੀ"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) ਬਾਕੀ"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਬਾਕੀ"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ਤੋਂ ਘੱਟ ਸਮਾਂ ਬਾਕੀ"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ਤੋਂ ਘੱਟ ਸਮਾਂ ਬਾਕੀ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ਤੋਂ ਵੱਧ ਸਮਾਂ ਬਾਕੀ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ਤੋਂ ਵੱਧ ਸਮਾਂ ਬਾਕੀ"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"ਫ਼ੋਨ ਛੇਤੀ ਹੀ ਬੰਦ ਹੋ ਸਕਦਾ ਹੈ"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ਟੈਬਲੈੱਟ ਛੇਤੀ ਹੀ ਬੰਦ ਹੋ ਸਕਦਾ ਹੈ"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"ਡੀਵਾਈਸ ਛੇਤੀ ਹੀ ਬੰਦ ਹੋ ਸਕਦਾ ਹੈ"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"ਫ਼ੋਨ ਛੇਤੀ ਹੀ ਬੰਦ ਹੋ ਸਕਦਾ ਹੈ (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ਟੈਬਲੈੱਟ ਛੇਤੀ ਹੀ ਬੰਦ ਹੋ ਸਕਦਾ ਹੈ (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"ਡੀਵਾਈਸ ਛੇਤੀ ਹੀ ਬੰਦ ਹੋ ਸਕਦਾ ਹੈ (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"ਪੂਰੀ ਤਰ੍ਹਾਂ ਚਾਰਜ ਹੋਣ ਲਈ <xliff:g id="TIME">%1$s</xliff:g> ਬਾਕੀ"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"ਪੂਰੀ ਤਰ੍ਹਾਂ ਚਾਰਜ ਹੋਣ ਤੱਕ <xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g>"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"ਹੋਰ ਸਮਾਂ।"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"ਘੱਟ ਸਮਾਂ।"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ਚਾਲੂ ਕਰੋ"</string>
<string name="cancel" msgid="6859253417269739139">"ਰੱਦ ਕਰੋ"</string>
+ <string name="okay" msgid="1997666393121016642">"ਠੀਕ"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ਚਾਲੂ ਕਰੋ"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"\'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"ਕਦੇ ਵੀ ਨਹੀਂ"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"ਸਿਰਫ਼ ਤਰਜੀਹੀ"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"ਤੁਸੀਂ <xliff:g id="WHEN">%1$s</xliff:g> ਵਜੇ ਆਪਣਾ ਅਗਲਾ ਅਲਾਰਮ ਨਹੀਂ ਸੁਣੋਗੇ"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g> ਵਜੇ"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g> ਵਜੇ"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"ਮਿਆਦ"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ਹਰ ਵਾਰ ਪੁੱਛੋ"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 45c44c6117ee..ec77b15b14ea 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Prywatny DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Wybierz tryb prywatnego DNS"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Wyłączony"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatyczny"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nazwa hosta dostawcy prywatnego DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Wpisz nazwę hosta dostawcy DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Pokaż opcje certyfikacji wyświetlacza bezprzewodowego"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Nie zachowuj działań"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Przerwij każde działanie, gdy użytkownik je porzuci"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Limit procesów w tle"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Pokaż wszystkie ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Pokaż okno Aplikacja Nie Reaguje dla aplikacji w tle"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Pokaż wszystkie ANR w tle"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Pokaż okno Aplikacja nie odpowiada dla aplikacji w tle"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Pokaż ostrzeżenia kanału powiadomień"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Wyświetla ostrzeżenie, gdy aplikacja publikuje powiadomienie bez prawidłowego kanału"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Wymuś zezwalanie na aplikacje w pamięci zewn."</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"To jest funkcja eksperymentalna i może wpływać na działanie urządzenia."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Nadpisana przez <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Pozostało: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Jeszcze około <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Jeszcze około <xliff:g id="TIME">%1$s</xliff:g> (na podstawie Twojego sposobu korzystania)"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Na podstawie Twojego sposobu korzystania jeszcze około <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Zostało <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Na podstawie Twojego sposobu korzystania jeszcze około <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Na podstawie Twojego sposobu korzystania jeszcze około <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Jeszcze około <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Jeszcze około <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Pozostało mniej niż <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Pozostało mniej niż <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Pozostało ponad: <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Pozostało ponad: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon może się wkrótce wyłączyć"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet może się wkrótce wyłączyć"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Urządzenie może się wkrótce wyłączyć"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon może się wkrótce wyłączyć (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet może się wkrótce wyłączyć (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Urządzenie może się wkrótce wyłączyć (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> do pełnego naładowania"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> do pełnego naładowania"</string>
@@ -442,8 +426,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Więcej czasu."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Mniej czasu."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Włącz"</string>
<string name="cancel" msgid="6859253417269739139">"Anuluj"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Włącz"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Włącz tryb Nie przeszkadzać"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nigdy"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Tylko priorytet"</string>
@@ -452,4 +437,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Nie usłyszysz następnego alarmu o <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"o <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"w: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Czas"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Zawsze pytaj"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index e4c013164a17..15afa8702d79 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -304,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Não manter atividades"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Destruir todas as atividades quando o usuário sair"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Limite do proc. 2º plano"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Mostrar todos os ANRS"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Exibir \"App não responde\" para app em 2º plano"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Mostrar ANRs em 2º plano"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Exibir a caixa de diálogo \"App não responde\" para apps em segundo plano"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Mostrar avisos do canal de notif."</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Exibe aviso na tela quando um app posta notificação sem canal válido"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Forçar permissão de apps em armazenamento externo"</string>
@@ -360,10 +360,10 @@
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Cerca de <xliff:g id="TIME">%1$s</xliff:g> restante(s) com base no seu uso"</string>
<string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Cerca de <xliff:g id="TIME">%1$s</xliff:g> restante(s) com base no seu uso (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> restante(s)"</string>
- <string name="power_discharge_by_enhanced" msgid="8788299408879961465">"Com base no seu uso, ela durará até aproximadamente <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
- <string name="power_discharge_by_only_enhanced" msgid="7692297898877104416">"Com base no seu uso, ela durará até aproximadamente <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <string name="power_discharge_by" msgid="6427074755635635749">"Durará até aproximadamente <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
- <string name="power_discharge_by_only" msgid="5888058889261108064">"Durará até aproximadamente <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Durará até aproximadamente <xliff:g id="TIME">%1$s</xliff:g> de acordo com seu uso (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Durará até aproximadamente <xliff:g id="TIME">%1$s</xliff:g> de acordo com seu uso"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Durará a até aproximadamente <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Durará até aproximadamente <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s)"</string>
<string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -424,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Mais tempo."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Menos tempo."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ativar"</string>
<string name="cancel" msgid="6859253417269739139">"Cancelar"</string>
+ <string name="okay" msgid="1997666393121016642">"Ok"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ativar"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Ativar o \"Não perturbe\""</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nunca"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Somente prioridade"</string>
@@ -434,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Você não ouvirá o próximo alarme <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"às <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duração"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Perguntar sempre"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index 5b2ad1db61f0..6721e03f5442 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS privado"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Selecionar modo DNS privado"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Desativado"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automático"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nome de anfitrião do fornecedor DNS privado"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Introduza o nome de anfitrião do fornecedor DNS."</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Mostrar opções da certificação de display sem fios"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Não manter atividades"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Destruir atividades assim que o utilizador sair"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Limite proc. em 2º plano"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Mostrar todos os ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Mostrar erro \"Aplic. não Resp.\" p/ aplic. 2º plano"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Mostrar ANRs em 2.º plano"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Mostrar caixa de diálogo A aplicação não está a responder para aplicações em segundo plano"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Mostrar avisos do canal de notificações"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Mostra um aviso no ecrã quando uma aplicação publica uma notificação sem o canal ser válido"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Forçar perm. de aplicações no armazenamento ext."</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Esta funcionalidade é experimental e pode afetar o desempenho."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Substituído por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Falta(m) cerca de <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Resta(m) cerca de <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Resta(m) cerca de <xliff:g id="TIME">%1$s</xliff:g> com base na sua utilização"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Resta(m) cerca de <xliff:g id="TIME">%1$s</xliff:g> com base na sua utilização (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Resta(m) <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Dura até cerca da(s) <xliff:g id="TIME">%1$s</xliff:g> com base na sua utilização (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Dura até cerca da(s) <xliff:g id="TIME">%1$s</xliff:g> com base na sua utilização."</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Dura até cerca da(s) <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Dura até cerca da(s) <xliff:g id="TIME">%1$s</xliff:g>."</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Resta(m) menos de <xliff:g id="THRESHOLD">%1$s</xliff:g>."</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Resta(m) menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Resta(m) mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Resta(m) mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g>."</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"O telemóvel poderá ser encerrado em breve."</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"O tablet poderá ser encerrado em breve."</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"O dispositivo poderá ser encerrado em breve."</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"O telemóvel poderá ser encerrado em breve (<xliff:g id="LEVEL">%1$s</xliff:g>)."</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"O tablet poderá ser encerrado em breve (<xliff:g id="LEVEL">%1$s</xliff:g>)."</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"O dispositivo poderá ser encerrado em breve (<xliff:g id="LEVEL">%1$s</xliff:g>)."</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Falta(m) <xliff:g id="TIME">%1$s</xliff:g> para concluir o carregamento"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> até ficar totalmente carregada"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Mais tempo."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Menos tempo."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ativar"</string>
<string name="cancel" msgid="6859253417269739139">"Cancelar"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ativar"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Ativar o modo Não incomodar"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nunca"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Apenas prioridade"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Não vai ouvir o próximo alarme à(s) <xliff:g id="WHEN">%1$s</xliff:g>."</string>
<string name="alarm_template" msgid="4996153414057676512">"à(s) <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"no(a) <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duração"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Perguntar sempre"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index bc9c82e491b4..15afa8702d79 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS particular"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Selecione o modo DNS particular"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Desativado"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automático"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nome do host do provedor de DNS particular"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Informe o nome do host do provedor de DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Mostrar opções de certificação de Display sem fio"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Não manter atividades"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Destruir todas as atividades quando o usuário sair"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Limite do proc. 2º plano"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Mostrar todos os ANRS"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Exibir \"App não responde\" para app em 2º plano"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Mostrar ANRs em 2º plano"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Exibir a caixa de diálogo \"App não responde\" para apps em segundo plano"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Mostrar avisos do canal de notif."</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Exibe aviso na tela quando um app posta notificação sem canal válido"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Forçar permissão de apps em armazenamento externo"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Este recurso é experimental e pode afetar o desempenho."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Substituído por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Cerca de <xliff:g id="TIME">%1$s</xliff:g> restante(s)"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Cerca de <xliff:g id="TIME">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Cerca de <xliff:g id="TIME">%1$s</xliff:g> restante(s) com base no seu uso"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Cerca de <xliff:g id="TIME">%1$s</xliff:g> restante(s) com base no seu uso (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> restante(s)"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Durará até aproximadamente <xliff:g id="TIME">%1$s</xliff:g> de acordo com seu uso (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Durará até aproximadamente <xliff:g id="TIME">%1$s</xliff:g> de acordo com seu uso"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Durará a até aproximadamente <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Durará até aproximadamente <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s)"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> restante(s)"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"O smartphone pode ser desligado em breve"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"O tablet pode ser desligado em breve"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"O dispositivo pode ser desligado em breve"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"O smartphone pode ser desligado em breve (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"O tablet pode ser desligado em breve (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"O dispositivo pode ser desligado em breve (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> restante(s) até a carga completa"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> até a carga completa"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Mais tempo."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Menos tempo."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ativar"</string>
<string name="cancel" msgid="6859253417269739139">"Cancelar"</string>
+ <string name="okay" msgid="1997666393121016642">"Ok"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Ativar"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Ativar o \"Não perturbe\""</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nunca"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Somente prioridade"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Você não ouvirá o próximo alarme <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"às <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Duração"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Perguntar sempre"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index 4af2ba159de6..46a2ebd33704 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS privat"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Selectați modul DNS privat"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Dezactivat"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automat"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Nume de gazdă al furnizorului de DNS privat"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Introduceți numele de gazdă al furnizorului de DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Afișați opțiunile pentru certificarea Ecran wireless"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Nu păstrați activitățile"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Elimină activitățile imediat ce utilizatorul le închide"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Limită procese fundal"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Afișați toate elem. ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Aplicații din fundal: afișați Aplicația nu răspunde"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Afișați ANR de fundal"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Afișați dialogul Aplicația nu răspunde pentru aplicațiile din fundal"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Afișați avertismentele de pe canalul de notificări"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Afișează avertisment pe ecran când o aplicație postează o notificare fără canal valid"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Forțați accesul aplicațiilor la stocarea externă"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Această funcție este experimentală și poate afecta performanțele."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Valoare înlocuită de <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Timp rămas: aproximativ <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Timp rămas: aproximativ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"În baza utilizării, timpul aproximativ rămas este: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"În baza utilizării, timpul rămas este de aproximativ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Timp rămas: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"În baza utilizării, va rezista până la aproximativ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"În baza utilizării, va rezista până la aproximativ <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Va rezista până la aproximativ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Va rezista până la aproximativ <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"a mai rămas mai puțin de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"A mai rămas mai puțin de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"A mai rămas mai mult de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"A mai rămas mai mult de <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefonul se poate închide în curând"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tableta se poate închide în curând"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Dispozitivul se poate închide în curând"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefonul se poate închide în curând (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tableta se poate închide în curând (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Dispozitivul se poate închide în curând (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Timp rămas până la încărcarea completă: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> până la încărcarea completă"</string>
@@ -441,8 +425,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Mai mult timp."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Mai puțin timp."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activați"</string>
<string name="cancel" msgid="6859253417269739139">"Anulați"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Activați"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Activați Nu deranja"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Niciodată"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Numai cu prioritate"</string>
@@ -451,4 +436,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Nu veți auzi următoarea alarmă <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"la <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Durată"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Întreabă de fiecare dată"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index 46d40aa4607c..50c8fb15dec1 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Персональный DNS-сервер"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Выберите режим персонального DNS-сервера"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"ВЫКЛ"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Автоматический режим"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Имя хоста поставщика персонального DNS-сервера"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Введите имя хоста поставщика услуг DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Показывать параметры сертификации беспроводных мониторов"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Вытеснение фоновых Activity"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Удалять сводку действий после их завершения"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Лимит фоновых процессов"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Все ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Уведомлять о том, что приложение не отвечает"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"ANR в фоновом режиме"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Уведомлять о том, что приложение, запущенное в фоновом режиме, не отвечает"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Показывать предупреждения канала передачи уведомлений"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Показывать предупреждение о новых уведомлениях приложения вне допустимого канала"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Разрешить сохранение на внешние накопители"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Это экспериментальная функция, она может снизить производительность устройства."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Новая настройка: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Осталось примерно <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Заряда (<xliff:g id="LEVEL">%2$s</xliff:g>) хватит примерно на <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Осталось примерно <xliff:g id="TIME">%1$s</xliff:g> при текущем уровне использования"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Заряда (<xliff:g id="LEVEL">%2$s</xliff:g>) хватит примерно на <xliff:g id="TIME">%1$s</xliff:g> при текущем уровне расхода"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Осталось: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Заряда (<xliff:g id="LEVEL">%2$s</xliff:g>) хватит примерно до <xliff:g id="TIME">%1$s</xliff:g> при текущем уровне использования"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Заряда хватит примерно до <xliff:g id="TIME">%1$s</xliff:g> при текущем уровне использования"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Заряда (<xliff:g id="LEVEL">%2$s</xliff:g>) хватит примерно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Заряда хватит примерно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Осталось менее <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Уровень заряда батареи: <xliff:g id="LEVEL">%2$s</xliff:g> (хватит менее чем на <xliff:g id="THRESHOLD">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Уровень заряда батареи: <xliff:g id="LEVEL">%2$s</xliff:g> (хватит более чем на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Хватит более чем на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Телефон скоро завершит работу"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Планшет скоро завершит работу"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Устройство скоро завершит работу"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Уровень заряда батареи: <xliff:g id="LEVEL">%1$s</xliff:g>. Телефон скоро завершит работу."</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Уровень заряда батареи: <xliff:g id="LEVEL">%1$s</xliff:g>. Планшет скоро завершит работу."</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Уровень заряда батареи: <xliff:g id="LEVEL">%1$s</xliff:g>. Устройство скоро завершит работу."</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Ещё <xliff:g id="TIME">%1$s</xliff:g> до полной зарядки"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> до полной зарядки"</string>
@@ -442,8 +426,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Увеличить продолжительность"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Уменьшить продолжительность"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Включить"</string>
<string name="cancel" msgid="6859253417269739139">"Отмена"</string>
+ <string name="okay" msgid="1997666393121016642">"ОК"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Включить"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Включите режим \"Не беспокоить\""</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Никогда"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Только важные"</string>
@@ -452,4 +437,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Следующий будильник: <xliff:g id="WHEN">%1$s</xliff:g>. Звук отключен."</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Длительность"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Всегда спрашивать"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index 1b387c395aca..d499632a63be 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"පුද්ගලික DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"පුද්ගලික DNS ප්‍රකාරය තෝරන්න"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"ක්‍රියාවිරහිතයි"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"ස්වයංක්‍රිය"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"පුද්ගලික DNS සැපයුම්කරු සත්කාරක නම"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS සැපයුම්කරුගේ සත්කාරක නම ඇතුළු කරන්න"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"නොරැහැන් සංදර්ශක සහතිකය සඳහා විකල්ප පෙන්වන්න"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"ක්‍රියාකාරකම් තබාගන්න එපා"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"පරිශීලකයා ඉවත් වුන විගසම සෑම ක්‍රියාකාරකමක්ම විනාශ කරන්න"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"පසුබිම් ක්‍රියාවලි සීමාව"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"සියලුම ANR පෙන්වන්න"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"පසුබිම් යෙදුම් වලට යෙදුම ප්‍රතිචාර නොදක්වයි කවුළුව පෙන්වන්න"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"පසුබිම් ANR පෙන්වන්න"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"පසුබිම් යෙදුම්වලට යෙදුම ප්‍රතිචාර නොදක්වයි කවුළුව සංදර්ශනය කරන්න"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"දැනුම්දීම් නාලිකා අනතුරු ඇඟවීම් පෙන්."</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"යෙදුමක් වලංගු නාලිකාවකින් තොරව දැනුම්දීමක් පළ කරන විට තිරය-මත අනතුරු ඇඟවීමක් සංදර්ශනය කරයි."</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"බාහිර මත යෙදුම් ඉඩ දීම බල කරන්න"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"මෙම විශේෂාංගය පරීක්ෂණාත්මක සහ ඇතැම් විට ක්‍රියාකාරිත්වයට බලපෑ හැක."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> මගින් ඉක්මවන ලදී"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"<xliff:g id="TIME">%1$s</xliff:g> පමණ ඉතිරියි"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"<xliff:g id="TIME">%1$s</xliff:g> පමණ ඉතිරිය (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"ඔබගේ භාවිතය මත පදනම්ව <xliff:g id="TIME">%1$s</xliff:g> පමණ ඉතිරිව ඇත"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"ඔබේ භාවිතය මත පදනම්ව <xliff:g id="TIME">%1$s</xliff:g> පමණ ඉතිරිව ඇත <xliff:g id="LEVEL">%2$s</xliff:g>"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"ඉතිරි <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"ඔබේ භාවිතය මත පදනම්ව <xliff:g id="TIME">%1$s</xliff:g> පමණ තෙක් පවතිනු ඇත <xliff:g id="LEVEL">%2$s</xliff:g>"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"ඔබේ භාවිතය මත පදනම්ව <xliff:g id="TIME">%1$s</xliff:g> පමණ තෙක් පවතිනු ඇත"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"<xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) පමණ තෙක් පවතිනු ඇත"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"<xliff:g id="TIME">%1$s</xliff:g> පමණ තෙක් පවතිනු ඇත"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>ට වඩා අඩුවෙන් ඉතිරිව ඇත"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>ට වඩා අඩුවෙන් ඉතිරිය (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>ට වඩා වැඩියෙන් ඉතිරිය (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>කට වඩා වැඩියෙන් ඉතිරිය"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"දුරකථනය ඉක්මනින් වැසිය හැකිය"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ටැබ්ලටය ඉක්මනින් වැසිය හැකිය"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"උපාංගය ඉක්මනින් වැසිය හැකිය"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"දුරකථනය ඉක්මනින් වැසිය හැකිය (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ටැබ්ලටය ඉක්මනින් වැසිය හැකිය (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"උපාංගය ඉක්මනින් වැසිය හැකිය (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"පූර්ණව ආරෝපණය වන තෙක් <xliff:g id="TIME">%1$s</xliff:g> ඉතිරියි"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> සම්පූර්ණයෙන් ආරෝපණය වන තෙක්"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"වේලාව වැඩියෙන්."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"වේලාව අඩුවෙන්."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ක්‍රියාත්මක කරන්න"</string>
<string name="cancel" msgid="6859253417269739139">"අවලංගු කරන්න"</string>
+ <string name="okay" msgid="1997666393121016642">"හරි"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ක්‍රියාත්මක කරන්න"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"බාධා නොකරන්න ක්‍රියාත්මක කරන්න"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"කිසි විටක නැත"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"ප්‍රමුඛතා පමණි"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"ඔබට ඔබේ ඊළඟ එලාමය <xliff:g id="WHEN">%1$s</xliff:g> තෙක් නොඇසෙනු ඇත"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g>ට"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>හිදී"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"කාල සීමාව"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"සෑම විටම ඉල්ලන්න"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 6502d1a17f33..47b8bd5c7349 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Súkromné DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Výber súkromného režimu DNS"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Vypnuté"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automaticky"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Súkromný názov hostiteľa poskytovateľa DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Zadajte názov hostiteľa poskytovateľa DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Zobraziť možnosti certifikácie bezdrôtového zobrazenia"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Neuchovávať aktivity"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Zničiť každú aktivitu, hneď ako ju používateľ ukončí"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Limit procesov na pozadí"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Zobrazovať všetky ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Zobrazovať dialóg „Aplikácia neodpovedá“ aj pre aplikácie na pozadí"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Zobraziť ANR na pozadí"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Zobrazovať dialógové okno „Aplikácia nereaguje“ pre aplikácie na pozadí"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Zobraziť hlásenia kanála upozornení"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Zobrazuje varovné hlásenie na obrazovke, keď aplikácia zverejní upozornenie bez platného kanála"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Vynútiť povolenie aplikácií na externom úložisku"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Funkcia je experimentálna a môže mať vplyv na výkonnosť."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Prekonané predvoľbou <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Približný zostávajúci čas: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Zostáva približne <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Zostáva približne <xliff:g id="TIME">%1$s</xliff:g> v závislosti od intenzity využitia"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Zostáva približne <xliff:g id="TIME">%1$s</xliff:g> v závislosti od využitia (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Zostávajúci čas: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Vydrží približne <xliff:g id="TIME">%1$s</xliff:g> v závislosti od využitia (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Vydrží približne <xliff:g id="TIME">%1$s</xliff:g> v závislosti od využitia"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Vydrží približne <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Vydrží približne <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Zostáva menej ako <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Zostáva menej ako <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Zostáva viac ako <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Zostáva viac ako <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefón sa môže čoskoro vypnúť"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet sa môže čoskoro vypnúť"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Zariadenie sa môže čoskoro vypnúť"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefón sa môže čoskoro vypnúť (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet sa môže čoskoro vypnúť (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Zariadenie sa môže čoskoro vypnúť (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Zostávajúci čas do úplného nabitia: <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> do úplného nabitia"</string>
@@ -442,8 +426,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Dlhší čas."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Kratší čas."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Zapnúť"</string>
<string name="cancel" msgid="6859253417269739139">"Zrušiť"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Zapnúť"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Zapnite režim Nerušiť"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nikdy"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Iba prioritné"</string>
@@ -452,4 +437,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Váš budík o <xliff:g id="WHEN">%1$s</xliff:g> sa nespustí"</string>
<string name="alarm_template" msgid="4996153414057676512">"o <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"o <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Trvanie"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Vždy sa opýtať"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index 10dcb4d15fdf..68e8a0a50c52 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Zasebni strežnik DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Izbira načina zasebnega strežnika DNS"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Izklopljeno"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Samodejno"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Ime gostitelja pri ponudniku zasebnega strežnika DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Vnesite ime gostitelja pri ponudniku strežnika DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Pokaži možnosti za potrdilo brezžičnega zaslona"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Ne obdrži dejavnosti"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Uniči vsako dejavnost, ko uporabnik preneha z njo"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Omejitev postopkov v ozadju"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Pokaži okna neodzivanj"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Prikaz pogovornega okna za neodzivanje aplikacije v ozadju"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Pokaži ANR-je v ozadju"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Prikaz pogovornega okna za neodzivanje aplikacij v ozadju"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Pokaži opoz. kan. za obv."</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Na zaslonu se pokaže opozorilo, ko aplikacija objavi obvestilo brez veljavnega kanala"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Vsili omogočanje aplikacij v zunanji shrambi"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"To je preskusna funkcija in lahko vpliva na učinkovitost delovanja."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Preglasila nastavitev: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Še približno <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Približen preostali čas: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Glede na način uporabe imate na voljo še približno <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Približen preostali čas glede na način uporabe: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Še <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Naprava bo glede na način uporabe (<xliff:g id="LEVEL">%2$s</xliff:g>) delovala do približno <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Naprava bo glede na način uporabe delovala do približno <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Naprava bo delovala do približno <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Naprava bo delovala do približno <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Preostalo manj kot <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Preostanek: manj kot <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Preostali čas delovanja: manj kot <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Preostali čas delovanja: več kot <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon se bo morda kmalu zaustavil"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablični računalnik se bo morda kmalu zaustavil"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Naprava se bo morda kmalu zaustavila"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon se bo morda kmalu zaustavil (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablični računalnik se bo morda kmalu zaustavil (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Naprava se bo morda kmalu zaustavila (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Še <xliff:g id="TIME">%1$s</xliff:g> do polne napolnjenosti"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> do napolnjenosti"</string>
@@ -442,8 +426,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Daljši čas."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Krajši čas."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Vklopi"</string>
<string name="cancel" msgid="6859253417269739139">"Prekliči"</string>
+ <string name="okay" msgid="1997666393121016642">"V redu"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Vklopi"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Vklop načina »ne moti«"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Nikoli"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Samo prednostno"</string>
@@ -452,4 +437,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Naslednjega alarma ob <xliff:g id="WHEN">%1$s</xliff:g> ne boste slišali"</string>
<string name="alarm_template" msgid="4996153414057676512">"ob <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"v <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Trajanje"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Vedno vprašaj"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index 738744169b54..07a987c42330 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS-ja private"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Zgjidh modalitetin e DNS-së private"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Joaktiv"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatik"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Emri i pritësit të ofruesit të DNS-së private"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Fut emrin e pritësit të ofruesit të DNS-së"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Shfaq opsionet për certifikimin e ekranit valor"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Mos i ruaj aktivitetet"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Fshi çdo aktivitet sapo të largohet përdoruesi"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Kufizimi i proceseve në sfond"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Shfaq raportet ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Shfaq raportet ANR (Aplikacioni nuk përgjigjet) për aplikacionet në sfond"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Shfaq raportet ANR të sfondit"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Shfaq raportet ANR (Aplikacioni nuk përgjigjet) për aplikacionet në sfond"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Shfaq paralajmërimet e kanalit të njoftimeve"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Shfaq paralajmërimin në ekran kur një aplikacion poston një njoftim pa një kanal të vlefshëm"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Detyro lejimin në hapësirën e jashtme"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ky funksion është eksperimental dhe mund të ndikojë në veprimtari."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Mbivendosur nga <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Rreth <xliff:g id="TIME">%1$s</xliff:g> të mbetura"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Mbeten rreth <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Rreth <xliff:g id="TIME">%1$s</xliff:g> të mbetura bazuar në përdorimin tënd"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Mbeten rreth <xliff:g id="TIME">%1$s</xliff:g> bazuar në përdorimin tënd (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> të mbetura"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Do të vazhdojë deri në rreth <xliff:g id="TIME">%1$s</xliff:g> bazuar në përdorimin tënd (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Do të vazhdojë deri në rreth <xliff:g id="TIME">%1$s</xliff:g> bazuar në përdorimin tënd"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Do të vazhdojë deri në rreth <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Do të vazhdojë deri në rreth <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Më pak se <xliff:g id="THRESHOLD">%1$s</xliff:g> të mbetura"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Mbeten më pak se <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mbeten më shumë se <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Mbeten më shumë se <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefoni mund të fiket së shpejti"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tableti mund të fiket së shpejti"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Pajisja mund të fiket së shpejti"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefoni mund të fiket së shpejti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tableti mund të fiket së shpejti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Pajisja mund të fiket së shpejti (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> të mbetura deri në ngarkimin e plotë"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> derisa të mbushet plotësisht"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Më shumë kohë."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Më pak kohë."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktivizo"</string>
<string name="cancel" msgid="6859253417269739139">"Anulo"</string>
+ <string name="okay" msgid="1997666393121016642">"Në rregull"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktivizo"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Aktivizo \"Mos shqetëso\""</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Asnjëherë"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Vetëm me prioritet"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Nuk do ta dëgjosh alarmin e radhës në <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"në <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"ditën <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Kohëzgjatja"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Pyet çdo herë"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index c644eae48393..ae3ddc05fc5e 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Приватни DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Изаберите режим приватног DNS-а"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Искључено"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Аутоматски"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Име хоста добављача услуге приватног DNS-а"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Унесите име хоста добављача услуге DNS-а"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Приказ опција за сертификацију бежичног екрана"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Не чувај активности"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Уништи сваку активност чим је корисник напусти"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Ограничење позадинских процеса"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Прикажи све ANR-ове"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Прикажи дијалог Апликација не реагује за апликације у позадини"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Прикажи ANR-ове у позад."</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Прикажи дијалог Апликација не реагује за апликације у позадини"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Приказуј упозорења због канала за обавештења"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Приказује упозорење на екрану када апликација постави обавештење без важећег канала"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Принудно дозволи апликације у спољној"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ова функција је експериментална и може да утиче на квалитет рада."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Замењује га <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Још око <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Још приближно <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"На основу потрошње имате још отприлике <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"На основу коришћења имате још приближно <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Преостало време: <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"На основу коришћења трајаће приближно до TIME <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"На основу коришћења трајаће приближно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Трајаће приближно до <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Трајаће приближно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Преостало је мање од <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Преостало је мање од <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Преостало је више од <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Преостало је више од <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Телефон ће се ускоро искључити"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Таблет ће се ускоро искључити"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Уређај ће се ускоро искључити"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Телефон ће се ускоро искључити (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Таблет ће се ускоро искључити (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Уређај ће се ускоро искључити (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> до потпуног пуњења"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> до потпуног пуњења"</string>
@@ -441,8 +425,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Више времена."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Мање времена."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Укључи"</string>
<string name="cancel" msgid="6859253417269739139">"Откажи"</string>
+ <string name="okay" msgid="1997666393121016642">"Потврди"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Укључи"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Укључите режим Не узнемиравај"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Никад"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Само приоритетни прекиди"</string>
@@ -451,4 +436,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Нећете чути следећи аларм у <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"у <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Трајање"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Увек питај"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index 44875f52cc5f..0b0071e2fe2e 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Privat DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Välj läget Privat DNS"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Av"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Automatisk"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Värdnamn för leverantör av privat DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Ange värdnamn för DNS-leverantör"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Visa certifieringsalternativ för Wi-Fi-skärmdelning"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Behåll inte aktiviteter"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Förstör aktiviteter så fort användaren lämnar dem"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Begränsa bakgrundsprocess"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Visa alla som inte svarar"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Visa dialogrutan om att appen inte svarar för bakgrundsappar"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Visa ANR-fel i bakgruden"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Visa dialogrutan om att appen inte svarar för bakgrundsappar"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Visa varningar om aviseringskanal"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Visa varningar på skärmen när en app lägger upp en avisering utan en giltig kanal"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Tillåt appar i externt lagringsutrymme"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Den här funktionen är experimentell och kan påverka prestandan."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Har åsidosatts av <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Cirka <xliff:g id="TIME">%1$s</xliff:g> återstår"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Ungefär <xliff:g id="TIME">%1$s</xliff:g> kvar (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Cirka <xliff:g id="TIME">%1$s</xliff:g> kvar utifrån din användning"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"About <xliff:g id="TIME">%1$s</xliff:g> kvar utifrån din användning (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> kvar"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Batteriet räcker ungefär till klockan <xliff:g id="TIME">%1$s</xliff:g> utifrån din användning (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Batteriet räcker ungefär till klockan <xliff:g id="TIME">%1$s</xliff:g> utifrån din användning"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Batteriet räcker ungefär till klockan <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Batteriet räcker ungefär till klockan <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Mindre än <xliff:g id="THRESHOLD">%1$s</xliff:g> återstår"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Mindre än <xliff:g id="THRESHOLD">%1$s</xliff:g> återstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mer än <xliff:g id="TIME_REMAINING">%1$s</xliff:g> återstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Mer än <xliff:g id="TIME_REMAINING">%1$s</xliff:g> återstår"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Mobilen kan stängas av snart"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Surfplattan kan stängas av snart"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Enheten kan stängas av snart"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Mobilen kan stängas av snart (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Surfplattan kan stängas av snart (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Enheten kan stängas av snart (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Batteriet är fulladdat om <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> tills det är fulladdat"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Längre tid."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Kortare tid."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktivera"</string>
<string name="cancel" msgid="6859253417269739139">"Avbryt"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aktivera"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Aktivera Stör ej."</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Aldrig"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Endast prioriterade"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Nästa alarm, kl. <xliff:g id="WHEN">%1$s</xliff:g>, kommer inte att höras"</string>
<string name="alarm_template" msgid="4996153414057676512">"kl. <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"på <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Varaktighet"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Fråga varje gång"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index 6305fde95275..95ebad85a35f 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS ya Faragha"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Chagua Hali ya DNS ya Faragha"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Imezimwa"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Otomatiki"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Jina la mpangishi wa huduma za DNS ya faragha"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Weka jina la mpangishi wa huduma za DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Onyesha chaguo za cheti cha kuonyesha pasiwaya"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Usihifadhi shughuli"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Haribu kila shughuli pindi tu mtumiaji anapoondoka"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Kiwango cha mchakato wa mandari nyuma"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Onyesha ANR zote"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Onyesha kisanduku kidadisi cha Programu Haiitikii kwa programu za usuli"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Onyesha historia ya ANR"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Onyesha kidirisha cha Programu Kutorejesha Majibu kwa programu zinazotumika chinichini"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Onyesha arifa za maonyo ya kituo"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Huonyesha onyo kwenye skrini programu inapochapisha arifa bila kituo sahihi."</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Lazima uruhusu programu kwenye hifadhi ya nje"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Kipengele hiki ni cha majaribio na huenda kikaathiri utendaji wa kifaa chako."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Imetanguliwa na <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Zimesalia takribani <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Zimesalia takribani <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Takriban <xliff:g id="TIME">%1$s</xliff:g> zimesalia kulingana na matumizi yako"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Zimesalia takribani <xliff:g id="TIME">%1$s</xliff:g> kulingana na jinsi utakavyoitumia (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Zimesalia <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Itatudumu kwa takribani <xliff:g id="TIME">%1$s</xliff:g> kulingana na jinsi utakavyoitumia (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Itadumu kwa takribani <xliff:g id="TIME">%1$s</xliff:g> kulingana na jinsi utakavyoitumia"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Itadumu kwa takribani <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Itadumu kwa takribani <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Zimesalia chini ya <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Zimesalia chini ya <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Zimesalia zaidi ya <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Zimesalia zaidi ya <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Simu inakaribia kuzimika"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Kompyuta kibao inakaribia kuzimika"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Kifaa kinakaribia kuzimika"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Simu inakaribia kuzimika (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Kompyuta kibao inakaribia kuzimika (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Kifaa kinakaribia kuzimika (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Imebaki <xliff:g id="TIME">%1$s</xliff:g> chaji ijae"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> hadi ijae chaji"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Muda zaidi."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Muda kidogo."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Washa"</string>
<string name="cancel" msgid="6859253417269739139">"Ghairi"</string>
+ <string name="okay" msgid="1997666393121016642">"Sawa"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Washa"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Washa kipengele cha Usinisumbue"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Kamwe"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Kipaumbele tu"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Hutasikia kengele inayofuata ya saa <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"saa <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"siku ya <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Muda"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Uliza kila wakati"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index ff983b711448..c0bb73dcf146 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"தனிப்பட்ட DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"தனிப்பட்ட DNS பயன்முறையைத் தேர்ந்தெடுக்கவும்"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"ஆஃப்"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"தானியங்கு"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"தனிப்பட்ட DNS வழங்குநரின் ஹோஸ்ட் பெயர்"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS வழங்குநரின் ஹோஸ்ட் பெயரை உள்ளிடவும்"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"வயர்லெஸ் காட்சி சான்றுக்கான விருப்பங்களைக் காட்டு"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"செயல்பாடுகளை வைத்திருக்காதே"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"பயனர் வெளியேறியதும் செயல்பாடுகளை நீக்கு"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"பின்புலச் செயல்முறை வரம்பு"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"எல்லா ANRகளையும் காட்டு"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"பின்புலப் பயன்பாடுகளுக்குப் பயன்பாடு பதிலளிக்கவில்லை என்ற உரையாடலைக் காட்டு"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"பின்புல ANRகளைக் காட்டு"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"பின்புல ஆப்ஸுக்கு, பயன்பாடு பதிலளிக்கவில்லை என்ற செய்தியைக் காட்டும்"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"அறிவிப்புச் சேனல் எச்சரிக்கைகளைக் காட்டு"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"பயன்பாடானது சரியான சேனல் இல்லாமல் அறிவிப்பை இடுகையிடும் போது, திரையில் எச்சரிக்கையைக் காட்டும்"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"பயன்பாடுகளை வெளிப்புறச் சேமிப்பிடத்தில் அனுமதி"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"இது சோதனை முறையிலான அம்சம், இது செயல்திறனைப் பாதிக்கலாம்."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> மூலம் மேலெழுதப்பட்டது"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"கிட்டத்தட்ட <xliff:g id="TIME">%1$s</xliff:g> உள்ளது"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"<xliff:g id="TIME">%1$s</xliff:g> வரை மட்டுமே பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"உபயோகத்தின் அடிப்படையில் கிட்டத்தட்ட <xliff:g id="TIME">%1$s</xliff:g> மீதமுள்ளது"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"பயன்படுத்துவதன் அடிப்படையில், <xliff:g id="TIME">%1$s</xliff:g> வரை பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> மீதமுள்ளது"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"நீங்கள் பயன்படுத்துவதன் அடிப்படையில், <xliff:g id="TIME">%1$s</xliff:g> வரை உபயோகிக்க முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"நீங்கள் பயன்படுத்துவதன் அடிப்படையில், <xliff:g id="TIME">%1$s</xliff:g> வரை உபயோகிக்க முடியும்"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"<xliff:g id="TIME">%1$s</xliff:g> வரை பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"<xliff:g id="TIME">%1$s</xliff:g> வரை பயன்படுத்த முடியும்"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>க்கும் குறைவாகவே பயன்படுத்த முடியும்"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>க்கும் குறைவாகவே பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>க்கும் மேல் பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>க்கும் மேல் பயன்படுத்த முடியும்"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"மொபைல் விரைவில் ஆஃப் ஆகக்கூடும்"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"டேப்லெட் விரைவில் ஆஃப் ஆகக்கூடும்"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"சாதனம் விரைவில் ஆஃப் ஆகக்கூடும்"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"மொபைல் விரைவில் ஆஃப் ஆகக்கூடும் (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"டேப்லெட் விரைவில் ஆஃப் ஆகக்கூடும் (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"சாதனம் விரைவில் ஆஃப் ஆகக்கூடும் (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"முழு சார்ஜாக <xliff:g id="TIME">%1$s</xliff:g> ஆகும்"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - முழு சார்ஜாக <xliff:g id="TIME">%2$s</xliff:g> ஆகும்"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"நேரத்தை அதிகரிக்கும்."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"நேரத்தைக் குறைக்கும்."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ஆன் செய்"</string>
<string name="cancel" msgid="6859253417269739139">"ரத்துசெய்"</string>
+ <string name="okay" msgid="1997666393121016642">"சரி"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"ஆன் செய்"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"தொந்தரவு செய்ய வேண்டாம் என்பதை ஆன் செய்யும்"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"ஒருபோதும் வேண்டாம்"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"முக்கியமானவை மட்டும்"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"<xliff:g id="WHEN">%1$s</xliff:g>க்கான அடுத்த அலாரத்திற்கு ஒலி இருக்காது"</string>
<string name="alarm_template" msgid="4996153414057676512">"அலாரம்: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"அலாரம்: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"கால அளவு"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ஒவ்வொரு முறையும் கேள்"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index 2cedcfcf235d..ff3a0841a76c 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS ส่วนตัว"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"เลือกโหมด DNS ส่วนตัว"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"ปิด"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"อัตโนมัติ"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"ชื่อโฮสต์ของผู้ให้บริการ DNS ส่วนตัว"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"ป้อนชื่อโฮสต์ของผู้ให้บริการ DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"แสดงตัวเลือกสำหรับการรับรองการแสดงผล แบบไร้สาย"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"ไม่เก็บกิจกรรม"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"ล้างทุกกิจกรรมทันทีที่ผู้ใช้ออกไป"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"ขีดจำกัดกระบวนการพื้นหลัง"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"แสดง ANR ทั้งหมด"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"แสดงหน้าต่างแอปไม่ตอบสนอง สำหรับแอปพื้นหลัง"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"แสดง ANR พื้นหลัง"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"แสดงหน้าต่างแอปไม่ตอบสนองสำหรับแอปพื้นหลัง"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"แสดงคำเตือนจากช่องทางการแจ้งเตือน"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"แสดงคำเตือนบนหน้าจอเมื่อแอปโพสต์การแจ้งเตือนโดยไม่มีช่องทางที่ถูกต้อง"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"บังคับให้แอปสามารถใช้ที่เก็บภายนอก"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"ฟีเจอร์นี้เป็นแบบทดลองและอาจส่งผลต่อประสิทธิภาพการทำงาน"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"แทนที่โดย <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"อีกประมาณ <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"ใช้งานได้อีกประมาณ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"เหลืออีกราว <xliff:g id="TIME">%1$s</xliff:g> ขึ้นอยู่กับการใช้งานของคุณ"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"ใช้งานได้อีกประมาณ <xliff:g id="TIME">%1$s</xliff:g> ขึ้นอยู่กับการใช้งานของคุณ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"เหลืออีก <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"ใช้งานได้ถึงเวลาประมาณ <xliff:g id="TIME">%1$s</xliff:g> ขึ้นอยู่กับการใช้งานของคุณ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"ใช้งานได้ถึงเวลาประมาณ <xliff:g id="TIME">%1$s</xliff:g> ขึ้นอยู่กับการใช้งานของคุณ"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"ใช้งานได้ถึงเวลาประมาณ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"ใช้งานได้ถึงเวลาประมาณ <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"เหลืออีกไม่ถึง <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"เหลือเวลาอีกไม่ถึง <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"เหลือเวลามากกว่า <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"เหลือเวลามากกว่า <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"โทรศัพท์อาจปิดเครื่องในไม่ช้า"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"แท็บเล็ตอาจปิดเครื่องในไม่ช้า"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"อุปกรณ์อาจปิดเครื่องในไม่ช้า"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"โทรศัพท์อาจปิดเครื่องในไม่ช้า (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"แท็บเล็ตอาจปิดเครื่องในไม่ช้า (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"อุปกรณ์อาจปิดเครื่องในไม่ช้า (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"อีก <xliff:g id="TIME">%1$s</xliff:g> จึงจะชาร์จเต็ม"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> จนกว่าจะชาร์จเต็ม"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"เวลามากขึ้น"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"เวลาน้อยลง"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"เปิด"</string>
<string name="cancel" msgid="6859253417269739139">"ยกเลิก"</string>
+ <string name="okay" msgid="1997666393121016642">"ตกลง"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"เปิด"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"เปิด \"ห้ามรบกวน\""</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"ไม่เลย"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"เฉพาะเรื่องสำคัญ"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"คุณจะไม่ได้ยินเสียงปลุกครั้งถัดไปในเวลา <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"เวลา <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"วัน<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"ระยะเวลา"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ถามทุกครั้ง"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index dd774d25c8df..f289608b871c 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Pribadong DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Pumili ng Pribadong DNS Mode"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Naka-off"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Awtomatiko"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Hostname ng provider ng pribadong DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Ilagay ang hostname ng DNS provider"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Ipakita ang mga opsyon para sa certification ng wireless display"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Huwag magtago ng mga aktibidad"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Sirain ang bawat aktibidad sa sandaling iwan ito ng user"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Limitasyon ng proseso sa background"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Ipakita ang lahat ng ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"App Not Responding dialog para sa background apps"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Ipakita ang mga ANR sa background"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Ipakita ang dialog na Hindi Tumutugon ang App para sa mga app sa background"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Ipakita ang mga babala sa notification channel"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Nagpapakita ng babala sa screen kapag nag-post ang app ng notification nang walang wastong channel"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Pwersahang payagan ang mga app sa external"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ang feature na ito ay pinag-eeksperimentuhan at maaaring makaapekto sa performance."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Na-override ng <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> ang natitira"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"May humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> pa (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> ang natitira batay sa iyong paggamit"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"May humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> pa batay sa iyong paggamit (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> pa"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Tatagal nang hanggang humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> batay sa iyong paggamit (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Tatagal nang hanggang humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> batay sa iyong paggamit"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Tatagal nang hanggang humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Tatagal nang hanggang humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Wala nang <xliff:g id="THRESHOLD">%1$s</xliff:g> ang natitira"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Wala nang <xliff:g id="THRESHOLD">%1$s</xliff:g> ang natitira (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Mahigit <xliff:g id="TIME_REMAINING">%1$s</xliff:g> pa ang natitira (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Mahigit <xliff:g id="TIME_REMAINING">%1$s</xliff:g> pa ang natitira"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Malapit nang mag-shut down ang telepono"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Malapit nang mag-shut down ang tablet"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Malapit nang mag-shut down ang device"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Malapit nang mag-shut down ang telepono (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Malapit nang mag-shutdown ang tablet (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Malapit nang mag-shut down ang device (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> ang natitira bago makumpleto ang charge"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> hanggang sa makumpleto ang charge"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Dagdagan ang oras."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Bawasan ang oras."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"I-on"</string>
<string name="cancel" msgid="6859253417269739139">"Kanselahin"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"I-on"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"I-on ang Huwag Istorbohin"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Hindi kailanman"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Priyoridad lang"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Hindi mo maririnig ang iyong susunod na alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"sa <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"sa <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Tagal"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Magtanong palagi"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index 21707f406837..c8a643cffe23 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Gizli DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Gizli DNS Modunu Seçin"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Kapalı"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Otomatik"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Gizli DNS sağlayıcının ana makine adı"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS sağlayıcının ana makine adını gir"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Kablosuz ekran sertifikası seçeneklerini göster"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Etkinlikleri saklama"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Kullanıcının ayrıldığı her etkinliği hemen yok et"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Arka plan işlem sınırı"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Tüm ANR\'leri göster"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Arka plan uygulamalar için Uygulama Yanıt Vermiyor mesajını göster"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Arka plan ANR\'leri göster"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Arka plan uygulamalar için Uygulama Yanıt Vermiyor mesajını göster"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Bildirim kanalı uyarılarını göster"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Bir uygulama geçerli kanal olmadan bildirim yayınladığında ekranda uyarı gösterir"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Harici birimdeki uygulamalara izin vermeye zorla"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Bu özellik deneyseldir ve performansı etkileyebilir."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> tarafından geçersiz kılındı"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Yaklaşık <xliff:g id="TIME">%1$s</xliff:g> kaldı"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Yaklaşık <xliff:g id="TIME">%1$s</xliff:g> kaldı (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Kullanımınıza dayalı olarak yaklaşık <xliff:g id="TIME">%1$s</xliff:g> kaldı"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Kullanımınıza dayalı olarak yaklaşık <xliff:g id="TIME">%1$s</xliff:g> kaldı (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> kaldı"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Kullanımınıza göre saat yaklaşık <xliff:g id="TIME">%1$s</xliff:g> olana kadar kullanılabilecek (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Kullanımınıza göre saat yaklaşık <xliff:g id="TIME">%1$s</xliff:g> olana kadar kullanılabilecek"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Saat yaklaşık <xliff:g id="TIME">%1$s</xliff:g> olana kadar kullanılabilecek (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Saat yaklaşık <xliff:g id="TIME">%1$s</xliff:g> olana kadar kullanılabilecek"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"En fazla <xliff:g id="THRESHOLD">%1$s</xliff:g> kaldı"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"En çok <xliff:g id="THRESHOLD">%1$s</xliff:g> kaldı (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"En az <xliff:g id="TIME_REMAINING">%1$s</xliff:g> kaldı (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"En az <xliff:g id="TIME_REMAINING">%1$s</xliff:g> kaldı"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon kısa süre içinde kapanabilir"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Tablet kısa süre içinde kapanabilir"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Cihaz kısa süre içinde kapanabilir"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon kısa süre içinde kapanabilir (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Tablet kısa süre içinde kapanabilir (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Cihaz kısa süre içinde kapanabilir (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Tam olarak şarj olmasına <xliff:g id="TIME">%1$s</xliff:g> kaldı"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - Tam şarj olmasına <xliff:g id="TIME">%2$s</xliff:g> kaldı"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Daha uzun süre."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Daha kısa süre."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aç"</string>
<string name="cancel" msgid="6859253417269739139">"İptal"</string>
+ <string name="okay" msgid="1997666393121016642">"TAMAM"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Aç"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Rahatsız Etmeyin\'i açın"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Hiçbir zaman"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Yalnızca öncelikliler"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"<xliff:g id="WHEN">%1$s</xliff:g> olarak ayarlanmış bir sonraki alarmınızı duymayacaksınız"</string>
<string name="alarm_template" msgid="4996153414057676512">"saat: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"zaman: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Süre"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Her zaman sor"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index d1e68e129900..e88ae019e0a7 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Приватна DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Виберіть режим \"Приватна DNS\""</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Вимкнено"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Автоматично"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Ім’я хосту приватного постачальника послуг DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Введіть ім’я хосту постачальника послуг DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Показати параметри сертифікації бездротового екрана"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Не зберігати дії"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Видаляти зведення дій після їх завершення"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Обмеження фон. процесів"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Показувати всі ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Сповіщати, коли додаток не відповідає"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Показувати фонові ANR"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Показувати вікно \"Додаток не відповідає\" для додатків у фоновому режимі"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Показувати застереження про канал"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"З’являється застереження, коли додаток надсилає сповіщення через недійсний канал"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Примусово записувати додатки в зовнішню пам’ять"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Це експериментальна функція. Вона може вплинути на продуктивність."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Замінено на <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Залишилося близько <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Залишилося близько <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"На основі використання залишилося близько <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Відповідно до даних про використання, залишилося близько <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Залишилося <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Згідно з даними про використання (<xliff:g id="LEVEL">%2$s</xliff:g>) вистачить приблизно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Згідно з даними про використання вистачить приблизно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Вистачить приблизно до <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Вистачить приблизно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Залишилося менше ніж <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Залишилося менше ніж <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Залишилося понад <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Залишилося понад <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Телефон може невдовзі вимкнутися"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Планшет може невдовзі вимкнутися"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Пристрій може невдовзі вимкнутися"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Телефон може невдовзі вимкнутися (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Планшет може невдовзі вимкнутися (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Пристрій може невдовзі вимкнутися (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"До повного зарядження залишилося <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> до повного заряду"</string>
@@ -442,8 +426,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Більше часу."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Менше часу."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Увімкнути"</string>
<string name="cancel" msgid="6859253417269739139">"Скасувати"</string>
+ <string name="okay" msgid="1997666393121016642">"ОК"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Увімкнути"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Увімкнути режим \"Не турбувати\""</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Ніколи"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Лише пріоритетні"</string>
@@ -452,4 +437,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Наступний сигнал <xliff:g id="WHEN">%1$s</xliff:g> не пролунає"</string>
<string name="alarm_template" msgid="4996153414057676512">"о <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Тривалість"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Запитувати щоразу"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index 82686bdbbbba..9cb14468666b 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"‏نجی DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"‏نجی DNS وضع منتخب کریں"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"آف"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"خودکار"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"‏نجی DNS فراہم کنندہ میزبان کا نام"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"‏DNS فراہم کنندہ کے میزبان کا نام درج کریں"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"وائرلیس ڈسپلے سرٹیفیکیشن کیلئے اختیارات دکھائیں"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"سرگرمیوں کو نہ رکھیں"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"صارف کی ہر سرگرمی صارف کے چھوڑنے پر حذف کر دیں"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"پس منظر پروسیس کی حد"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"‏سبھی ANRs کو دکھائیں"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"پس منظر کی ایپس کیلئے ایپ جواب نہیں دے رہی ہے ڈائلاگ دکھائیں"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"‏پس منظر ANRs دکھائیں"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"پس منظر کی ایپس کیلئے \'ایپ جواب نہیں دے رہی ہے\' ڈائلاگ ڈسپلے کریں"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"چینل کی اطلاعی تنبیہات دکھائیں"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"کسی ایپ کی طرف سے درست چینل کے بغیر اطلاع پوسٹ ہونے پر آن اسکرین تنبیہ ڈسپلے کرتا ہے"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"بیرونی پر ایپس کو زبردستی اجازت دیں"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"یہ خصوصیت تجرباتی ہے اور اس کی وجہ سے کاکردگی متاثر ہو سکتی ہے۔"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> کے ذریعہ منسوخ کردیا گیا"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"تقریبًا <xliff:g id="TIME">%1$s</xliff:g> باقی ہے"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"تقریباً <xliff:g id="TIME">%1$s</xliff:g> باقی ہے (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"آپ کے استعمال کی بنیاد پر تقریباً <xliff:g id="TIME">%1$s</xliff:g> باقی ہے"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"آپ کے استعمال کی بنیاد پر تقریباً <xliff:g id="TIME">%1$s</xliff:g> باقی ہے (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> باقی ہے"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"آپ کے استعمال کی بنیاد پر تقریباً <xliff:g id="TIME">%1$s</xliff:g> تک بیٹری چلے گی (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"آپ کے استعمال کی بنیاد پر تقریباً <xliff:g id="TIME">%1$s</xliff:g> تک بیٹری چلے گی"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"تقریباً <xliff:g id="TIME">%1$s</xliff:g> تک بیٹری چلے گی (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"تقریباً <xliff:g id="TIME">%1$s</xliff:g> تک بیٹری چلے گی"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g> سے کم باقی ہے"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g> سے کم باقی ہے (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> سے زیادہ باقی ہے (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> سے زیادہ باقی ہے"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"فون جلد ہی بند ہو سکتا ہے"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"ٹیبلیٹ جلد ہی بند ہو سکتا ہے"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"آلہ جلد ہی بند ہو سکتا ہے"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"فون جلد ہی بند ہو سکتا ہے (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"ٹیبلیٹ جلد ہی بند ہو سکتا ہے (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"آلہ جلد ہی بند ہو سکتا ہے (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"‎<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>‎"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"پوری طرح چارج ہونے میں <xliff:g id="TIME">%1$s</xliff:g> باقی ہے"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> پوری طرح چارج ہونے تک"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"زیادہ وقت۔"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"کم وقت۔"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"آن کریں"</string>
<string name="cancel" msgid="6859253417269739139">"منسوخ کریں"</string>
+ <string name="okay" msgid="1997666393121016642">"ٹھیک ہے"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"آن کریں"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"\'ڈسٹرب نہ کریں\' کو آن کریں"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"کبھی نہیں"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"صرف ترجیحی"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"آپ کو <xliff:g id="WHEN">%1$s</xliff:g> بجے اپنا اگلا الارم سنائی نہیں دے گا"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g> بجے"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g> بجے"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"مدت"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"ہر بار پوچھیں"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index 4043e98933cf..12b8a1644657 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"Shaxsiy DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Shaxsiy DNS rejimini tanlang"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"O‘chiq"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Avtomatik"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Shaxsiy DNS provayderining host nomi"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"DNS provayderining host nomini kiriting"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Simsiz monitorlarni sertifikatlash parametrini ko‘rsatish"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Faollik ma’lumoti saqlanmasin"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Amal tugagach, uning tarixi tozalansin"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Fondagi jarayonlarni cheklash"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Hamma ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Ilova javob bermayotgani haqida xabar qilish"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Fondagi barcha ANR"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Ilova javob bermayotgani haqida xabar qilish"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Xabarlar kanali ogohlantirishlarini ko‘rsatish"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Yaroqli kanalsiz yuborilgan yangi ilova xabarnomalari haqida ogohlantirishlarni ko‘rsatish"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Tashqi xotira qurilmasidagi ilova dasturlariga majburiy ruxsat berish"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Bu funksiya tajribaviy bo‘lib, u qurilma unumdorligiga ta’sir qilishi mumkin."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> bilan almashtirildi"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Taxminan <xliff:g id="TIME">%1$s</xliff:g> qoldi"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Taxminan <xliff:g id="TIME">%1$s</xliff:g> qoldi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Joriy holatda taxminan <xliff:g id="TIME">%1$s</xliff:g> qoldi"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Joriy holatda taxminan <xliff:g id="TIME">%1$s</xliff:g> qoldi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> qoldi"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Joriy holatda taxminan <xliff:g id="TIME">%1$s</xliff:g> gacha davom etadi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Joriy holatda taxminan <xliff:g id="TIME">%1$s</xliff:g> gacha davom etadi"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Taxminan <xliff:g id="TIME">%1$s</xliff:g> gacha davom etadi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Taxminan <xliff:g id="TIME">%1$s</xliff:g> gacha davom etadi"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"<xliff:g id="THRESHOLD">%1$s</xliff:g>dan kamroq vaqt qoldi"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"<xliff:g id="THRESHOLD">%1$s</xliff:g>dan kamroq vaqt qoldi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>dan ko‘proq vaqt qoldi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>dan ko‘proq vaqt qoldi"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Telefon tez orada o‘chib qolishi mumkin"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Planshet tez orada o‘chib qolishi mumkin"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Qurilma tez orada o‘chib qolishi mumkin"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Telefon tez orada o‘chib qolishi mumkin (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Planshet tez orada o‘chib qolishi mumkin (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Qurilma tez orada o‘chib qolishi mumkin (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"To‘lishiga <xliff:g id="TIME">%1$s</xliff:g> qoldi"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="TIME">%2$s</xliff:g> ichida to‘ladi"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Ko‘proq vaqt."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Kamroq vaqt."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Yoqish"</string>
<string name="cancel" msgid="6859253417269739139">"Bekor qilish"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Yoqish"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Bezovta qilinmasin rejimini yoqing"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Hech qachon"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Faqat muhimlari"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Keyingi signal (<xliff:g id="WHEN">%1$s</xliff:g>) chalinmaydi"</string>
<string name="alarm_template" msgid="4996153414057676512">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Davomiyligi"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Har safar so‘ralsin"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index f05a1a8dd59a..1a6ff3dca9b1 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"DNS riêng tư"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Chọn chế độ DNS riêng tư"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Tắt"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Tự động"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Tên máy chủ của nhà cung cấp DNS riêng tư"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Nhập tên máy chủ của nhà cung cấp DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Hiển thị tùy chọn chứng nhận hiển thị không dây"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Không lưu hoạt động"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Hủy mọi hoạt động ngay khi người dùng rời khỏi"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Giới hạn quá trình nền"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Hiển thị tất cả ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Hiện hộp thoại Ứng dụng ko đáp ứng cho ứng dụng nền"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Hiển thị ANR nền"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Hiện hộp thoại Ứng dụng không đáp ứng cho ứng dụng nền"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Hiện cảnh báo kênh th.báo"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Hiện cảnh báo trên m.hình khi ƯD đăng th.báo ko có kênh hợp lệ"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Buộc cho phép các ứng dụng trên bộ nhớ ngoài"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Tính năng này là tính năng thử nghiệm và có thể ảnh hưởng đến hoạt động."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Bị ghi đè bởi <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Còn khoảng <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Còn khoảng <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Còn khoảng <xliff:g id="TIME">%1$s</xliff:g> dựa trên mức sử dụng của bạn"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Còn khoảng <xliff:g id="TIME">%1$s</xliff:g> dựa vào mức sử dụng của bạn (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Còn lại <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Sẽ kết thúc cho tới khoảng <xliff:g id="TIME">%1$s</xliff:g> dựa vào mức sử dụng của bạn (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Sẽ kết thúc cho tới khoảng <xliff:g id="TIME">%1$s</xliff:g> dựa vào mức sử dụng của bạn"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Sẽ kết thúc cho tới khoảng <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Sẽ kết thúc cho tới khoảng <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Còn lại không đến <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Còn lại không đến <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Còn lại hơn <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Còn lại hơn <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Điện thoại có thể sắp tắt"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Máy tính bảng có thể sắp tắt"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Thiết bị có thể sắp tắt"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Điện thoại có thể sắp tắt (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Máy tính bảng có thể sắp tắt (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Thiết bị có thể sắp tắt (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"Còn <xliff:g id="TIME">%1$s</xliff:g> cho tới khi được sạc đầy"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> cho tới khi được sạc đầy"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Nhiều thời gian hơn."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Ít thời gian hơn."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Bật"</string>
<string name="cancel" msgid="6859253417269739139">"Hủy"</string>
+ <string name="okay" msgid="1997666393121016642">"OK"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Bật"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Bật chế độ Không làm phiền"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Không bao giờ"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Chỉ ưu tiên"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Bạn sẽ không nghe thấy báo thức tiếp theo lúc <xliff:g id="WHEN">%1$s</xliff:g> của mình"</string>
<string name="alarm_template" msgid="4996153414057676512">"lúc <xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"vào <xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Thời lượng"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Luôn hỏi"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index 8c2342e879d2..e4f63283ebcd 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"私人 DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"选择私人 DNS 模式"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"关闭"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"自动"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"私人 DNS 提供商主机名"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"输入 DNS 提供商的主机名"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"显示无线显示认证选项"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"不保留活动"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"用户离开后即销毁每个活动"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"后台进程限制"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"显示所有“应用无响应”(ANR)"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"为后台应用显示“应用无响应”对话框"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"显示后台 ANR"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"为后台应用显示“应用无响应”对话框"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"显示通知渠道警告"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"当应用未经有效渠道发布通知时,在屏幕上显示警告"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"强制允许将应用写入外部存储设备"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"这是实验性功能,性能可能不稳定。"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"已被“<xliff:g id="TITLE">%1$s</xliff:g>”覆盖"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"还剩大约 <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"剩余时间大约还有 <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"根据您的使用情况,大约还可使用 <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"根据您的使用情况,剩余时间大约还有 <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"还可用 <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"根据您的使用情况,电量大约还可继续使用 <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"根据您的使用情况,电量大约还可继续使用 <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"电量大约还可继续使用 <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"电量大约还可继续使用 <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"剩余电池续航时间不到 <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"电量剩余使用时间不到 <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"电量剩余使用时间超过 <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"电量剩余使用时间超过 <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"手机可能即将关机"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"平板电脑可能即将关机"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"设备可能即将关机"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"手机可能即将关机 (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"平板电脑可能即将关机 (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"设备可能即将关机 (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"还需 <xliff:g id="TIME">%1$s</xliff:g>充满电"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - 还需 <xliff:g id="TIME">%2$s</xliff:g>充满"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"增加时间。"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"减少时间。"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"开启"</string>
<string name="cancel" msgid="6859253417269739139">"取消"</string>
+ <string name="okay" msgid="1997666393121016642">"确定"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"开启"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"开启“勿扰”模式"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"永不"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"仅限优先事项"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"您将不会听到下一个<xliff:g id="WHEN">%1$s</xliff:g> 的闹钟响铃"</string>
<string name="alarm_template" msgid="4996153414057676512">"时间:<xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"时间:<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"持续时间"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"每次都询问"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 6f03f0ba7c1b..be7afb275f63 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"不公開的網域名稱系統 (DNS)"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"選取不公開的網域名稱系統 (DNS) 模式"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"停用"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"自動"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"不公開的網域名稱系統 (DNS) 供應商主機名稱"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"輸入網域名稱系統 (DNS) 供應商的主機名稱"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"顯示無線螢幕分享認證的選項"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"不要保留活動"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"使用者離開活動後隨即銷毀活動"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"背景處理程序限制"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"顯示所有 ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"顯示背景應用程式的「應用程式無回應」對話框"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"顯示背景 ANR"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"為背景應用程式顯示「應用程式無回應」對話框"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"顯示通知渠道警告"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"當應用程式未經有效渠道發佈通知時,在螢幕上顯示警告"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"強制允許應用程式寫入到外部儲存空間"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"這是實驗性功能,效能尚待改善。"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"已由「<xliff:g id="TITLE">%1$s</xliff:g>」覆寫"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"剩餘約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"還有大約 <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"根據您的使用情況,剩餘約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"根據您的使用情況,還有大約 <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"尚餘 <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"根據您的使用情況 (<xliff:g id="LEVEL">%2$s</xliff:g>),電量剩餘約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"根據您的使用情況,電量剩餘約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"電量剩餘約 <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"電量剩餘約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"剩餘電量時間少於 <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"還有少於 <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"還有超過 <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"還有超過 <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"手機可能即將關機"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"平板電腦可能即將關機"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"裝置可能即將關機"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"手機可能即將關機 (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"平板電腦可能即將關機 (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"裝置可能即將關機 (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g>後就能充滿電"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - 還需 <xliff:g id="TIME">%2$s</xliff:g>才能充滿電"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"增加時間。"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"減少時間。"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"開啟"</string>
<string name="cancel" msgid="6859253417269739139">"取消"</string>
+ <string name="okay" msgid="1997666393121016642">"確定"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"開啟"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"開啟「請勿騷擾」模式"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"永不"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"僅限優先通知"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"您不會聽到下一個<xliff:g id="WHEN">%1$s</xliff:g>的鬧鐘響鬧"</string>
<string name="alarm_template" msgid="4996153414057676512">"時間:<xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"時間:<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"長度"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"每次都詢問"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index 9856879e5dbb..7b88a0288f51 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"私人 DNS"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"選取私人 DNS 模式"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"停用"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"自動"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"私人 DNS 供應商主機名稱"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"輸入 DNS 供應商的主機名稱"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"顯示無線螢幕分享認證的選項"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"不要保留活動"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"使用者離開活動後立刻刪除所有活動內容"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"背景處理程序限制"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"顯示所有無回應程式"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"為背景應用程式顯示「應用程式無回應」對話方塊"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"顯示背景 ANR"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"為背景應用程式顯示「應用程式無回應」對話方塊"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"顯示通知管道警告"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"當應用程式未經有效管道發佈通知時,在畫面上顯示警告"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"強制允許將應用程式寫入外部儲存空間"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"這是一項實驗性功能,可能會對效能造成影響。"</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"已改為<xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"還有大約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"目前電量為 <xliff:g id="LEVEL">%2$s</xliff:g>,還能持續使用 <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"根據你的使用情形,剩餘時間大約還有 <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"根據你的使用情形,目前電量為 <xliff:g id="LEVEL">%2$s</xliff:g>,還能持續使用 <xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"還剩 <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"根據你的使用情形,裝置電量 (<xliff:g id="LEVEL">%2$s</xliff:g>) 將於<xliff:g id="TIME">%1$s</xliff:g> 耗盡"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"根據你的使用情形,裝置電量將於<xliff:g id="TIME">%1$s</xliff:g> 耗盡"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"裝置電量 (<xliff:g id="LEVEL">%2$s</xliff:g>) 將於<xliff:g id="TIME">%1$s</xliff:g> 耗盡"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"裝置電量將於<xliff:g id="TIME">%1$s</xliff:g> 耗盡"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"電池可用時間不到 <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"電池可用時間不到 <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"電池可用時間超過 <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"電池可用時間超過 <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"手機可能即將關機"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"平板電腦可能即將關機"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"裝置可能即將關機"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"手機可能即將關機 (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"平板電腦可能即將關機 (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"裝置可能即將關機 (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"再過 <xliff:g id="TIME">%1$s</xliff:g>就能完成充電"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g>後充飽"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"增加時間。"</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"減少時間。"</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"開啟"</string>
<string name="cancel" msgid="6859253417269739139">"取消"</string>
+ <string name="okay" msgid="1997666393121016642">"確定"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"開啟"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"開啟「零打擾」模式"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"永不"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"僅限優先通知"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"你不會聽到下一個<xliff:g id="WHEN">%1$s</xliff:g> 的鬧鐘"</string>
<string name="alarm_template" msgid="4996153414057676512">"時間:<xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"時間:<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"時間長度"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"每次都詢問"</string>
</resources>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index 64861ec868d4..3c94895201d3 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -220,8 +220,7 @@
<string name="select_private_dns_configuration_title" msgid="3700456559305263922">"I-DNS eyimfihlo"</string>
<string name="select_private_dns_configuration_dialog_title" msgid="9221994415765826811">"Khetha imodi ye-DNS eyimfihlo"</string>
<string name="private_dns_mode_off" msgid="8236575187318721684">"Kuvaliwe"</string>
- <!-- no translation found for private_dns_mode_opportunistic (8314986739896927399) -->
- <skip />
+ <string name="private_dns_mode_opportunistic" msgid="8314986739896927399">"Okuzenzekelayo"</string>
<string name="private_dns_mode_provider" msgid="8354935160639360804">"Igama lomsingathi womhlinzeki we-DNS"</string>
<string name="private_dns_mode_provider_hostname_hint" msgid="2487492386970928143">"Faka igama lomsingathi womhlinzeki we-DNS"</string>
<string name="wifi_display_certification_summary" msgid="1155182309166746973">"Bonisa izinketho zokunikeza isitifiketi ukubukeka okungenantambo"</string>
@@ -305,8 +304,8 @@
<string name="immediately_destroy_activities" msgid="1579659389568133959">"Ungagcini imisibenzi"</string>
<string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"Phihliza zonke izenzo ngokushesha ngemva kokuna umsebenzisi awuyeka"</string>
<string name="app_process_limit_title" msgid="4280600650253107163">"Isilinganiso senqubo yesithombe sanemuva"</string>
- <string name="show_all_anrs" msgid="28462979638729082">"Bonisa wonke ama-ANR"</string>
- <string name="show_all_anrs_summary" msgid="641908614413544127">"Boniso idayalogi Yohlelo Lokusebenza Olungasabeli kwizinhlelo zokusebenza zasemuva"</string>
+ <string name="show_all_anrs" msgid="4924885492787069007">"Bonisa ama-ANR angemuva"</string>
+ <string name="show_all_anrs_summary" msgid="6636514318275139826">"Uhlelo lokusebenza lwesibonisi aluphenduli kungxoxo yezinhlelo zokusebenza zangemuva"</string>
<string name="show_notification_channel_warnings" msgid="1399948193466922683">"Bonisa izexwayiso zesiteshi sesaziso"</string>
<string name="show_notification_channel_warnings_summary" msgid="5536803251863694895">"Ibonisa isexwayiso esikusikrini uma uhlelo lokusebenza luthumela isaziso ngaphandle kwesiteshi esivumelekile"</string>
<string name="force_allow_on_external" msgid="3215759785081916381">"Phoqelela ukuvumela izinhlelo zokusebenza ngaphandle"</string>
@@ -357,39 +356,24 @@
<string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Lesi sici esesilingo futhi singathinta ukusebenza."</string>
<string name="daltonizer_type_overridden" msgid="3116947244410245916">"Igitshezwe ngaphezulu yi-<xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="power_remaining_duration_only" msgid="845431008899029842">"Cishe u-<xliff:g id="TIME">%1$s</xliff:g> osele"</string>
- <!-- no translation found for power_discharging_duration (6655472132189365839) -->
- <skip />
+ <string name="power_discharging_duration" msgid="6655472132189365839">"Cishe u-<xliff:g id="TIME">%1$s</xliff:g> osele (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_enhanced" msgid="5992456722677973678">"Cishe kusele okungu-<xliff:g id="TIME">%1$s</xliff:g> kusukela ekusetshenzisweni kwakho"</string>
- <!-- no translation found for power_discharging_duration_enhanced (5726302316642148671) -->
- <skip />
+ <string name="power_discharging_duration_enhanced" msgid="5726302316642148671">"Cishe u-<xliff:g id="TIME">%1$s</xliff:g> osele ngokuya ngokusebenzisa kwakho (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
<string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> esisele"</string>
- <!-- no translation found for power_discharge_by_enhanced (8788299408879961465) -->
- <skip />
- <!-- no translation found for power_discharge_by_only_enhanced (7692297898877104416) -->
- <skip />
- <!-- no translation found for power_discharge_by (6427074755635635749) -->
- <skip />
- <!-- no translation found for power_discharge_by_only (5888058889261108064) -->
- <skip />
+ <string name="power_discharge_by_enhanced" msgid="8305422490607220844">"Izohlala cishe kuze kube ngu-<xliff:g id="TIME">%1$s</xliff:g> kusukela ekusetshenzisweni kwakho (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only_enhanced" msgid="896515698736070025">"Izohlala kuze cishe kube ngu-<xliff:g id="TIME">%1$s</xliff:g> kusukela ekusetshenzisweni kwakho"</string>
+ <string name="power_discharge_by" msgid="6052127431194780229">"Izohlala cishe kuze kube ngu-<xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_discharge_by_only" msgid="4850425421176271395">"Izohlala cishe kuze kube ngu-<xliff:g id="TIME">%1$s</xliff:g>"</string>
<string name="power_remaining_less_than_duration_only" msgid="5996752448813295329">"Kusele okungaphansi kunokungu-<xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_less_than_duration (5751885147712659423) -->
- <skip />
- <!-- no translation found for power_remaining_more_than_subtext (3176771815132876675) -->
- <skip />
- <!-- no translation found for power_remaining_only_more_than_subtext (8931654680569617380) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (1181059207608751924) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2606370266981054691) -->
- <skip />
- <!-- no translation found for power_remaining_duration_only_shutdown_imminent (2918084807716859985) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (3090926004324573908) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (7466484148515796216) -->
- <skip />
- <!-- no translation found for power_remaining_duration_shutdown_imminent (603933521600231649) -->
- <skip />
+ <string name="power_remaining_less_than_duration" msgid="5751885147712659423">"Ngaphansi kuka-<xliff:g id="THRESHOLD">%1$s</xliff:g> osele (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_more_than_subtext" msgid="3176771815132876675">"Ngaphezu kuka-<xliff:g id="TIME_REMAINING">%1$s</xliff:g> osele (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
+ <string name="power_remaining_only_more_than_subtext" msgid="8931654680569617380">"Ngaphezulu kokungu-<xliff:g id="TIME_REMAINING">%1$s</xliff:g> okusele"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="default" msgid="1181059207608751924">"Ifoni ingacisha maduze"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="tablet" msgid="2606370266981054691">"Ithebulethi ingacisha maduze"</string>
+ <string name="power_remaining_duration_only_shutdown_imminent" product="device" msgid="2918084807716859985">"Idivayisi ingacisha maduze"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="default" msgid="3090926004324573908">"Ifoni ingacisha maduze (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7466484148515796216">"Ithebhulethi ingacisha maduze (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
+ <string name="power_remaining_duration_shutdown_imminent" product="device" msgid="603933521600231649">"Idivayisi ingacisha maduze (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="1779532561355864267">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATE">%2$s</xliff:g>"</string>
<string name="power_remaining_charging_duration_only" msgid="1421102457410268886">"<xliff:g id="TIME">%1$s</xliff:g> kushiywe ishaja"</string>
<string name="power_charging_duration" msgid="4676999980973411875">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="TIME">%2$s</xliff:g> kuze ligcwale ngokuphelele"</string>
@@ -440,8 +424,9 @@
</plurals>
<string name="accessibility_manual_zen_more_time" msgid="1636187409258564291">"Isikhathi esiningi."</string>
<string name="accessibility_manual_zen_less_time" msgid="6590887204171164991">"Isikhathi esincane."</string>
- <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Vula"</string>
<string name="cancel" msgid="6859253417269739139">"Khansela"</string>
+ <string name="okay" msgid="1997666393121016642">"KULUNGILE"</string>
+ <string name="zen_mode_enable_dialog_turn_on" msgid="8287824809739581837">"Vula"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="2297134204747331078">"Vula ukungaphazamisi"</string>
<string name="zen_mode_settings_summary_off" msgid="6119891445378113334">"Soze"</string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"Okubalulekile kuphela"</string>
@@ -450,4 +435,6 @@
<string name="zen_alarm_warning" msgid="6236690803924413088">"Ngeke uzwe i-alamu yakho elandelayo ngo-<xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template" msgid="4996153414057676512">"ngo-<xliff:g id="WHEN">%1$s</xliff:g>"</string>
<string name="alarm_template_far" msgid="3779172822607461675">"nge-<xliff:g id="WHEN">%1$s</xliff:g>"</string>
+ <string name="zen_mode_duration_settings_title" msgid="229547412251222757">"Ubude besikhathi"</string>
+ <string name="zen_mode_duration_always_prompt_title" msgid="6478923750878945501">"Buza njalo"</string>
</resources>
diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml
index e77db82a520c..fe785c2e5c91 100644
--- a/packages/SettingsLib/res/values/strings.xml
+++ b/packages/SettingsLib/res/values/strings.xml
@@ -887,13 +887,13 @@
<string name="power_remaining_duration_only_short"><xliff:g id="time">%1$s</xliff:g> left</string>
<!-- [CHAR_LIMIT=100] Label for enhanced estimated time that phone will run out of battery -->
- <string name="power_discharge_by_enhanced">Will last until about <xliff:g id="time">%1$s</xliff:g> based on your usage (<xliff:g id="level">%2$s</xliff:g>)</string>
+ <string name="power_discharge_by_enhanced">Should last until about <xliff:g id="time">%1$s</xliff:g> based on your usage (<xliff:g id="level">%2$s</xliff:g>)</string>
<!-- [CHAR_LIMIT=100] Label for enhanced estimated time that phone will run out of battery with no percentage -->
- <string name="power_discharge_by_only_enhanced">Will last until about <xliff:g id="time">%1$s</xliff:g> based on your usage</string>
+ <string name="power_discharge_by_only_enhanced">Should last until about <xliff:g id="time">%1$s</xliff:g> based on your usage</string>
<!-- [CHAR_LIMIT=100] Label for estimated time that phone will run out of battery -->
- <string name="power_discharge_by">Will last until about <xliff:g id="time">%1$s</xliff:g> (<xliff:g id="level">%2$s</xliff:g>)</string>
+ <string name="power_discharge_by">Should last until about <xliff:g id="time">%1$s</xliff:g> (<xliff:g id="level">%2$s</xliff:g>)</string>
<!-- [CHAR_LIMIT=100] Label for estimated time that phone will run out of battery -->
- <string name="power_discharge_by_only">Will last until about <xliff:g id="time">%1$s</xliff:g></string>
+ <string name="power_discharge_by_only">Should last until about <xliff:g id="time">%1$s</xliff:g></string>
<!-- [CHAR_LIMIT=60] label for estimated remaining duration of battery when under a certain amount -->
<string name="power_remaining_less_than_duration_only">Less than <xliff:g id="threshold">%1$s</xliff:g> remaining</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java b/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
index b04bd5a5edee..a0b27fd6c206 100644
--- a/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
+++ b/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
@@ -46,6 +46,8 @@ public final class CategoryKey {
"com.android.settings.category.ia.development";
public static final String CATEGORY_NOTIFICATIONS =
"com.android.settings.category.ia.notifications";
+ public static final String CATEGORY_DO_NOT_DISTURB =
+ "com.android.settings.category.ia.dnd";
public static final Map<String, String> KEY_COMPAT_MAP;
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
index 5758467766a8..c11687b35856 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
@@ -40,7 +40,7 @@ public class PowerUtilTest {
public static final long TEN_MINUTES_MILLIS = Duration.ofMinutes(10).toMillis();
public static final long THREE_DAYS_MILLIS = Duration.ofDays(3).toMillis();
public static final long THIRTY_HOURS_MILLIS = Duration.ofHours(30).toMillis();
- public static final String NORMAL_CASE_EXPECTED_PREFIX = "Will last until about";
+ public static final String NORMAL_CASE_EXPECTED_PREFIX = "Should last until about";
public static final String ENHANCED_SUFFIX = " based on your usage";
// matches a time (ex: '1:15 PM', '2 AM')
public static final String TIME_OF_DAY_REGEX = " (\\d)+:?(\\d)* (AM)|(PM)";
diff --git a/packages/SettingsProvider/res/values-af/defaults.xml b/packages/SettingsProvider/res/values-af/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-af/defaults.xml
+++ b/packages/SettingsProvider/res/values-af/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-am/defaults.xml b/packages/SettingsProvider/res/values-am/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-am/defaults.xml
+++ b/packages/SettingsProvider/res/values-am/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ar/defaults.xml b/packages/SettingsProvider/res/values-ar/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-ar/defaults.xml
+++ b/packages/SettingsProvider/res/values-ar/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-az/defaults.xml b/packages/SettingsProvider/res/values-az/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-az/defaults.xml
+++ b/packages/SettingsProvider/res/values-az/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-b+sr+Latn/defaults.xml b/packages/SettingsProvider/res/values-b+sr+Latn/defaults.xml
index 4a468adb67e9..489a706fde1b 100644
--- a/packages/SettingsProvider/res/values-b+sr+Latn/defaults.xml
+++ b/packages/SettingsProvider/res/values-b+sr+Latn/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-be/defaults.xml b/packages/SettingsProvider/res/values-be/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-be/defaults.xml
+++ b/packages/SettingsProvider/res/values-be/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-bg/defaults.xml b/packages/SettingsProvider/res/values-bg/defaults.xml
index eb9acd0bb6d2..c2e675b721d0 100644
--- a/packages/SettingsProvider/res/values-bg/defaults.xml
+++ b/packages/SettingsProvider/res/values-bg/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-bn/defaults.xml b/packages/SettingsProvider/res/values-bn/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-bn/defaults.xml
+++ b/packages/SettingsProvider/res/values-bn/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-bs/defaults.xml b/packages/SettingsProvider/res/values-bs/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-bs/defaults.xml
+++ b/packages/SettingsProvider/res/values-bs/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ca/defaults.xml b/packages/SettingsProvider/res/values-ca/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-ca/defaults.xml
+++ b/packages/SettingsProvider/res/values-ca/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-cs/defaults.xml b/packages/SettingsProvider/res/values-cs/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-cs/defaults.xml
+++ b/packages/SettingsProvider/res/values-cs/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-da/defaults.xml b/packages/SettingsProvider/res/values-da/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-da/defaults.xml
+++ b/packages/SettingsProvider/res/values-da/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-de/defaults.xml b/packages/SettingsProvider/res/values-de/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-de/defaults.xml
+++ b/packages/SettingsProvider/res/values-de/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-el/defaults.xml b/packages/SettingsProvider/res/values-el/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-el/defaults.xml
+++ b/packages/SettingsProvider/res/values-el/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-en-rAU/defaults.xml b/packages/SettingsProvider/res/values-en-rAU/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-en-rAU/defaults.xml
+++ b/packages/SettingsProvider/res/values-en-rAU/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-en-rCA/defaults.xml b/packages/SettingsProvider/res/values-en-rCA/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-en-rCA/defaults.xml
+++ b/packages/SettingsProvider/res/values-en-rCA/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-en-rGB/defaults.xml b/packages/SettingsProvider/res/values-en-rGB/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-en-rGB/defaults.xml
+++ b/packages/SettingsProvider/res/values-en-rGB/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-en-rIN/defaults.xml b/packages/SettingsProvider/res/values-en-rIN/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-en-rIN/defaults.xml
+++ b/packages/SettingsProvider/res/values-en-rIN/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-en-rXC/defaults.xml b/packages/SettingsProvider/res/values-en-rXC/defaults.xml
index b111b82023fa..1f62695a429a 100644
--- a/packages/SettingsProvider/res/values-en-rXC/defaults.xml
+++ b/packages/SettingsProvider/res/values-en-rXC/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-es-rUS/defaults.xml b/packages/SettingsProvider/res/values-es-rUS/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-es-rUS/defaults.xml
+++ b/packages/SettingsProvider/res/values-es-rUS/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-es/defaults.xml b/packages/SettingsProvider/res/values-es/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-es/defaults.xml
+++ b/packages/SettingsProvider/res/values-es/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-et/defaults.xml b/packages/SettingsProvider/res/values-et/defaults.xml
index ec62e9187191..db8b22ade6e1 100644
--- a/packages/SettingsProvider/res/values-et/defaults.xml
+++ b/packages/SettingsProvider/res/values-et/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-eu/defaults.xml b/packages/SettingsProvider/res/values-eu/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-eu/defaults.xml
+++ b/packages/SettingsProvider/res/values-eu/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-fa/defaults.xml b/packages/SettingsProvider/res/values-fa/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-fa/defaults.xml
+++ b/packages/SettingsProvider/res/values-fa/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-fi/defaults.xml b/packages/SettingsProvider/res/values-fi/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-fi/defaults.xml
+++ b/packages/SettingsProvider/res/values-fi/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-fr-rCA/defaults.xml b/packages/SettingsProvider/res/values-fr-rCA/defaults.xml
index 86329e486a14..09430d8d401e 100644
--- a/packages/SettingsProvider/res/values-fr-rCA/defaults.xml
+++ b/packages/SettingsProvider/res/values-fr-rCA/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-fr/defaults.xml b/packages/SettingsProvider/res/values-fr/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-fr/defaults.xml
+++ b/packages/SettingsProvider/res/values-fr/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-gl/defaults.xml b/packages/SettingsProvider/res/values-gl/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-gl/defaults.xml
+++ b/packages/SettingsProvider/res/values-gl/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-gu/defaults.xml b/packages/SettingsProvider/res/values-gu/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-gu/defaults.xml
+++ b/packages/SettingsProvider/res/values-gu/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-hi/defaults.xml b/packages/SettingsProvider/res/values-hi/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-hi/defaults.xml
+++ b/packages/SettingsProvider/res/values-hi/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-hr/defaults.xml b/packages/SettingsProvider/res/values-hr/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-hr/defaults.xml
+++ b/packages/SettingsProvider/res/values-hr/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-hu/defaults.xml b/packages/SettingsProvider/res/values-hu/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-hu/defaults.xml
+++ b/packages/SettingsProvider/res/values-hu/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-hy/defaults.xml b/packages/SettingsProvider/res/values-hy/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-hy/defaults.xml
+++ b/packages/SettingsProvider/res/values-hy/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-in/defaults.xml b/packages/SettingsProvider/res/values-in/defaults.xml
index ba521317533c..221c37f92a1b 100644
--- a/packages/SettingsProvider/res/values-in/defaults.xml
+++ b/packages/SettingsProvider/res/values-in/defaults.xml
@@ -26,4 +26,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-is/defaults.xml b/packages/SettingsProvider/res/values-is/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-is/defaults.xml
+++ b/packages/SettingsProvider/res/values-is/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-it/defaults.xml b/packages/SettingsProvider/res/values-it/defaults.xml
index 4a468adb67e9..489a706fde1b 100644
--- a/packages/SettingsProvider/res/values-it/defaults.xml
+++ b/packages/SettingsProvider/res/values-it/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-iw/defaults.xml b/packages/SettingsProvider/res/values-iw/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-iw/defaults.xml
+++ b/packages/SettingsProvider/res/values-iw/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ja/defaults.xml b/packages/SettingsProvider/res/values-ja/defaults.xml
index 4a468adb67e9..489a706fde1b 100644
--- a/packages/SettingsProvider/res/values-ja/defaults.xml
+++ b/packages/SettingsProvider/res/values-ja/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ka/defaults.xml b/packages/SettingsProvider/res/values-ka/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-ka/defaults.xml
+++ b/packages/SettingsProvider/res/values-ka/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-kk/defaults.xml b/packages/SettingsProvider/res/values-kk/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-kk/defaults.xml
+++ b/packages/SettingsProvider/res/values-kk/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-km/defaults.xml b/packages/SettingsProvider/res/values-km/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-km/defaults.xml
+++ b/packages/SettingsProvider/res/values-km/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-kn/defaults.xml b/packages/SettingsProvider/res/values-kn/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-kn/defaults.xml
+++ b/packages/SettingsProvider/res/values-kn/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ko/defaults.xml b/packages/SettingsProvider/res/values-ko/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-ko/defaults.xml
+++ b/packages/SettingsProvider/res/values-ko/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ky/defaults.xml b/packages/SettingsProvider/res/values-ky/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-ky/defaults.xml
+++ b/packages/SettingsProvider/res/values-ky/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-lo/defaults.xml b/packages/SettingsProvider/res/values-lo/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-lo/defaults.xml
+++ b/packages/SettingsProvider/res/values-lo/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-lt/defaults.xml b/packages/SettingsProvider/res/values-lt/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-lt/defaults.xml
+++ b/packages/SettingsProvider/res/values-lt/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-lv/defaults.xml b/packages/SettingsProvider/res/values-lv/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-lv/defaults.xml
+++ b/packages/SettingsProvider/res/values-lv/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-mk/defaults.xml b/packages/SettingsProvider/res/values-mk/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-mk/defaults.xml
+++ b/packages/SettingsProvider/res/values-mk/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ml/defaults.xml b/packages/SettingsProvider/res/values-ml/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-ml/defaults.xml
+++ b/packages/SettingsProvider/res/values-ml/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-mn/defaults.xml b/packages/SettingsProvider/res/values-mn/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-mn/defaults.xml
+++ b/packages/SettingsProvider/res/values-mn/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-mr/defaults.xml b/packages/SettingsProvider/res/values-mr/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-mr/defaults.xml
+++ b/packages/SettingsProvider/res/values-mr/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ms/defaults.xml b/packages/SettingsProvider/res/values-ms/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-ms/defaults.xml
+++ b/packages/SettingsProvider/res/values-ms/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-my/defaults.xml b/packages/SettingsProvider/res/values-my/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-my/defaults.xml
+++ b/packages/SettingsProvider/res/values-my/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-nb/defaults.xml b/packages/SettingsProvider/res/values-nb/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-nb/defaults.xml
+++ b/packages/SettingsProvider/res/values-nb/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ne/defaults.xml b/packages/SettingsProvider/res/values-ne/defaults.xml
index ba521317533c..221c37f92a1b 100644
--- a/packages/SettingsProvider/res/values-ne/defaults.xml
+++ b/packages/SettingsProvider/res/values-ne/defaults.xml
@@ -26,4 +26,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-nl/defaults.xml b/packages/SettingsProvider/res/values-nl/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-nl/defaults.xml
+++ b/packages/SettingsProvider/res/values-nl/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-pa/defaults.xml b/packages/SettingsProvider/res/values-pa/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-pa/defaults.xml
+++ b/packages/SettingsProvider/res/values-pa/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-pl/defaults.xml b/packages/SettingsProvider/res/values-pl/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-pl/defaults.xml
+++ b/packages/SettingsProvider/res/values-pl/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-pt-rBR/defaults.xml b/packages/SettingsProvider/res/values-pt-rBR/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-pt-rBR/defaults.xml
+++ b/packages/SettingsProvider/res/values-pt-rBR/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-pt-rPT/defaults.xml b/packages/SettingsProvider/res/values-pt-rPT/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-pt-rPT/defaults.xml
+++ b/packages/SettingsProvider/res/values-pt-rPT/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-pt/defaults.xml b/packages/SettingsProvider/res/values-pt/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-pt/defaults.xml
+++ b/packages/SettingsProvider/res/values-pt/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ro/defaults.xml b/packages/SettingsProvider/res/values-ro/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-ro/defaults.xml
+++ b/packages/SettingsProvider/res/values-ro/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ru/defaults.xml b/packages/SettingsProvider/res/values-ru/defaults.xml
index 4a468adb67e9..489a706fde1b 100644
--- a/packages/SettingsProvider/res/values-ru/defaults.xml
+++ b/packages/SettingsProvider/res/values-ru/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-si/defaults.xml b/packages/SettingsProvider/res/values-si/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-si/defaults.xml
+++ b/packages/SettingsProvider/res/values-si/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-sk/defaults.xml b/packages/SettingsProvider/res/values-sk/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-sk/defaults.xml
+++ b/packages/SettingsProvider/res/values-sk/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-sl/defaults.xml b/packages/SettingsProvider/res/values-sl/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-sl/defaults.xml
+++ b/packages/SettingsProvider/res/values-sl/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-sq/defaults.xml b/packages/SettingsProvider/res/values-sq/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-sq/defaults.xml
+++ b/packages/SettingsProvider/res/values-sq/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-sr/defaults.xml b/packages/SettingsProvider/res/values-sr/defaults.xml
index 4a468adb67e9..489a706fde1b 100644
--- a/packages/SettingsProvider/res/values-sr/defaults.xml
+++ b/packages/SettingsProvider/res/values-sr/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-sv/defaults.xml b/packages/SettingsProvider/res/values-sv/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-sv/defaults.xml
+++ b/packages/SettingsProvider/res/values-sv/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-sw/defaults.xml b/packages/SettingsProvider/res/values-sw/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-sw/defaults.xml
+++ b/packages/SettingsProvider/res/values-sw/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ta/defaults.xml b/packages/SettingsProvider/res/values-ta/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-ta/defaults.xml
+++ b/packages/SettingsProvider/res/values-ta/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-th/defaults.xml b/packages/SettingsProvider/res/values-th/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-th/defaults.xml
+++ b/packages/SettingsProvider/res/values-th/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-tl/defaults.xml b/packages/SettingsProvider/res/values-tl/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-tl/defaults.xml
+++ b/packages/SettingsProvider/res/values-tl/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-tr/defaults.xml b/packages/SettingsProvider/res/values-tr/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-tr/defaults.xml
+++ b/packages/SettingsProvider/res/values-tr/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-uk/defaults.xml b/packages/SettingsProvider/res/values-uk/defaults.xml
index c85d61aa5c9f..4dadc2b2a6e6 100644
--- a/packages/SettingsProvider/res/values-uk/defaults.xml
+++ b/packages/SettingsProvider/res/values-uk/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-ur/defaults.xml b/packages/SettingsProvider/res/values-ur/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-ur/defaults.xml
+++ b/packages/SettingsProvider/res/values-ur/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-uz/defaults.xml b/packages/SettingsProvider/res/values-uz/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-uz/defaults.xml
+++ b/packages/SettingsProvider/res/values-uz/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-vi/defaults.xml b/packages/SettingsProvider/res/values-vi/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-vi/defaults.xml
+++ b/packages/SettingsProvider/res/values-vi/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-zh-rCN/defaults.xml b/packages/SettingsProvider/res/values-zh-rCN/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-zh-rCN/defaults.xml
+++ b/packages/SettingsProvider/res/values-zh-rCN/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-zh-rHK/defaults.xml b/packages/SettingsProvider/res/values-zh-rHK/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-zh-rHK/defaults.xml
+++ b/packages/SettingsProvider/res/values-zh-rHK/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-zh-rTW/defaults.xml b/packages/SettingsProvider/res/values-zh-rTW/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-zh-rTW/defaults.xml
+++ b/packages/SettingsProvider/res/values-zh-rTW/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/res/values-zu/defaults.xml b/packages/SettingsProvider/res/values-zu/defaults.xml
index ea05c92db0a0..1434b59ec2ab 100644
--- a/packages/SettingsProvider/res/values-zu/defaults.xml
+++ b/packages/SettingsProvider/res/values-zu/defaults.xml
@@ -24,4 +24,5 @@
<string name="def_nfc_payment_component" msgid="5861297439873026958"></string>
<string name="def_backup_manager_constants" msgid="75273734665044867"></string>
<string name="def_backup_local_transport_parameters" msgid="303005414813191641"></string>
+ <string name="def_backup_agent_timeout_parameters" msgid="8293164064853654150"></string>
</resources>
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
index 9a438398127d..c286881d7e89 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
@@ -914,8 +914,8 @@ class SettingsProtoDumpUtil {
Settings.Global.WIFI_ON_WHEN_PROXY_DISCONNECTED,
GlobalSettingsProto.WIFI_ON_WHEN_PROXY_DISCONNECTED);
dumpSetting(s, p,
- Settings.Global.TIME_ONLY_MODE_ENABLED,
- GlobalSettingsProto.TIME_ONLY_MODE_ENABLED);
+ Settings.Global.TIME_ONLY_MODE_CONSTANTS,
+ GlobalSettingsProto.TIME_ONLY_MODE_CONSTANTS);
dumpSetting(s, p,
Settings.Global.NETWORK_WATCHLIST_ENABLED,
GlobalSettingsProto.NETWORK_WATCHLIST_ENABLED);
diff --git a/packages/SystemUI/res/layout/status_bar_no_notifications.xml b/packages/SystemUI/res/layout/status_bar_no_notifications.xml
index 0a25b697c84e..1e00e5203255 100644
--- a/packages/SystemUI/res/layout/status_bar_no_notifications.xml
+++ b/packages/SystemUI/res/layout/status_bar_no_notifications.xml
@@ -24,7 +24,8 @@
<TextView
android:id="@+id/no_notifications"
android:layout_width="match_parent"
- android:layout_height="64dp"
+ android:layout_height="wrap_content"
+ android:minHeight="64dp"
android:paddingTop="28dp"
android:gravity="top|center_horizontal"
android:textColor="?attr/wallpaperTextColor"
diff --git a/packages/SystemUI/src/com/android/systemui/DejankUtils.java b/packages/SystemUI/src/com/android/systemui/DejankUtils.java
index eba1d0f9f9c6..4ee3bd37ce3c 100644
--- a/packages/SystemUI/src/com/android/systemui/DejankUtils.java
+++ b/packages/SystemUI/src/com/android/systemui/DejankUtils.java
@@ -16,6 +16,7 @@
package com.android.systemui;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.util.Assert;
import android.os.Handler;
@@ -30,9 +31,13 @@ public class DejankUtils {
private static final Choreographer sChoreographer = Choreographer.getInstance();
private static final Handler sHandler = new Handler();
-
private static final ArrayList<Runnable> sPendingRunnables = new ArrayList<>();
+ /**
+ * Only for testing.
+ */
+ private static boolean sImmediate;
+
private static final Runnable sAnimationCallbackRunnable = new Runnable() {
@Override
public void run() {
@@ -51,6 +56,10 @@ public class DejankUtils {
* <p>Needs to be called from the main thread.
*/
public static void postAfterTraversal(Runnable r) {
+ if (sImmediate) {
+ r.run();
+ return;
+ }
Assert.isMainThread();
sPendingRunnables.add(r);
postAnimationCallback();
@@ -71,4 +80,9 @@ public class DejankUtils {
sChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION, sAnimationCallbackRunnable,
null);
}
+
+ @VisibleForTesting
+ public static void setImmediate(boolean immediate) {
+ sImmediate = immediate;
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
index d1834e921d20..91edfda06261 100644
--- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
@@ -27,6 +27,7 @@ import com.android.internal.logging.MetricsLogger;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.Dependency.DependencyProvider;
+import com.android.systemui.classifier.FalsingManager;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.qs.QSTileHost;
import com.android.systemui.statusbar.KeyguardIndicationController;
@@ -95,7 +96,7 @@ public class SystemUIFactory {
LockPatternUtils lockPatternUtils,
ViewGroup container, DismissCallbackRegistry dismissCallbackRegistry) {
return new KeyguardBouncer(context, callback, lockPatternUtils, container,
- dismissCallbackRegistry);
+ dismissCallbackRegistry, FalsingManager.getInstance(context));
}
public ScrimController createScrimController(LightBarController lightBarController,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java
index 47fa1d2167f0..cc584e7e79fe 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManager.java
@@ -38,6 +38,7 @@ import android.widget.TextView;
import android.widget.Toast;
import com.android.internal.statusbar.IStatusBarService;
+import com.android.internal.widget.LockPatternUtils;
import com.android.systemui.Dependency;
import com.android.systemui.Dumpable;
import com.android.systemui.OverviewProxyService;
@@ -67,6 +68,7 @@ public class NotificationLockscreenUserManager implements Dumpable {
Dependency.get(DeviceProvisionedController.class);
private final UserManager mUserManager;
private final IStatusBarService mBarService;
+ private final LockPatternUtils mLockPatternUtils;
private boolean mShowLockscreenNotifications;
private boolean mAllowLockscreenRemoteInput;
@@ -155,6 +157,7 @@ public class NotificationLockscreenUserManager implements Dumpable {
mCurrentUserId = ActivityManager.getCurrentUser();
mBarService = IStatusBarService.Stub.asInterface(
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
+ mLockPatternUtils = new LockPatternUtils(mContext);
}
public void setUpWithPresenter(NotificationPresenter presenter,
@@ -259,12 +262,24 @@ public class NotificationLockscreenUserManager implements Dumpable {
}
/**
+ * Returns true if notifications are temporarily disabled for this user for security reasons,
+ * regardless of the normal settings for that user.
+ */
+ private boolean shouldTemporarilyHideNotifications(int userId) {
+ if (userId == UserHandle.USER_ALL) {
+ userId = mCurrentUserId;
+ }
+ return mLockPatternUtils.isUserInLockdown(userId);
+ }
+
+ /**
* Returns true if we're on a secure lockscreen and the user wants to hide notification data.
* If so, notifications should be hidden.
*/
public boolean shouldHideNotifications(int userId) {
return isLockscreenPublicMode(userId) && !userAllowsNotificationsInPublic(userId)
- || (userId != mCurrentUserId && shouldHideNotifications(mCurrentUserId));
+ || (userId != mCurrentUserId && shouldHideNotifications(mCurrentUserId))
+ || shouldTemporarilyHideNotifications(userId);
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java
index 475a6091323e..1807465004c6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java
@@ -107,11 +107,6 @@ public class ScrimView extends View implements ConfigurationController.Configura
}
@Override
- public void setBackground(Drawable background) {
- Log.wtfStack(TAG, "ScrimView should never have a background.");
- }
-
- @Override
protected void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
int densityDpi = newConfig.densityDpi;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
index 1d9cdf73b9c2..3bbfe3c1062c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ActivityLaunchAnimator.java
@@ -77,6 +77,9 @@ public class ActivityLaunchAnimator {
public RemoteAnimationAdapter getLaunchAnimation(
ExpandableNotificationRow sourceNotification) {
+ if (mStatusBar.getBarState() != StatusBarState.SHADE) {
+ return null;
+ }
AnimationRunner animationRunner = new AnimationRunner(sourceNotification);
return new RemoteAnimationAdapter(animationRunner, ANIMATION_DURATION,
0 /* statusBarTransitionDelay */);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
index 010b1651a0d4..2a1813fecd12 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
@@ -16,10 +16,14 @@
package com.android.systemui.statusbar.phone;
+import static com.android.keyguard.KeyguardHostView.OnDismissAction;
+import static com.android.keyguard.KeyguardSecurityModel.SecurityMode;
+
import android.content.Context;
import android.os.Handler;
import android.os.UserHandle;
import android.os.UserManager;
+import android.util.Log;
import android.util.MathUtils;
import android.util.Slog;
import android.util.StatsLog;
@@ -29,7 +33,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.WindowInsets;
-import android.view.accessibility.AccessibilityEvent;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardHostView;
@@ -42,9 +45,6 @@ import com.android.systemui.DejankUtils;
import com.android.systemui.classifier.FalsingManager;
import com.android.systemui.keyguard.DismissCallbackRegistry;
-import static com.android.keyguard.KeyguardHostView.OnDismissAction;
-import static com.android.keyguard.KeyguardSecurityModel.SecurityMode;
-
/**
* A class which manages the bouncer on the lockscreen.
*/
@@ -76,13 +76,13 @@ public class KeyguardBouncer {
public KeyguardBouncer(Context context, ViewMediatorCallback callback,
LockPatternUtils lockPatternUtils, ViewGroup container,
- DismissCallbackRegistry dismissCallbackRegistry) {
+ DismissCallbackRegistry dismissCallbackRegistry, FalsingManager falsingManager) {
mContext = context;
mCallback = callback;
mLockPatternUtils = lockPatternUtils;
mContainer = container;
KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mUpdateMonitorCallback);
- mFalsingManager = FalsingManager.getInstance(mContext);
+ mFalsingManager = falsingManager;
mDismissCallbackRegistry = dismissCallbackRegistry;
mHandler = new Handler();
}
@@ -91,7 +91,14 @@ public class KeyguardBouncer {
show(resetSecuritySelection, true /* notifyFalsing */);
}
- public void show(boolean resetSecuritySelection, boolean notifyFalsing) {
+ /**
+ * Shows the bouncer.
+ *
+ * @param resetSecuritySelection Cleans keyguard view
+ * @param animated true when the bouncer show show animated, false when the user will be
+ * dragging it and animation should be deferred.
+ */
+ public void show(boolean resetSecuritySelection, boolean animated) {
final int keyguardUserId = KeyguardUpdateMonitor.getCurrentUser();
if (keyguardUserId == UserHandle.USER_SYSTEM && UserManager.isSplitSystemUser()) {
// In split system user mode, we never unlock system user.
@@ -104,9 +111,11 @@ public class KeyguardBouncer {
// are valid.
// Later, at the end of the animation, when the bouncer is at the top of the screen,
// onFullyShown() will be called and FalsingManager will stop recording touches.
- if (notifyFalsing) {
+ if (animated) {
mFalsingManager.onBouncerShown();
+ setExpansion(0);
}
+
if (resetSecuritySelection) {
// showPrimarySecurityScreen() updates the current security method. This is needed in
// case we are already showing and the current security method changed.
@@ -157,7 +166,9 @@ public class KeyguardBouncer {
public void onFullyHidden() {
if (!mShowingSoon) {
cancelShowRunnable();
- mRoot.setVisibility(View.INVISIBLE);
+ if (mRoot != null) {
+ mRoot.setVisibility(View.INVISIBLE);
+ }
mFalsingManager.onBouncerHidden();
}
}
@@ -202,11 +213,19 @@ public class KeyguardBouncer {
* and {@link KeyguardSecurityView#PROMPT_REASON_RESTART}
*/
public void showPromptReason(int reason) {
- mKeyguardView.showPromptReason(reason);
+ if (mKeyguardView != null) {
+ mKeyguardView.showPromptReason(reason);
+ } else {
+ Log.w(TAG, "Trying to show prompt reason on empty bouncer");
+ }
}
public void showMessage(String message, int color) {
- mKeyguardView.showMessage(message, color);
+ if (mKeyguardView != null) {
+ mKeyguardView.showMessage(message, color);
+ } else {
+ Log.w(TAG, "Trying to show message on empty bouncer");
+ }
}
private void cancelShowRunnable() {
@@ -290,7 +309,8 @@ public class KeyguardBouncer {
*/
public void setExpansion(float fraction) {
if (mKeyguardView != null) {
- mKeyguardView.setAlpha(MathUtils.map(ALPHA_EXPANSION_THRESHOLD, 1, 1, 0, fraction));
+ float alpha = MathUtils.map(ALPHA_EXPANSION_THRESHOLD, 1, 1, 0, fraction);
+ mKeyguardView.setAlpha(MathUtils.constrain(alpha, 0f, 1f));
mKeyguardView.setTranslationY(fraction * mKeyguardView.getHeight());
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
index 7f1e9d0e1972..04cb620be9d3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -947,6 +947,17 @@ public abstract class PanelView extends FrameLayout {
return mClosing || mLaunchingNotification;
}
+ /**
+ * Bouncer might need a scrim when you double tap on notifications or edit QS.
+ * On other cases, when you drag up the bouncer with the finger or just fling,
+ * the scrim should be hidden to avoid occluding the clock.
+ *
+ * @return true when we need a scrim to show content on top of the notification panel.
+ */
+ public boolean needsScrimming() {
+ return !isTracking() && !isCollapsing() && !isFullyCollapsed();
+ }
+
public boolean isTracking() {
return mTracking;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index f8b4e0768ceb..ae55ae8ec849 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -239,6 +239,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
mCurrentBehindAlpha = state.getBehindAlpha(mNotificationDensity);
applyExpansionToAlpha();
+ // Scrim might acquire focus when user is navigating with a D-pad or a keyboard.
+ // We need to disable focus otherwise AOD would end up with a gray overlay.
+ mScrimInFront.setFocusable(!state.isLowPowerState());
+ mScrimBehind.setFocusable(!state.isLowPowerState());
+
// Cancel blanking transitions that were pending before we requested a new state
if (mPendingFrameCallback != null) {
Choreographer.getInstance().removeFrameCallback(mPendingFrameCallback);
@@ -257,7 +262,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
// the animation plays properly until the last frame.
// It's important to avoid holding the wakelock unless necessary because
// WakeLock#aqcuire will trigger an IPC and will cause jank.
- if (mState == ScrimState.AOD) {
+ if (mState.isLowPowerState()) {
holdWakeLock();
}
@@ -449,7 +454,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
if (mNeedsDrawableColorUpdate) {
mNeedsDrawableColorUpdate = false;
final GradientColors currentScrimColors;
- if (mState == ScrimState.KEYGUARD || mState == ScrimState.BOUNCER_OCCLUDED
+ if (mState == ScrimState.KEYGUARD || mState == ScrimState.BOUNCER_SCRIMMED
|| mState == ScrimState.BOUNCER) {
// Always animate color changes if we're seeing the keyguard
mScrimInFront.setColors(mLockColors, true /* animated */);
@@ -528,7 +533,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
scrim.setClickable(false);
} else {
// Eat touch events (unless dozing).
- scrim.setClickable(!(mState == ScrimState.AOD));
+ scrim.setClickable(!mState.isLowPowerState());
}
updateScrim(scrim, alpha);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
index 58100efbcf81..55e8714f796f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimState.java
@@ -79,7 +79,7 @@ public enum ScrimState {
/**
* Showing password challenge on top of a FLAG_SHOW_WHEN_LOCKED activity.
*/
- BOUNCER_OCCLUDED(2) {
+ BOUNCER_SCRIMMED(2) {
@Override
public void prepare(ScrimState previousState) {
mCurrentBehindAlpha = 0;
@@ -116,6 +116,11 @@ public enum ScrimState {
// to set our state.
mAnimateChange = mCanControlScreenOff;
}
+
+ @Override
+ public boolean isLowPowerState() {
+ return true;
+ }
},
/**
@@ -250,4 +255,8 @@ public enum ScrimState {
public void setWallpaperSupportsAmbientMode(boolean wallpaperSupportsAmbientMode) {
mWallpaperSupportsAmbientMode = wallpaperSupportsAmbientMode;
}
+
+ public boolean isLowPowerState() {
+ return false;
+ }
} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 2e45b120a75f..5bc45cde6217 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -3907,12 +3907,12 @@ public class StatusBar extends SystemUI implements DemoMode,
private void showBouncerIfKeyguard() {
if (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) {
- showBouncer();
+ showBouncer(true /* animated */);
}
}
- protected void showBouncer() {
- mStatusBarKeyguardViewManager.dismiss();
+ protected void showBouncer(boolean animated) {
+ mStatusBarKeyguardViewManager.showBouncer(animated);
}
private void instantExpandNotificationsPanel() {
@@ -4026,7 +4026,7 @@ public class StatusBar extends SystemUI implements DemoMode,
public void onTrackingStopped(boolean expand) {
if (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) {
if (!expand && !mUnlockMethodCache.canSkipBouncer()) {
- showBouncerIfKeyguard();
+ showBouncer(false /* animated */);
}
}
}
@@ -4165,7 +4165,7 @@ public class StatusBar extends SystemUI implements DemoMode,
@Override
public void onLockedRemoteInput(ExpandableNotificationRow row, View clicked) {
mLeaveOpenOnKeyguardHide = true;
- showBouncer();
+ showBouncer(true /* animated */);
mPendingRemoteInputView = clicked;
}
@@ -4631,9 +4631,10 @@ public class StatusBar extends SystemUI implements DemoMode,
!= FingerprintUnlockController.MODE_UNLOCK);
if (mBouncerShowing) {
- final boolean qsExpanded = mQSPanel != null && mQSPanel.isExpanded();
- mScrimController.transitionTo(mIsOccluded || qsExpanded ?
- ScrimState.BOUNCER_OCCLUDED : ScrimState.BOUNCER);
+ // Bouncer needs the front scrim when it's on top of an activity,
+ // tapping on a notification or editing QS.
+ mScrimController.transitionTo(mIsOccluded || mNotificationPanel.needsScrimming() ?
+ ScrimState.BOUNCER_SCRIMMED : ScrimState.BOUNCER);
} else if (mLaunchCameraOnScreenTurningOn || isInLaunchTransition()) {
mScrimController.transitionTo(ScrimState.UNLOCKED, mUnlockScrimCallback);
} else if (mBrightnessMirrorVisible) {
@@ -5043,8 +5044,11 @@ public class StatusBar extends SystemUI implements DemoMode,
RemoteAnimationAdapter adapter = mActivityLaunchAnimator.getLaunchAnimation(
row);
try {
- ActivityManager.getService().registerRemoteAnimationForNextActivityStart(
- intent.getCreatorPackage(), adapter);
+ if (adapter != null) {
+ ActivityManager.getService()
+ .registerRemoteAnimationForNextActivityStart(
+ intent.getCreatorPackage(), adapter);
+ }
launchResult = intent.sendAndReturnResult(mContext, 0, fillInIntent, null,
null, null, getActivityOptions(adapter));
mActivityLaunchAnimator.setLaunchResult(launchResult);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
index 8d536d8ca45a..b26b7c950695 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -198,9 +198,9 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
cancelPendingWakeupAction();
}
- private void showBouncer() {
+ public void showBouncer(boolean animated) {
if (mShowing) {
- mBouncer.show(false /* resetSecuritySelection */);
+ mBouncer.show(false /* resetSecuritySelection */, animated);
}
updateStates();
}
@@ -485,10 +485,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
mStatusBar.executeRunnableDismissingKeyguard(null, null, true, false, true);
}
- public void dismiss() {
- showBouncer();
- }
-
/**
* WARNING: This method might cause Binder calls.
*/
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java
index 40512205a8f8..f3a8417ff547 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java
@@ -16,39 +16,268 @@
package com.android.systemui.statusbar.phone;
-import static org.mockito.Mockito.mock;
+import static com.google.common.truth.Truth.assertThat;
-import android.content.Context;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyFloat;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.calls;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.when;
+
+import android.graphics.Color;
import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
import android.test.UiThreadTest;
-import android.view.ContextThemeWrapper;
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
import android.widget.FrameLayout;
import com.android.internal.widget.LockPatternUtils;
+import com.android.keyguard.KeyguardHostView;
+import com.android.keyguard.KeyguardSecurityModel;
import com.android.keyguard.ViewMediatorCallback;
-import com.android.systemui.R;
+import com.android.systemui.DejankUtils;
import com.android.systemui.SysuiTestCase;
+import com.android.systemui.classifier.FalsingManager;
import com.android.systemui.keyguard.DismissCallbackRegistry;
+import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
@SmallTest
-@RunWith(AndroidJUnit4.class)
+@RunWith(AndroidTestingRunner.class)
+@TestableLooper.RunWithLooper(setAsMainLooper = true)
public class KeyguardBouncerTest extends SysuiTestCase {
- @UiThreadTest
- @Test
- public void inflateDetached() {
+ @Mock
+ private FalsingManager mFalsingManager;
+ @Mock
+ private ViewMediatorCallback mViewMediatorCallback;
+ @Mock
+ private LockPatternUtils mLockPatternUtils;
+ @Mock
+ private DismissCallbackRegistry mDismissCallbackRegistry;
+ @Mock
+ private KeyguardHostView mKeyguardHostView;
+ @Mock
+ private ViewTreeObserver mViewTreeObserver;
+
+ private KeyguardBouncer mBouncer;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ DejankUtils.setImmediate(true);
final ViewGroup container = new FrameLayout(getContext());
- final KeyguardBouncer bouncer = new KeyguardBouncer(getContext(),
- mock(ViewMediatorCallback.class), mock(LockPatternUtils.class), container, mock(
- DismissCallbackRegistry.class));
+ when(mKeyguardHostView.getViewTreeObserver()).thenReturn(mViewTreeObserver);
+ when(mKeyguardHostView.getHeight()).thenReturn(500);
+ mBouncer = new KeyguardBouncer(getContext(), mViewMediatorCallback,
+ mLockPatternUtils, container, mDismissCallbackRegistry, mFalsingManager) {
+ @Override
+ protected void inflateView() {
+ super.inflateView();
+ mKeyguardView = mKeyguardHostView;
+ }
+ };
+ }
+
+ @Test
+ public void testInflateView_doesntCrash() {
+ mBouncer.inflateView();
+ }
+
+ @Test
+ public void testShow_notifiesFalsingManager() {
+ mBouncer.show(true);
+ verify(mFalsingManager).onBouncerShown();
+
+ mBouncer.show(true, false);
+ verifyNoMoreInteractions(mFalsingManager);
+ }
+
+ /**
+ * Regression test: Invisible bouncer when occluded.
+ */
+ @Test
+ public void testShow_bouncerIsVisible() {
+ // Expand notification panel as if we were in the keyguard.
+ mBouncer.ensureView();
+ mBouncer.setExpansion(1);
+
+ reset(mKeyguardHostView);
+ when(mKeyguardHostView.getHeight()).thenReturn(500);
+
+ mBouncer.show(true);
+ verify(mKeyguardHostView).setAlpha(eq(1f));
+ verify(mKeyguardHostView).setTranslationY(eq(0f));
+ }
+
+ @Test
+ public void testShow_notifiesVisibility() {
+ mBouncer.show(true);
+ verify(mViewMediatorCallback).onBouncerVisiblityChanged(eq(true));
- // Detached bouncer should still be able to be inflated
- bouncer.inflateView();
+ // Not called again when visible
+ reset(mViewMediatorCallback);
+ mBouncer.show(true);
+ verifyNoMoreInteractions(mViewMediatorCallback);
+ }
+
+ @Test
+ public void testShow_triesToDismissKeyguard() {
+ mBouncer.show(true);
+ verify(mKeyguardHostView).dismiss(anyInt());
+ }
+
+ @Test
+ public void testShow_resetsSecuritySelection() {
+ mBouncer.show(false);
+ verify(mKeyguardHostView, never()).showPrimarySecurityScreen();
+
+ mBouncer.hide(false);
+ mBouncer.show(true);
+ verify(mKeyguardHostView).showPrimarySecurityScreen();
+ }
+
+ @Test
+ public void testShow_animatesKeyguardView() {
+ mBouncer.show(true);
+ verify(mKeyguardHostView).startAppearAnimation();
+ }
+
+ @Test
+ public void testShow_showsErrorMessage() {
+ final String errorMessage = "an error message";
+ when(mViewMediatorCallback.consumeCustomMessage()).thenReturn(errorMessage);
+ mBouncer.show(true);
+ verify(mKeyguardHostView).showErrorMessage(eq(errorMessage));
+ }
+
+ @Test
+ public void testOnFullyShown_notifiesFalsingManager() {
+ mBouncer.onFullyShown();
+ verify(mFalsingManager).onBouncerShown();
+ }
+
+ @Test
+ public void testOnFullyHidden_notifiesFalsingManager() {
+ mBouncer.onFullyHidden();
+ verify(mFalsingManager).onBouncerHidden();
}
+ @Test
+ public void testHide_notifiesFalsingManager() {
+ mBouncer.hide(false);
+ verify(mFalsingManager).onBouncerHidden();
+ }
+
+ @Test
+ public void testHide_notifiesVisibility() {
+ mBouncer.hide(false);
+ verify(mViewMediatorCallback).onBouncerVisiblityChanged(eq(false));
+ }
+
+ @Test
+ public void testHide_notifiesDismissCallbackIfVisible() {
+ mBouncer.hide(false);
+ verifyZeroInteractions(mDismissCallbackRegistry);
+ mBouncer.show(false);
+ mBouncer.hide(false);
+ verify(mDismissCallbackRegistry).notifyDismissCancelled();
+ }
+
+ @Test
+ public void testShowPromptReason_propagates() {
+ mBouncer.ensureView();
+ mBouncer.showPromptReason(1);
+ verify(mKeyguardHostView).showPromptReason(eq(1));
+ }
+
+ @Test
+ public void testShowMessage_propagates() {
+ final String message = "a message";
+ mBouncer.ensureView();
+ mBouncer.showMessage(message, Color.GREEN);
+ verify(mKeyguardHostView).showMessage(eq(message), eq(Color.GREEN));
+ }
+
+ @Test
+ public void testShowOnDismissAction_showsBouncer() {
+ final KeyguardHostView.OnDismissAction dismissAction = () -> false;
+ final Runnable cancelAction = () -> {};
+ mBouncer.showWithDismissAction(dismissAction, cancelAction);
+ verify(mKeyguardHostView).setOnDismissAction(dismissAction, cancelAction);
+ Assert.assertTrue("Should be showing", mBouncer.isShowing());
+ }
+
+ @Test
+ public void testStartPreHideAnimation_notifiesView() {
+ final boolean[] ran = {false};
+ final Runnable r = () -> ran[0] = true;
+ mBouncer.startPreHideAnimation(r);
+ Assert.assertTrue("Callback should have been invoked", ran[0]);
+
+ ran[0] = false;
+ mBouncer.ensureView();
+ mBouncer.startPreHideAnimation(r);
+ verify(mKeyguardHostView).startDisappearAnimation(r);
+ Assert.assertFalse("Callback should have been deferred", ran[0]);
+ }
+
+ @Test
+ public void testIsShowing() {
+ Assert.assertFalse("Show wasn't invoked yet", mBouncer.isShowing());
+ mBouncer.show(true);
+ Assert.assertTrue("Should be showing", mBouncer.isShowing());
+ }
+
+ @Test
+ public void testSetExpansion() {
+ mBouncer.ensureView();
+ mBouncer.setExpansion(0.5f);
+ verify(mKeyguardHostView).setAlpha(anyFloat());
+ verify(mKeyguardHostView).setTranslationY(anyFloat());
+ }
+
+ @Test
+ public void testNeedsFullscreenBouncer_asksKeyguardView() {
+ mBouncer.ensureView();
+ mBouncer.needsFullscreenBouncer();
+ verify(mKeyguardHostView).getSecurityMode();
+ verify(mKeyguardHostView, never()).getCurrentSecurityMode();
+ }
+
+ @Test
+ public void testIsFullscreenBouncer_asksKeyguardView() {
+ mBouncer.ensureView();
+ mBouncer.isFullscreenBouncer();
+ verify(mKeyguardHostView).getCurrentSecurityMode();
+ verify(mKeyguardHostView, never()).getSecurityMode();
+ }
+
+ @Test
+ public void testIsSecure() {
+ Assert.assertTrue("Bouncer is secure before inflating views", mBouncer.isSecure());
+
+ mBouncer.ensureView();
+ for (KeyguardSecurityModel.SecurityMode mode : KeyguardSecurityModel.SecurityMode.values()){
+ reset(mKeyguardHostView);
+ when(mKeyguardHostView.getSecurityMode()).thenReturn(mode);
+ Assert.assertEquals("Security doesn't match for mode: " + mode,
+ mBouncer.isSecure(), mode != KeyguardSecurityModel.SecurityMode.None);
+ }
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
index 6fbc0d710cc4..f088c0b0acf8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java
@@ -42,6 +42,7 @@ import android.testing.TestableLooper;
import android.view.Choreographer;
import android.view.View;
+import com.android.internal.util.Preconditions;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.statusbar.ScrimView;
@@ -181,7 +182,7 @@ public class ScrimControllerTest extends SysuiTestCase {
@Test
public void transitionToBouncer() {
- mScrimController.transitionTo(ScrimState.BOUNCER_OCCLUDED);
+ mScrimController.transitionTo(ScrimState.BOUNCER_SCRIMMED);
mScrimController.finishAnimationsImmediately();
// Front scrim should be transparent
// Back scrim should be visible without tint
@@ -463,6 +464,17 @@ public class ScrimControllerTest extends SysuiTestCase {
mHeadsUpScrim.getAlpha(), 0.01f);
}
+ @Test
+ public void testScrimFocus() {
+ mScrimController.transitionTo(ScrimState.AOD);
+ Assert.assertFalse("Should not be focusable on AOD", mScrimBehind.isFocusable());
+ Assert.assertFalse("Should not be focusable on AOD", mScrimInFront.isFocusable());
+
+ mScrimController.transitionTo(ScrimState.KEYGUARD);
+ Assert.assertTrue("Should be focusable on keyguard", mScrimBehind.isFocusable());
+ Assert.assertTrue("Should be focusable on keyguard", mScrimInFront.isFocusable());
+ }
+
/**
* Conserves old notification density after leaving state and coming back.
*
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java
index 56de32d3a401..11bb398501de 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/leak/LeakDetectorTest.java
@@ -24,6 +24,7 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.util.leak.ReferenceTestUtils.CollectionWaiter;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -82,6 +83,7 @@ public class LeakDetectorTest extends SysuiTestCase {
collectionWaiter.waitForCollection();
}
+ @Ignore("b/75329085")
@Test
public void trackCollection_doesNotLeakTrackedObject() {
CollectionWaiter collectionWaiter = trackCollectionWith(mLeakDetector::trackCollection);
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-af/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-af/strings.xml
new file mode 100644
index 000000000000..af108e80c7e5
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-af/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dubbelskermuitsnede"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-am/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-am/strings.xml
new file mode 100644
index 000000000000..8b03bdeb4252
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-am/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"የድርብ ማሳያ ቅርጽ"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ar/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ar/strings.xml
new file mode 100644
index 000000000000..34065f89bb77
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ar/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"صورة مقطوعة لشاشة مزدوجة"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-az/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-az/strings.xml
new file mode 100644
index 000000000000..732ebe5fa296
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-az/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"İkiqat ekran kəsimi"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-b+sr+Latn/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 000000000000..089f20b8be02
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Izrezana slika za duple ekrane"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-be/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-be/strings.xml
new file mode 100644
index 000000000000..1763bd46f049
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-be/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Павялічыць выраз на экране ўдвая"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-bg/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-bg/strings.xml
new file mode 100644
index 000000000000..8952d12223d3
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-bg/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Двоен прорез на екрана"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-bs/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-bs/strings.xml
new file mode 100644
index 000000000000..3c40f984a72b
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-bs/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dvostruki urez ekrana"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ca/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ca/strings.xml
new file mode 100644
index 000000000000..096a62dbbc22
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ca/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Retall de pantalla doble"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-cs/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-cs/strings.xml
new file mode 100644
index 000000000000..e979511f046a
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-cs/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dvojitý výřez displeje"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-da/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-da/strings.xml
new file mode 100644
index 000000000000..27dc82ebced8
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-da/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dobbelt udskæring på skærmen"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-de/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-de/strings.xml
new file mode 100644
index 000000000000..1600d0030d5c
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-de/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Doppelter Ausschnitt im Display"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-el/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-el/strings.xml
new file mode 100644
index 000000000000..c744a4503853
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-el/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Διακοπή διπλής οθόνης"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rAU/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rAU/strings.xml
new file mode 100644
index 000000000000..648edfe3740a
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rAU/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Double display cutout"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rCA/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rCA/strings.xml
new file mode 100644
index 000000000000..648edfe3740a
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rCA/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Double display cutout"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rGB/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rGB/strings.xml
new file mode 100644
index 000000000000..648edfe3740a
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rGB/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Double display cutout"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rIN/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rIN/strings.xml
new file mode 100644
index 000000000000..648edfe3740a
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rIN/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Double display cutout"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rXC/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rXC/strings.xml
new file mode 100644
index 000000000000..5d9e709823ea
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-en-rXC/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‏‏‎‎‎‏‏‎‏‎‏‏‏‎‎‏‎‏‎‎‏‎‏‎‎‏‏‏‎‏‎‎‎‎‏‏‎‎‏‏‏‎‎‏‎‎Double display cutout‎‏‎‎‏‎"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-es-rUS/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-es-rUS/strings.xml
new file mode 100644
index 000000000000..44cd9bea6b25
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-es-rUS/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Recorte de pantalla doble"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-es/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-es/strings.xml
new file mode 100644
index 000000000000..44cd9bea6b25
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-es/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Recorte de pantalla doble"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-et/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-et/strings.xml
new file mode 100644
index 000000000000..9edaf8efecc2
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-et/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Topeltekraani väljalõige"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-eu/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-eu/strings.xml
new file mode 100644
index 000000000000..18000bdf9f98
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-eu/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Pantailaren mozketa bikoitza"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fa/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fa/strings.xml
new file mode 100644
index 000000000000..d350822ce4e6
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fa/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"نمایشگر با لبه دوتایی"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fi/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fi/strings.xml
new file mode 100644
index 000000000000..33766fd85c26
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fi/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Kaksoisaukko näytössä"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fr-rCA/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fr-rCA/strings.xml
new file mode 100644
index 000000000000..8fa31c4980d1
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fr-rCA/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Découpe d\'affichage double"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fr/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fr/strings.xml
new file mode 100644
index 000000000000..9f55c9c82e20
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-fr/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Encoche pour écran double"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-gl/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-gl/strings.xml
new file mode 100644
index 000000000000..92832daa4b72
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-gl/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Recorte de pantalla dobre"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hr/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hr/strings.xml
new file mode 100644
index 000000000000..9d7a8ce8b520
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hr/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Obrezana slika za dvostruke zaslone"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hu/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hu/strings.xml
new file mode 100644
index 000000000000..0af2ad3d2ac0
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hu/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dupla képernyőkivágás"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hy/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hy/strings.xml
new file mode 100644
index 000000000000..7907d0aa66ad
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-hy/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Էկրանի կրկնակի կտրվածք"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-in/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-in/strings.xml
new file mode 100644
index 000000000000..45f59524acc1
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-in/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Potongan tampilan ganda"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-is/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-is/strings.xml
new file mode 100644
index 000000000000..910948915e7d
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-is/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Tvöfaldur skjáskurður"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-it/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-it/strings.xml
new file mode 100644
index 000000000000..4aa869e08c01
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-it/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Ritaglio display doppio"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ja/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ja/strings.xml
new file mode 100644
index 000000000000..5346e977d776
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ja/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"ダブル ディスプレイ カットアウト"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ka/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ka/strings.xml
new file mode 100644
index 000000000000..515ac25003c2
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ka/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"ეკრანის ორმაგი ამოჭრა"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-kk/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-kk/strings.xml
new file mode 100644
index 000000000000..c812d0cf5cdb
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-kk/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Қос дисплейді өшіру"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-km/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-km/strings.xml
new file mode 100644
index 000000000000..0a52444fe007
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-km/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"ស្នាមចោះ​ផ្ទាំង​អេក្រង់​ភ្លោះ"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ko/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ko/strings.xml
new file mode 100644
index 000000000000..5505f579db20
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ko/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"더블 디스플레이 컷아웃"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ky/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ky/strings.xml
new file mode 100644
index 000000000000..baf2f4d74dd9
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ky/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Кош дисплей кесиндиси"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lo/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lo/strings.xml
new file mode 100644
index 000000000000..5823a8238d0d
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lo/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"ກ່ອງຂໍ້ຄວາມສະແດງຜົນຄູ່"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lt/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lt/strings.xml
new file mode 100644
index 000000000000..7c1ba7d9e262
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lt/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dviguba ekrano išpjova"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lv/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lv/strings.xml
new file mode 100644
index 000000000000..5452e9cecbd1
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-lv/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Divkāršs ekrāna izgriezums"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-mk/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-mk/strings.xml
new file mode 100644
index 000000000000..d23283832470
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-mk/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Двоен исечок на екранот"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-mn/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-mn/strings.xml
new file mode 100644
index 000000000000..c43f18a56df8
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-mn/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Давхар дэлгэцийг таслах"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ms/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ms/strings.xml
new file mode 100644
index 000000000000..b3085ef0a4b4
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ms/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Potongan paparan berganda"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-my/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-my/strings.xml
new file mode 100644
index 000000000000..14f66fa27ba2
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-my/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"မျက်နှာပြင် ဖြတ်ညှပ်ပြသမှု"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-nb/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-nb/strings.xml
new file mode 100644
index 000000000000..e4b6c762ca08
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-nb/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dobbelt skjermutklipp"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-nl/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-nl/strings.xml
new file mode 100644
index 000000000000..d46f770ad1f8
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-nl/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dubbele display-cutout"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pl/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pl/strings.xml
new file mode 100644
index 000000000000..fdc9a208d21a
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pl/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Podwójne wycięcie wyświetlacza"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt-rBR/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt-rBR/strings.xml
new file mode 100644
index 000000000000..8c05472dcc3c
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt-rBR/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Corte de tela duplo"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt-rPT/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt-rPT/strings.xml
new file mode 100644
index 000000000000..b9c30c6c44ff
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt-rPT/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Ecrã duplo com recorte"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt/strings.xml
new file mode 100644
index 000000000000..8c05472dcc3c
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-pt/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Corte de tela duplo"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ro/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ro/strings.xml
new file mode 100644
index 000000000000..a22afe6c2b17
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ro/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Decupare dublă pe ecran"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ru/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ru/strings.xml
new file mode 100644
index 000000000000..14dd6067c491
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-ru/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Увеличить вырез на экране вдвое"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-si/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-si/strings.xml
new file mode 100644
index 000000000000..c15208f08ff8
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-si/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"ද්විත්ව තිර කට්අවුට්"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sk/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sk/strings.xml
new file mode 100644
index 000000000000..98a74c1592d6
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sk/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dvojitý výrez obrazovky"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sl/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sl/strings.xml
new file mode 100644
index 000000000000..4f12711c44ba
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sl/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Izrez dvojnega prikaza"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sq/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sq/strings.xml
new file mode 100644
index 000000000000..96a68d5970fa
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sq/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Prerje e dyfishtë e ekranit"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sr/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sr/strings.xml
new file mode 100644
index 000000000000..8930813b272e
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sr/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Изрезана слика за дупле екране"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sv/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sv/strings.xml
new file mode 100644
index 000000000000..42b7aed8f488
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sv/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dubbelt urklipp av skärm"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sw/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sw/strings.xml
new file mode 100644
index 000000000000..a39f77ddecad
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-sw/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Mwonekano wenye mapengo mawili"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-th/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-th/strings.xml
new file mode 100644
index 000000000000..98884c5cdcbd
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-th/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"คัตเอาท์ดิสเพลย์คู่"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-tl/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-tl/strings.xml
new file mode 100644
index 000000000000..e68b5ec5c686
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-tl/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Dobleng display cutout"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-tr/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-tr/strings.xml
new file mode 100644
index 000000000000..3ae92f0f4964
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-tr/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Çift ekran kesimi"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-uk/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-uk/strings.xml
new file mode 100644
index 000000000000..cf6df69d04c0
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-uk/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Відключення подвійного дисплея"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-uz/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-uz/strings.xml
new file mode 100644
index 000000000000..307ba1f7405c
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-uz/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Ikkitali ekran kesimi"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-vi/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-vi/strings.xml
new file mode 100644
index 000000000000..442805a12b29
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-vi/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Cắt hiển thị kép"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rCN/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rCN/strings.xml
new file mode 100644
index 000000000000..06b13796e5d4
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rCN/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"双显示屏凹口"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rHK/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rHK/strings.xml
new file mode 100644
index 000000000000..6da1a7fc50e9
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rHK/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"雙顯示屏凹口"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rTW/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rTW/strings.xml
new file mode 100644
index 000000000000..72932b551d9b
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zh-rTW/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"雙螢幕凹口"</string>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zu/strings.xml b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zu/strings.xml
new file mode 100644
index 000000000000..2e0a5bdcddb7
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationDoubleOverlay/res/values-zu/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2018 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="display_cutout_emulation_overlay" msgid="5659433562878674546">"Ukusikwa kokuboniswa okukabili"</string>
+</resources>
diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto
index e3be5d43a327..62d941a93fb4 100644
--- a/proto/src/metrics_constants.proto
+++ b/proto/src/metrics_constants.proto
@@ -5507,6 +5507,10 @@ message MetricsEvent {
// internal platform metrics use.
RESERVED_FOR_LOGBUILDER_LATENCY_MILLIS = 1359;
+ // OPEN: Settings > Gestures > Prevent Ringing
+ // OS: P
+ SETTINGS_PREVENT_RINGING = 1360;
+
// ---- End P Constants, all P constants go above this line ----
// Add new aosp constants above this line.
// END OF AOSP CONSTANTS
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index 38968712f4c8..539c00135f6a 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -89,6 +89,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
private static final boolean VDBG = false; // STOPSHIP if true
private static class Record {
+ Context context;
+
String callingPackage;
IBinder binder;
@@ -107,8 +109,6 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
int phoneId = SubscriptionManager.INVALID_PHONE_INDEX;
- boolean canReadPhoneState;
-
boolean matchPhoneStateListenerEvent(int events) {
return (callback != null) && ((events & this.events) != 0);
}
@@ -117,6 +117,15 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
return (onSubscriptionsChangedListenerCallback != null);
}
+ boolean canReadPhoneState() {
+ try {
+ return TelephonyPermissions.checkReadPhoneState(
+ context, subId, callerPid, callerUid, callingPackage, "listen");
+ } catch (SecurityException e) {
+ return false;
+ }
+ }
+
@Override
public String toString() {
return "{callingPackage=" + callingPackage + " binder=" + binder
@@ -124,8 +133,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
+ " onSubscriptionsChangedListenererCallback="
+ onSubscriptionsChangedListenerCallback
+ " callerUid=" + callerUid + " subId=" + subId + " phoneId=" + phoneId
- + " events=" + Integer.toHexString(events)
- + " canReadPhoneState=" + canReadPhoneState + "}";
+ + " events=" + Integer.toHexString(events) + "}";
}
}
@@ -206,11 +214,6 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR |
PhoneStateListener.LISTEN_VOLTE_STATE;
- static final int CHECK_PHONE_STATE_PERMISSION_MASK =
- PhoneStateListener.LISTEN_CALL_STATE |
- PhoneStateListener.LISTEN_DATA_ACTIVITY |
- PhoneStateListener.LISTEN_DATA_CONNECTION_STATE;
-
static final int PRECISE_PHONE_STATE_PERMISSION_MASK =
PhoneStateListener.LISTEN_PRECISE_CALL_STATE |
PhoneStateListener.LISTEN_PRECISE_DATA_CONNECTION_STATE;
@@ -376,22 +379,13 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
public void addOnSubscriptionsChangedListener(String callingPackage,
IOnSubscriptionsChangedListener callback) {
int callerUserId = UserHandle.getCallingUserId();
- mContext.getSystemService(AppOpsManager.class)
- .checkPackage(Binder.getCallingUid(), callingPackage);
+ mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
if (VDBG) {
log("listen oscl: E pkg=" + callingPackage + " myUserId=" + UserHandle.myUserId()
+ " callerUserId=" + callerUserId + " callback=" + callback
+ " callback.asBinder=" + callback.asBinder());
}
- // TODO(b/70041899): Find a way to make this work for carrier-privileged callers.
- if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
- mContext, SubscriptionManager.INVALID_SUBSCRIPTION_ID, callingPackage,
- "addOnSubscriptionsChangedListener")) {
- return;
- }
-
-
synchronized (mRecords) {
// register
IBinder b = callback.asBinder();
@@ -401,12 +395,12 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
return;
}
+ r.context = mContext;
r.onSubscriptionsChangedListenerCallback = callback;
r.callingPackage = callingPackage;
r.callerUid = Binder.getCallingUid();
r.callerPid = Binder.getCallingPid();
r.events = 0;
- r.canReadPhoneState = true; // permission has been enforced above
if (DBG) {
log("listen oscl: Register r=" + r);
}
@@ -475,8 +469,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
private void listen(String callingPackage, IPhoneStateListener callback, int events,
boolean notifyNow, int subId) {
int callerUserId = UserHandle.getCallingUserId();
- mContext.getSystemService(AppOpsManager.class)
- .checkPackage(Binder.getCallingUid(), callingPackage);
+ mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
if (VDBG) {
log("listen: E pkg=" + callingPackage + " events=0x" + Integer.toHexString(events)
+ " notifyNow=" + notifyNow + " subId=" + subId + " myUserId="
@@ -487,7 +480,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
// Checks permission and throws SecurityException for disallowed operations. For pre-M
// apps whose runtime permission has been revoked, we return immediately to skip sending
// events to the app without crashing it.
- if (!checkListenerPermission(events, callingPackage, "listen")) {
+ if (!checkListenerPermission(events, subId, callingPackage, "listen")) {
return;
}
@@ -501,14 +494,11 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
return;
}
+ r.context = mContext;
r.callback = callback;
r.callingPackage = callingPackage;
r.callerUid = Binder.getCallingUid();
r.callerPid = Binder.getCallingPid();
- boolean isPhoneStateEvent = (events & (CHECK_PHONE_STATE_PERMISSION_MASK
- | ENFORCE_PHONE_STATE_PERMISSION_MASK)) != 0;
- r.canReadPhoneState =
- isPhoneStateEvent && canReadPhoneState(callingPackage, "listen");
// Legacy applications pass SubscriptionManager.DEFAULT_SUB_ID,
// force all illegal subId to SubscriptionManager.DEFAULT_SUB_ID
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
@@ -676,19 +666,9 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
}
}
- private boolean canReadPhoneState(String callingPackage, String message) {
- try {
- // TODO(b/70041899): Find a way to make this work for carrier-privileged callers.
- return TelephonyPermissions.checkCallingOrSelfReadPhoneState(
- mContext, SubscriptionManager.INVALID_SUBSCRIPTION_ID, callingPackage, message);
- } catch (SecurityException e) {
- return false;
- }
- }
-
private String getCallIncomingNumber(Record record, int phoneId) {
- // Hide the number if record's process has no READ_PHONE_STATE permission
- return record.canReadPhoneState ? mCallIncomingNumber[phoneId] : "";
+ // Hide the number if record's process can't currently read phone state.
+ return record.canReadPhoneState() ? mCallIncomingNumber[phoneId] : "";
}
private Record add(IBinder binder) {
@@ -763,7 +743,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
if (r.matchPhoneStateListenerEvent(PhoneStateListener.LISTEN_CALL_STATE) &&
(r.subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID)) {
try {
- String incomingNumberOrEmpty = r.canReadPhoneState ? incomingNumber : "";
+ String incomingNumberOrEmpty = r.canReadPhoneState() ? incomingNumber : "";
r.callback.onCallStateChanged(state, incomingNumberOrEmpty);
} catch (RemoteException ex) {
mRemoveList.add(r.binder);
@@ -1690,7 +1670,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
== PackageManager.PERMISSION_GRANTED;
}
- private boolean checkListenerPermission(int events, String callingPackage, String message) {
+ private boolean checkListenerPermission(
+ int events, int subId, String callingPackage, String message) {
if ((events & ENFORCE_COARSE_LOCATION_PERMISSION_MASK) != 0) {
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.ACCESS_COARSE_LOCATION, null);
@@ -1701,9 +1682,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub {
}
if ((events & ENFORCE_PHONE_STATE_PERMISSION_MASK) != 0) {
- // TODO(b/70041899): Find a way to make this work for carrier-privileged callers.
- if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mContext,
- SubscriptionManager.INVALID_SUBSCRIPTION_ID, callingPackage, message)) {
+ if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+ mContext, subId, callingPackage, message)) {
return false;
}
}
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index dd31a84ea93c..063c1f1cb597 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -110,6 +110,7 @@ import static android.os.Process.setThreadPriority;
import static android.os.Process.setThreadScheduler;
import static android.os.Process.startWebView;
import static android.os.Process.zygoteProcess;
+import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER;
import static android.provider.Settings.Global.ALWAYS_FINISH_ACTIVITIES;
import static android.provider.Settings.Global.DEBUG_APP;
import static android.provider.Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT;
@@ -737,6 +738,13 @@ public class ActivityManagerService extends IActivityManager.Stub
private ActivityRecord mLastResumedActivity;
/**
+ * The activity that is currently being traced as the active resumed activity.
+ *
+ * @see #updateResumedAppTrace
+ */
+ private @Nullable ActivityRecord mTracedResumedActivity;
+
+ /**
* If non-null, we are tracking the time the user spends in the currently focused app.
*/
private AppTimeTracker mCurAppTimeTracker;
@@ -3423,6 +3431,7 @@ public class ActivityManagerService extends IActivityManager.Stub
if (mLastResumedActivity != null && r.userId != mLastResumedActivity.userId) {
mUserController.sendForegroundProfileChanged(r.userId);
}
+ updateResumedAppTrace(r);
mLastResumedActivity = r;
mWindowManager.setFocusedApp(r.appToken, true);
@@ -3436,6 +3445,22 @@ public class ActivityManagerService extends IActivityManager.Stub
reason);
}
+ private void updateResumedAppTrace(@Nullable ActivityRecord resumed) {
+ if (mTracedResumedActivity != null) {
+ Trace.asyncTraceEnd(TRACE_TAG_ACTIVITY_MANAGER,
+ constructResumedTraceName(mTracedResumedActivity.packageName), 0);
+ }
+ if (resumed != null) {
+ Trace.asyncTraceBegin(TRACE_TAG_ACTIVITY_MANAGER,
+ constructResumedTraceName(resumed.packageName), 0);
+ }
+ mTracedResumedActivity = resumed;
+ }
+
+ private String constructResumedTraceName(String packageName) {
+ return "focused app: " + packageName;
+ }
+
@Override
public void setFocusedStack(int stackId) {
enforceCallingPermission(MANAGE_ACTIVITY_STACKS, "setFocusedStack()");
@@ -7575,6 +7600,9 @@ public class ActivityManagerService extends IActivityManager.Stub
if (profilerInfo != null && profilerInfo.profileFd != null) {
profilerInfo.profileFd = profilerInfo.profileFd.dup();
+ if (TextUtils.equals(mProfileApp, processName) && mProfilerInfo != null) {
+ clearProfilerLocked();
+ }
}
// We deprecated Build.SERIAL and it is not accessible to
@@ -7659,7 +7687,10 @@ public class ActivityManagerService extends IActivityManager.Stub
mCoreSettingsObserver.getCoreSettingsLocked(),
buildSerial, isAutofillCompatEnabled);
}
-
+ if (profilerInfo != null) {
+ profilerInfo.closeFd();
+ profilerInfo = null;
+ }
checkTime(startTime, "attachApplicationLocked: immediately after bindApplication");
updateLruProcessLocked(app, false, null);
checkTime(startTime, "attachApplicationLocked: after updateLruProcessLocked");
@@ -13073,6 +13104,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
mTopProcessState = ActivityManager.PROCESS_STATE_TOP_SLEEPING;
mStackSupervisor.goingToSleepLocked();
+ updateResumedAppTrace(null /* resumed */);
updateOomAdjLocked();
}
}
@@ -25932,16 +25964,19 @@ public class ActivityManagerService extends IActivityManager.Stub
Bundle bOptions) {
Preconditions.checkNotNull(intents, "intents");
final String[] resolvedTypes = new String[intents.length];
- for (int i = 0; i < intents.length; i++) {
- resolvedTypes[i] = intents[i].resolveTypeIfNeeded(mContext.getContentResolver());
- }
// UID of the package on user userId.
// "= 0" is needed because otherwise catch(RemoteException) would make it look like
// packageUid may not be initialized.
int packageUid = 0;
final long ident = Binder.clearCallingIdentity();
+
try {
+ for (int i = 0; i < intents.length; i++) {
+ resolvedTypes[i] =
+ intents[i].resolveTypeIfNeeded(mContext.getContentResolver());
+ }
+
packageUid = AppGlobals.getPackageManager().getPackageUid(
packageName, PackageManager.MATCH_DEBUG_TRIAGED_MISSING, userId);
} catch (RemoteException e) {
diff --git a/services/core/java/com/android/server/am/ActivityMetricsLogger.java b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
index 352b75704d6e..724dd3fd9847 100644
--- a/services/core/java/com/android/server/am/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
@@ -299,7 +299,7 @@ class ActivityMetricsLogger {
final boolean otherWindowModesLaunching =
mWindowingModeTransitionInfo.size() > 0 && info == null;
- if ((resultCode < 0 || launchedActivity == null || !processSwitch
+ if ((!isLoggableResultCode(resultCode) || launchedActivity == null || !processSwitch
|| windowingMode == WINDOWING_MODE_UNDEFINED) && !otherWindowModesLaunching) {
// Failed to launch or it was not a process switch, so we don't care about the timing.
@@ -322,6 +322,14 @@ class ActivityMetricsLogger {
}
/**
+ * @return True if we should start logging an event for an activity start that returned
+ * {@code resultCode} and that we'll indeed get a windows drawn event.
+ */
+ private boolean isLoggableResultCode(int resultCode) {
+ return resultCode == START_SUCCESS || resultCode == START_TASK_TO_FRONT;
+ }
+
+ /**
* Notifies the tracker that all windows of the app have been drawn.
*/
void notifyWindowsDrawn(int windowingMode, long timestamp) {
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java
index 8c49472b58c6..68c47d58f92d 100644
--- a/services/core/java/com/android/server/am/ActivityRecord.java
+++ b/services/core/java/com/android/server/am/ActivityRecord.java
@@ -1193,6 +1193,9 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo
}
boolean isFocusable() {
+ if (inSplitScreenPrimaryWindowingMode() && mStackSupervisor.mIsDockMinimized) {
+ return false;
+ }
return getWindowConfiguration().canReceiveKeys() || isAlwaysFocusable();
}
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index a24f84aa85b9..6101420dacdd 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -3420,7 +3420,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
}
/** Find next proper focusable stack and make it focused. */
- private boolean adjustFocusToNextFocusableStack(String reason) {
+ boolean adjustFocusToNextFocusableStack(String reason) {
return adjustFocusToNextFocusableStack(reason, false /* allowFocusSelf */);
}
@@ -5287,6 +5287,14 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
boolean shouldSleepActivities() {
final ActivityDisplay display = getDisplay();
+
+ // Do not sleep activities in this stack if we're marked as focused and the keyguard
+ // is in the process of going away.
+ if (mStackSupervisor.getFocusedStack() == this
+ && mStackSupervisor.getKeyguardController().isKeyguardGoingAway()) {
+ return false;
+ }
+
return display != null ? display.isSleeping() : mService.isSleepingLocked();
}
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index efc0d7d87e63..be826f7dc025 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -2455,19 +2455,20 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D
if (currentWindowingMode == WINDOWING_MODE_SPLIT_SCREEN_SECONDARY
&& candidate == null && stack.inSplitScreenPrimaryWindowingMode()) {
- // If the currently focused stack is in split-screen secondary we would prefer
- // the focus to move to another split-screen secondary stack or fullscreen stack
- // over the primary split screen stack to avoid:
- // - Moving the focus to the primary split-screen stack when it can't be focused
- // because it will be minimized, but AM doesn't know that yet
- // - primary split-screen stack overlapping with a fullscreen stack when a
- // fullscreen stack is higher in z than the next split-screen stack. Assistant
- // stack, I am looking at you...
+ // If the currently focused stack is in split-screen secondary we save off the
+ // top primary split-screen stack as a candidate for focus because we might
+ // prefer focus to move to an other stack to avoid primary split-screen stack
+ // overlapping with a fullscreen stack when a fullscreen stack is higher in z
+ // than the next split-screen stack. Assistant stack, I am looking at you...
// We only move the focus to the primary-split screen stack if there isn't a
// better alternative.
candidate = stack;
continue;
}
+ if (candidate != null && stack.inSplitScreenSecondaryWindowingMode()) {
+ // Use the candidate stack since we are now at the secondary split-screen.
+ return candidate;
+ }
return stack;
}
}
@@ -4413,6 +4414,14 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D
void setDockedStackMinimized(boolean minimized) {
mIsDockMinimized = minimized;
+ if (mIsDockMinimized) {
+ final ActivityStack current = getFocusedStack();
+ if (current.inSplitScreenPrimaryWindowingMode()) {
+ // The primary split-screen stack can't be focused while it is minimize, so move
+ // focus to something else.
+ current.adjustFocusToNextFocusableStack("setDockedStackMinimized");
+ }
+ }
}
void wakeUp(String reason) {
diff --git a/services/core/java/com/android/server/am/AppBindRecord.java b/services/core/java/com/android/server/am/AppBindRecord.java
index 7b3859789d28..972a692d276f 100644
--- a/services/core/java/com/android/server/am/AppBindRecord.java
+++ b/services/core/java/com/android/server/am/AppBindRecord.java
@@ -66,14 +66,13 @@ final class AppBindRecord {
void writeToProto(ProtoOutputStream proto, long fieldId) {
long token = proto.start(fieldId);
- proto.write(AppBindRecordProto.HEX_HASH,
- Integer.toHexString(System.identityHashCode(this)));
- if (client != null) {
- client.writeToProto(proto, AppBindRecordProto.CLIENT);
- }
+ proto.write(AppBindRecordProto.SERVICE_NAME, service.shortName);
+ proto.write(AppBindRecordProto.CLIENT_PROC_NAME, client.processName);
final int N = connections.size();
for (int i=0; i<N; i++) {
- connections.valueAt(i).writeToProto(proto, AppBindRecordProto.CONNECTIONS);
+ ConnectionRecord conn = connections.valueAt(i);
+ proto.write(AppBindRecordProto.CONNECTIONS,
+ Integer.toHexString(System.identityHashCode(conn)));
}
proto.end(token);
}
diff --git a/services/core/java/com/android/server/am/ConnectionRecord.java b/services/core/java/com/android/server/am/ConnectionRecord.java
index d320fb1d0560..a8e9ad9ce87b 100644
--- a/services/core/java/com/android/server/am/ConnectionRecord.java
+++ b/services/core/java/com/android/server/am/ConnectionRecord.java
@@ -176,10 +176,6 @@ final class ConnectionRecord {
if (binding.service != null) {
proto.write(ConnectionRecordProto.SERVICE_NAME, binding.service.shortName);
}
- if (conn != null) {
- proto.write(ConnectionRecordProto.CONN_HEX_HASH,
- Integer.toHexString(System.identityHashCode(conn.asBinder())));
- }
proto.end(token);
}
}
diff --git a/services/core/java/com/android/server/am/IntentBindRecord.java b/services/core/java/com/android/server/am/IntentBindRecord.java
index 01ce64c6e037..3457a8098284 100644
--- a/services/core/java/com/android/server/am/IntentBindRecord.java
+++ b/services/core/java/com/android/server/am/IntentBindRecord.java
@@ -113,10 +113,6 @@ final class IntentBindRecord {
public void writeToProto(ProtoOutputStream proto, long fieldId) {
long token = proto.start(fieldId);
- proto.write(IntentBindRecordProto.HEX_HASH,
- Integer.toHexString(System.identityHashCode(this)));
- proto.write(IntentBindRecordProto.IS_CREATE,
- (collectFlags()&Context.BIND_AUTO_CREATE) != 0);
if (intent != null) {
intent.getIntent().writeToProto(proto,
IntentBindRecordProto.INTENT, false, true, false, false);
@@ -124,6 +120,8 @@ final class IntentBindRecord {
if (binder != null) {
proto.write(IntentBindRecordProto.BINDER, binder.toString());
}
+ proto.write(IntentBindRecordProto.AUTO_CREATE,
+ (collectFlags()&Context.BIND_AUTO_CREATE) != 0);
proto.write(IntentBindRecordProto.REQUESTED, requested);
proto.write(IntentBindRecordProto.RECEIVED, received);
proto.write(IntentBindRecordProto.HAS_BOUND, hasBound);
diff --git a/services/core/java/com/android/server/am/KeyguardController.java b/services/core/java/com/android/server/am/KeyguardController.java
index 72882de21e09..0d7eab626ff0 100644
--- a/services/core/java/com/android/server/am/KeyguardController.java
+++ b/services/core/java/com/android/server/am/KeyguardController.java
@@ -98,6 +98,14 @@ class KeyguardController {
}
/**
+ * @return {@code true} if the keyguard is going away, {@code false} otherwise.
+ */
+ boolean isKeyguardGoingAway() {
+ // Also check keyguard showing in case value is stale.
+ return mKeyguardGoingAway && mKeyguardShowing;
+ }
+
+ /**
* Update the Keyguard showing state.
*/
void setKeyguardShown(boolean showing, int secondaryDisplayShowing) {
diff --git a/services/core/java/com/android/server/am/RecentTasks.java b/services/core/java/com/android/server/am/RecentTasks.java
index 3f05ecee77ef..fc8b624f6b7e 100644
--- a/services/core/java/com/android/server/am/RecentTasks.java
+++ b/services/core/java/com/android/server/am/RecentTasks.java
@@ -285,7 +285,7 @@ class RecentTasks {
boolean isRecentsComponentHomeActivity(int userId) {
final ComponentName defaultHomeActivity = mService.getPackageManagerInternalLocked()
.getDefaultHomeActivity(userId);
- return defaultHomeActivity != null &&
+ return defaultHomeActivity != null && mRecentsComponent != null &&
defaultHomeActivity.getPackageName().equals(mRecentsComponent.getPackageName());
}
diff --git a/services/core/java/com/android/server/am/RecentsAnimation.java b/services/core/java/com/android/server/am/RecentsAnimation.java
index 91215685f35f..da56ffd57bf3 100644
--- a/services/core/java/com/android/server/am/RecentsAnimation.java
+++ b/services/core/java/com/android/server/am/RecentsAnimation.java
@@ -16,6 +16,7 @@
package com.android.server.am;
+import static android.app.ActivityManager.START_TASK_TO_FRONT;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
@@ -95,6 +96,8 @@ class RecentsAnimation implements RecentsAnimationCallbacks {
}
}
+ mStackSupervisor.getActivityMetricsLogger().notifyActivityLaunching();
+
mService.setRunningRemoteAnimation(mCallingPid, true);
mWindowManager.deferSurfaceLayout();
@@ -143,6 +146,9 @@ class RecentsAnimation implements RecentsAnimationCallbacks {
// If we updated the launch-behind state, update the visibility of the activities after
// we fetch the visible tasks to be controlled by the animation
mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, PRESERVE_WINDOWS);
+
+ mStackSupervisor.getActivityMetricsLogger().notifyActivityLaunched(START_TASK_TO_FRONT,
+ homeActivity);
} finally {
mWindowManager.continueSurfaceLayout();
Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
diff --git a/services/core/java/com/android/server/am/ServiceRecord.java b/services/core/java/com/android/server/am/ServiceRecord.java
index b6eff003d26e..49a55cbf8e98 100644
--- a/services/core/java/com/android/server/am/ServiceRecord.java
+++ b/services/core/java/com/android/server/am/ServiceRecord.java
@@ -164,21 +164,20 @@ final class ServiceRecord extends Binder {
public void writeToProto(ProtoOutputStream proto, long fieldId, long now) {
long token = proto.start(fieldId);
- proto.write(ServiceRecordProto.StartItemProto.ID, id);
+ proto.write(ServiceRecordProto.StartItem.ID, id);
ProtoUtils.toDuration(proto,
- ServiceRecordProto.StartItemProto.DURATION, deliveredTime, now);
- proto.write(ServiceRecordProto.StartItemProto.DELIVERY_COUNT, deliveryCount);
- proto.write(ServiceRecordProto.StartItemProto.DONE_EXECUTING_COUNT, doneExecutingCount);
+ ServiceRecordProto.StartItem.DURATION, deliveredTime, now);
+ proto.write(ServiceRecordProto.StartItem.DELIVERY_COUNT, deliveryCount);
+ proto.write(ServiceRecordProto.StartItem.DONE_EXECUTING_COUNT, doneExecutingCount);
if (intent != null) {
- intent.writeToProto(proto, ServiceRecordProto.StartItemProto.INTENT, true, true,
+ intent.writeToProto(proto, ServiceRecordProto.StartItem.INTENT, true, true,
true, false);
}
if (neededGrants != null) {
- neededGrants.writeToProto(proto, ServiceRecordProto.StartItemProto.NEEDED_GRANTS);
+ neededGrants.writeToProto(proto, ServiceRecordProto.StartItem.NEEDED_GRANTS);
}
if (uriPermissions != null) {
- uriPermissions.writeToProto(proto,
- ServiceRecordProto.StartItemProto.URI_PERMISSIONS);
+ uriPermissions.writeToProto(proto, ServiceRecordProto.StartItem.URI_PERMISSIONS);
}
proto.end(token);
}
@@ -236,8 +235,6 @@ final class ServiceRecord extends Binder {
void writeToProto(ProtoOutputStream proto, long fieldId) {
long token = proto.start(fieldId);
proto.write(ServiceRecordProto.SHORT_NAME, this.shortName);
- proto.write(ServiceRecordProto.HEX_HASH,
- Integer.toHexString(System.identityHashCode(this)));
proto.write(ServiceRecordProto.IS_RUNNING, app != null);
if (app != null) {
proto.write(ServiceRecordProto.PID, app.pid);
diff --git a/services/core/java/com/android/server/am/UidRecord.java b/services/core/java/com/android/server/am/UidRecord.java
index 3886e5a9f965..d49f3baa7bcb 100644
--- a/services/core/java/com/android/server/am/UidRecord.java
+++ b/services/core/java/com/android/server/am/UidRecord.java
@@ -148,7 +148,6 @@ public final class UidRecord {
void writeToProto(ProtoOutputStream proto, long fieldId) {
long token = proto.start(fieldId);
- proto.write(UidRecordProto.HEX_HASH, Integer.toHexString(System.identityHashCode(this)));
proto.write(UidRecordProto.UID, uid);
proto.write(UidRecordProto.CURRENT, ProcessList.makeProcStateProtoEnum(curProcState));
proto.write(UidRecordProto.EPHEMERAL, ephemeral);
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncTask.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncTask.java
index 5bfdf41a6654..f46657c15b5a 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncTask.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/KeySyncTask.java
@@ -172,7 +172,7 @@ public class KeySyncTask implements Runnable {
private void syncKeysForAgent(int recoveryAgentUid) {
boolean recreateCurrentVersion = false;
- if (!shoudCreateSnapshot(recoveryAgentUid)) {
+ if (!shouldCreateSnapshot(recoveryAgentUid)) {
recreateCurrentVersion =
(mRecoverableKeyStoreDb.getSnapshotVersion(mUserId, recoveryAgentUid) != null)
&& (mRecoverySnapshotStorage.get(recoveryAgentUid) == null);
@@ -184,11 +184,6 @@ public class KeySyncTask implements Runnable {
}
}
- if (!mSnapshotListenersStorage.hasListener(recoveryAgentUid)) {
- Log.w(TAG, "No pending intent registered for recovery agent " + recoveryAgentUid);
- return;
- }
-
PublicKey publicKey;
CertPath certPath = mRecoverableKeyStoreDb.getRecoveryServiceCertPath(mUserId,
recoveryAgentUid);
@@ -313,7 +308,6 @@ public class KeySyncTask implements Runnable {
return;
}
mRecoverySnapshotStorage.put(recoveryAgentUid, keyChainSnapshotBuilder.build());
-
mSnapshotListenersStorage.recoverySnapshotAvailable(recoveryAgentUid);
}
@@ -354,7 +348,7 @@ public class KeySyncTask implements Runnable {
* Returns {@code true} if a sync is pending.
* @param recoveryAgentUid uid of the recovery agent.
*/
- private boolean shoudCreateSnapshot(int recoveryAgentUid) {
+ private boolean shouldCreateSnapshot(int recoveryAgentUid) {
int[] types = mRecoverableKeyStoreDb.getRecoverySecretTypes(mUserId, recoveryAgentUid);
if (!ArrayUtils.contains(types, KeyChainProtectionParams.TYPE_LOCKSCREEN)) {
// Only lockscreen type is supported.
diff --git a/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage.java b/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage.java
index c925329ed81c..bd9f0fdbe63d 100644
--- a/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage.java
+++ b/services/core/java/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage.java
@@ -18,6 +18,7 @@ package com.android.server.locksettings.recoverablekeystore;
import android.annotation.Nullable;
import android.app.PendingIntent;
+import android.util.ArraySet;
import android.util.Log;
import android.util.SparseArray;
@@ -36,6 +37,9 @@ public class RecoverySnapshotListenersStorage {
@GuardedBy("this")
private SparseArray<PendingIntent> mAgentIntents = new SparseArray<>();
+ @GuardedBy("this")
+ private ArraySet<Integer> mAgentsWithPendingSnapshots = new ArraySet<>();
+
/**
* Sets new listener for the recovery agent, identified by {@code uid}.
*
@@ -46,6 +50,11 @@ public class RecoverySnapshotListenersStorage {
int recoveryAgentUid, @Nullable PendingIntent intent) {
Log.i(TAG, "Registered listener for agent with uid " + recoveryAgentUid);
mAgentIntents.put(recoveryAgentUid, intent);
+
+ if (mAgentsWithPendingSnapshots.contains(recoveryAgentUid)) {
+ Log.i(TAG, "Snapshot already created for agent. Immediately triggering intent.");
+ tryToSendIntent(recoveryAgentUid, intent);
+ }
}
/**
@@ -56,21 +65,39 @@ public class RecoverySnapshotListenersStorage {
}
/**
- * Notifies recovery agent that new snapshot is available. Does nothing if a listener was not
- * registered.
+ * Notifies recovery agent that new snapshot is available. If a recovery agent has not yet
+ * registered a {@link PendingIntent}, remembers that a snapshot is pending for it, so that
+ * when it does register, that intent is immediately triggered.
*
* @param recoveryAgentUid uid of recovery agent.
*/
public synchronized void recoverySnapshotAvailable(int recoveryAgentUid) {
PendingIntent intent = mAgentIntents.get(recoveryAgentUid);
- if (intent != null) {
- try {
- intent.send();
- } catch (PendingIntent.CanceledException e) {
- Log.e(TAG,
- "Failed to trigger PendingIntent for " + recoveryAgentUid,
- e);
- }
+ if (intent == null) {
+ Log.i(TAG, "Snapshot available for agent " + recoveryAgentUid
+ + " but agent has not yet initialized. Will notify agent when it does.");
+ mAgentsWithPendingSnapshots.add(recoveryAgentUid);
+ return;
+ }
+
+ tryToSendIntent(recoveryAgentUid, intent);
+ }
+
+ /**
+ * Attempts to send {@code intent} for the recovery agent. If this fails, remembers to notify
+ * the recovery agent immediately if it registers a new intent.
+ */
+ private synchronized void tryToSendIntent(int recoveryAgentUid, PendingIntent intent) {
+ try {
+ intent.send();
+ mAgentsWithPendingSnapshots.remove(recoveryAgentUid);
+ Log.d(TAG, "Successfully notified listener.");
+ } catch (PendingIntent.CanceledException e) {
+ Log.e(TAG,
+ "Failed to trigger PendingIntent for " + recoveryAgentUid,
+ e);
+ // As it failed to trigger, trigger immediately if a new intent is registered later.
+ mAgentsWithPendingSnapshots.add(recoveryAgentUid);
}
}
}
diff --git a/services/core/java/com/android/server/power/batterysaver/BatterySavingStats.java b/services/core/java/com/android/server/power/batterysaver/BatterySavingStats.java
index 4fd86860d8f9..05549e70cd1c 100644
--- a/services/core/java/com/android/server/power/batterysaver/BatterySavingStats.java
+++ b/services/core/java/com/android/server/power/batterysaver/BatterySavingStats.java
@@ -163,8 +163,14 @@ public class BatterySavingStats {
private int mBatterySaverEnabledCount = 0;
@GuardedBy("mLock")
+ private boolean mIsBatterySaverEnabled;
+
+ @GuardedBy("mLock")
private long mLastBatterySaverEnabledTime = 0;
+ @GuardedBy("mLock")
+ private long mLastBatterySaverDisabledTime = 0;
+
private final MetricsLoggerHelper mMetricsLoggerHelper = new MetricsLoggerHelper();
@VisibleForTesting
@@ -312,11 +318,12 @@ public class BatterySavingStats {
final boolean newBatterySaverEnabled =
BatterySaverState.fromIndex(newState) != BatterySaverState.OFF;
if (oldBatterySaverEnabled != newBatterySaverEnabled) {
+ mIsBatterySaverEnabled = newBatterySaverEnabled;
if (newBatterySaverEnabled) {
mBatterySaverEnabledCount++;
mLastBatterySaverEnabledTime = injectCurrentTime();
} else {
- mLastBatterySaverEnabledTime = 0;
+ mLastBatterySaverDisabledTime = injectCurrentTime();
}
}
@@ -391,25 +398,35 @@ public class BatterySavingStats {
indent = indent + " ";
- pw.print(indent);
- pw.print("Battery Saver state: ");
- if (mLastBatterySaverEnabledTime == 0) {
- pw.print("OFF");
- } else {
- pw.print("ON since ");
-
- final long now = System.currentTimeMillis();
- final long nowElapsed = injectCurrentTime();
+ final long now = System.currentTimeMillis();
+ final long nowElapsed = injectCurrentTime();
+ final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+ pw.print(indent);
+ pw.print("Battery Saver is currently: ");
+ pw.println(mIsBatterySaverEnabled ? "ON" : "OFF");
+ if (mLastBatterySaverEnabledTime > 0) {
+ pw.print(indent);
+ pw.print(" ");
+ pw.print("Last ON time: ");
pw.print(sdf.format(new Date(now - nowElapsed + mLastBatterySaverEnabledTime)));
-
pw.print(" ");
TimeUtils.formatDuration(mLastBatterySaverEnabledTime, nowElapsed, pw);
+ pw.println();
+ }
+
+ if (mLastBatterySaverDisabledTime > 0) {
+ pw.print(indent);
+ pw.print(" ");
+ pw.print("Last OFF time: ");
+ pw.print(sdf.format(new Date(now - nowElapsed + mLastBatterySaverDisabledTime)));
+ pw.print(" ");
+ TimeUtils.formatDuration(mLastBatterySaverDisabledTime, nowElapsed, pw);
+ pw.println();
}
- pw.println();
pw.print(indent);
+ pw.print(" ");
pw.print("Times enabled: ");
pw.println(mBatterySaverEnabledCount);
diff --git a/services/core/java/com/android/server/wm/AppWindowContainerController.java b/services/core/java/com/android/server/wm/AppWindowContainerController.java
index 1170148d6781..1575694dc825 100644
--- a/services/core/java/com/android/server/wm/AppWindowContainerController.java
+++ b/services/core/java/com/android/server/wm/AppWindowContainerController.java
@@ -617,7 +617,8 @@ public class AppWindowContainerController
if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Schedule remove starting " + mContainer
+ " startingWindow=" + mContainer.startingWindow
- + " startingView=" + mContainer.startingSurface);
+ + " startingView=" + mContainer.startingSurface
+ + " Callers=" + Debug.getCallers(5));
// Use the same thread to remove the window as we used to add it, as otherwise we end up
// with things in the view hierarchy being called from different threads.
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index 1f71b8fa74ec..88cb54d126c1 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -2079,6 +2079,13 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
super.prepareSurfaces();
}
+ /**
+ * @return Whether our {@link #getSurfaceControl} is currently showing.
+ */
+ boolean isSurfaceShowing() {
+ return mLastSurfaceShowing;
+ }
+
boolean isFreezingScreen() {
return mFreezingScreen;
}
diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java
index 0b0df6ff588d..3e72a713272a 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimationController.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java
@@ -16,13 +16,16 @@
package com.android.server.wm;
+import static android.app.ActivityManagerInternal.APP_TRANSITION_RECENTS_ANIM;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
import static android.view.RemoteAnimationTarget.MODE_CLOSING;
import static android.view.WindowManager.INPUT_CONSUMER_RECENTS_ANIMATION;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
+import static com.android.server.wm.WindowManagerService.H.NOTIFY_APP_TRANSITION_STARTING;
import static com.android.server.wm.proto.RemoteAnimationAdapterWrapperProto.TARGET;
import static com.android.server.wm.proto.AnimationAdapterProto.REMOTE;
@@ -37,6 +40,7 @@ import android.util.ArraySet;
import android.util.Log;
import android.util.Slog;import android.util.proto.ProtoOutputStream;
import android.util.SparseBooleanArray;
+import android.util.SparseIntArray;
import android.util.proto.ProtoOutputStream;
import android.view.IRecentsAnimationController;
import android.view.IRecentsAnimationRunner;
@@ -279,6 +283,10 @@ public class RecentsAnimationController {
} catch (RemoteException e) {
Slog.e(TAG, "Failed to start recents animation", e);
}
+ final SparseIntArray reasons = new SparseIntArray();
+ reasons.put(WINDOWING_MODE_FULLSCREEN, APP_TRANSITION_RECENTS_ANIM);
+ mService.mH.obtainMessage(NOTIFY_APP_TRANSITION_STARTING,
+ reasons).sendToTarget();
}
void cancelAnimation() {
diff --git a/services/core/java/com/android/server/wm/TaskSnapshotController.java b/services/core/java/com/android/server/wm/TaskSnapshotController.java
index 9310dc488c74..970a8d76a0ab 100644
--- a/services/core/java/com/android/server/wm/TaskSnapshotController.java
+++ b/services/core/java/com/android/server/wm/TaskSnapshotController.java
@@ -247,7 +247,8 @@ class TaskSnapshotController {
// Ensure at least one window for the top app is visible before attempting to take
// a screenshot. Visible here means that the WSA surface is shown and has an alpha
// greater than 0.
- ws -> ws.mWinAnimator != null && ws.mWinAnimator.getShown()
+ ws -> (ws.mAppToken == null || ws.mAppToken.isSurfaceShowing())
+ && ws.mWinAnimator != null && ws.mWinAnimator.getShown()
&& ws.mWinAnimator.mLastAlpha > 0f, true);
if (!hasVisibleChild) {
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index c7ae5704ae50..5a3b26858806 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -566,7 +566,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
@NonNull PasswordMetrics mActivePasswordMetrics = new PasswordMetrics();
int mFailedPasswordAttempts = 0;
boolean mPasswordStateHasBeenSetSinceBoot = false;
- boolean mPasswordValidAtLastCheckpoint = false;
+ boolean mPasswordValidAtLastCheckpoint = true;
int mUserHandle;
int mPasswordOwner = -1;
@@ -3887,23 +3887,28 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
final PasswordMetrics metrics = ap.minimumPasswordMetrics;
if (metrics.quality != quality) {
metrics.quality = quality;
- updatePasswordValidityCheckpointLocked(userId);
- saveSettingsLocked(userId);
+ updatePasswordValidityCheckpointLocked(userId, parent);
}
maybeLogPasswordComplexitySet(who, userId, parent, metrics);
}
}
/**
- * Updates flag in memory that tells us whether the user's password currently satisfies the
- * requirements set by all of the user's active admins. This should be called before
- * {@link #saveSettingsLocked} whenever the password or the admin policies have changed.
+ * Updates a flag that tells us whether the user's password currently satisfies the
+ * requirements set by all of the user's active admins. The flag is updated both in memory
+ * and persisted to disk by calling {@link #saveSettingsLocked}, for the value of the flag
+ * be the correct one upon boot.
+ * This should be called whenever the password or the admin policies have changed.
*/
@GuardedBy("DevicePolicyManagerService.this")
- private void updatePasswordValidityCheckpointLocked(int userHandle) {
- DevicePolicyData policy = getUserData(userHandle);
- policy.mPasswordValidAtLastCheckpoint = isActivePasswordSufficientForUserLocked(
- policy, policy.mUserHandle, false);
+ private void updatePasswordValidityCheckpointLocked(int userHandle, boolean parent) {
+ final int credentialOwner = getCredentialOwner(userHandle, parent);
+ DevicePolicyData policy = getUserData(credentialOwner);
+ policy.mPasswordValidAtLastCheckpoint =
+ isPasswordSufficientForUserWithoutCheckpointLocked(
+ policy.mActivePasswordMetrics, userHandle, parent);
+
+ saveSettingsLocked(credentialOwner);
}
@Override
@@ -3990,8 +3995,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
final PasswordMetrics metrics = ap.minimumPasswordMetrics;
if (metrics.length != length) {
metrics.length = length;
- updatePasswordValidityCheckpointLocked(userId);
- saveSettingsLocked(userId);
+ updatePasswordValidityCheckpointLocked(userId, parent);
}
maybeLogPasswordComplexitySet(who, userId, parent, metrics);
}
@@ -4015,8 +4019,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
who, DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD, parent);
if (ap.passwordHistoryLength != length) {
ap.passwordHistoryLength = length;
- updatePasswordValidityCheckpointLocked(userId);
- saveSettingsLocked(userId);
+ updatePasswordValidityCheckpointLocked(userId, parent);
}
}
if (SecurityLog.isLoggingEnabled()) {
@@ -4217,8 +4220,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
final PasswordMetrics metrics = ap.minimumPasswordMetrics;
if (metrics.upperCase != length) {
metrics.upperCase = length;
- updatePasswordValidityCheckpointLocked(userId);
- saveSettingsLocked(userId);
+ updatePasswordValidityCheckpointLocked(userId, parent);
}
maybeLogPasswordComplexitySet(who, userId, parent, metrics);
}
@@ -4240,8 +4242,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
final PasswordMetrics metrics = ap.minimumPasswordMetrics;
if (metrics.lowerCase != length) {
metrics.lowerCase = length;
- updatePasswordValidityCheckpointLocked(userId);
- saveSettingsLocked(userId);
+ updatePasswordValidityCheckpointLocked(userId, parent);
}
maybeLogPasswordComplexitySet(who, userId, parent, metrics);
}
@@ -4266,8 +4267,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
final PasswordMetrics metrics = ap.minimumPasswordMetrics;
if (metrics.letters != length) {
metrics.letters = length;
- updatePasswordValidityCheckpointLocked(userId);
- saveSettingsLocked(userId);
+ updatePasswordValidityCheckpointLocked(userId, parent);
}
maybeLogPasswordComplexitySet(who, userId, parent, metrics);
}
@@ -4292,8 +4292,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
final PasswordMetrics metrics = ap.minimumPasswordMetrics;
if (metrics.numeric != length) {
metrics.numeric = length;
- updatePasswordValidityCheckpointLocked(userId);
- saveSettingsLocked(userId);
+ updatePasswordValidityCheckpointLocked(userId, parent);
}
maybeLogPasswordComplexitySet(who, userId, parent, metrics);
}
@@ -4318,8 +4317,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
final PasswordMetrics metrics = ap.minimumPasswordMetrics;
if (metrics.symbols != length) {
ap.minimumPasswordMetrics.symbols = length;
- updatePasswordValidityCheckpointLocked(userId);
- saveSettingsLocked(userId);
+ updatePasswordValidityCheckpointLocked(userId, parent);
}
maybeLogPasswordComplexitySet(who, userId, parent, metrics);
}
@@ -4344,8 +4342,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
final PasswordMetrics metrics = ap.minimumPasswordMetrics;
if (metrics.nonLetter != length) {
ap.minimumPasswordMetrics.nonLetter = length;
- updatePasswordValidityCheckpointLocked(userId);
- saveSettingsLocked(userId);
+ updatePasswordValidityCheckpointLocked(userId, parent);
}
maybeLogPasswordComplexitySet(who, userId, parent, metrics);
}
@@ -4566,16 +4563,6 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
private boolean isActivePasswordSufficientForUserLocked(
DevicePolicyData policy, int userHandle, boolean parent) {
- final int requiredPasswordQuality = getPasswordQuality(null, userHandle, parent);
- if (requiredPasswordQuality == PASSWORD_QUALITY_UNSPECIFIED) {
- // A special case is when there is no required password quality, then we just return
- // true since any password would be sufficient. This is for the scenario when a work
- // profile is first created so there is no information about the current password but
- // it should be considered sufficient as there is no password requirement either.
- // This is useful since it short-circuits the password checkpoint for FDE device below.
- return true;
- }
-
if (!mInjector.storageManagerIsFileBasedEncryptionEnabled()
&& !policy.mPasswordStateHasBeenSetSinceBoot) {
// Before user enters their password for the first time after a reboot, return the
@@ -4586,28 +4573,41 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
return policy.mPasswordValidAtLastCheckpoint;
}
- if (policy.mActivePasswordMetrics.quality < requiredPasswordQuality) {
+ return isPasswordSufficientForUserWithoutCheckpointLocked(
+ policy.mActivePasswordMetrics, userHandle, parent);
+ }
+
+ /**
+ * Returns {@code true} if the password represented by the {@code passwordMetrics} argument
+ * sufficiently fulfills the password requirements for the user corresponding to
+ * {@code userHandle} (or its parent, if {@code parent} is set to {@code true}).
+ */
+ private boolean isPasswordSufficientForUserWithoutCheckpointLocked(
+ PasswordMetrics passwordMetrics, int userHandle, boolean parent) {
+ final int requiredPasswordQuality = getPasswordQuality(null, userHandle, parent);
+
+ if (passwordMetrics.quality < requiredPasswordQuality) {
return false;
}
if (requiredPasswordQuality >= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC
- && policy.mActivePasswordMetrics.length < getPasswordMinimumLength(
+ && passwordMetrics.length < getPasswordMinimumLength(
null, userHandle, parent)) {
return false;
}
if (requiredPasswordQuality != DevicePolicyManager.PASSWORD_QUALITY_COMPLEX) {
return true;
}
- return policy.mActivePasswordMetrics.upperCase >= getPasswordMinimumUpperCase(
+ return passwordMetrics.upperCase >= getPasswordMinimumUpperCase(
null, userHandle, parent)
- && policy.mActivePasswordMetrics.lowerCase >= getPasswordMinimumLowerCase(
+ && passwordMetrics.lowerCase >= getPasswordMinimumLowerCase(
null, userHandle, parent)
- && policy.mActivePasswordMetrics.letters >= getPasswordMinimumLetters(
+ && passwordMetrics.letters >= getPasswordMinimumLetters(
null, userHandle, parent)
- && policy.mActivePasswordMetrics.numeric >= getPasswordMinimumNumeric(
+ && passwordMetrics.numeric >= getPasswordMinimumNumeric(
null, userHandle, parent)
- && policy.mActivePasswordMetrics.symbols >= getPasswordMinimumSymbols(
+ && passwordMetrics.symbols >= getPasswordMinimumSymbols(
null, userHandle, parent)
- && policy.mActivePasswordMetrics.nonLetter >= getPasswordMinimumNonLetter(
+ && passwordMetrics.nonLetter >= getPasswordMinimumNonLetter(
null, userHandle, parent);
}
@@ -6148,8 +6148,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
try {
synchronized (this) {
policy.mFailedPasswordAttempts = 0;
- updatePasswordValidityCheckpointLocked(userId);
- saveSettingsLocked(userId);
+ updatePasswordValidityCheckpointLocked(userId, /* parent */ false);
updatePasswordExpirationsLocked(userId);
setExpirationAlarmCheckLocked(mContext, userId, /* parent */ false);
diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java
index f17bfa456c88..1a95fdd0b62c 100644
--- a/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java
+++ b/services/tests/servicestests/src/com/android/server/am/ActivityStackTests.java
@@ -37,12 +37,15 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import android.app.servertransaction.DestroyActivityItem;
import android.content.pm.ActivityInfo;
+import android.os.Debug;
import android.os.UserHandle;
import android.platform.test.annotations.Presubmit;
import android.support.test.filters.SmallTest;
@@ -518,4 +521,37 @@ public class ActivityStackTests extends ActivityTestsBase {
assertTrue(mTask.mActivities.isEmpty());
assertTrue(mStack.getAllTasks().isEmpty());
}
+
+ @Test
+ public void testShouldSleepActivities() throws Exception {
+ // When focused activity and keyguard is going away, we should not sleep regardless
+ // of the display state
+ verifyShouldSleepActivities(true /* focusedStack */, true /*keyguardGoingAway*/,
+ true /* displaySleeping */, false /* expected*/);
+
+ // When not the focused stack, defer to display sleeping state.
+ verifyShouldSleepActivities(false /* focusedStack */, true /*keyguardGoingAway*/,
+ true /* displaySleeping */, true /* expected*/);
+
+ // If keyguard is going away, defer to the display sleeping state.
+ verifyShouldSleepActivities(true /* focusedStack */, false /*keyguardGoingAway*/,
+ true /* displaySleeping */, true /* expected*/);
+ verifyShouldSleepActivities(true /* focusedStack */, false /*keyguardGoingAway*/,
+ false /* displaySleeping */, false /* expected*/);
+ }
+
+ private void verifyShouldSleepActivities(boolean focusedStack,
+ boolean keyguardGoingAway, boolean displaySleeping, boolean expected) {
+ mSupervisor.mFocusedStack = focusedStack ? mStack : null;
+
+ final ActivityDisplay display = mock(ActivityDisplay.class);
+ final KeyguardController keyguardController = mSupervisor.getKeyguardController();
+
+ doReturn(display).when(mSupervisor).getActivityDisplay(anyInt());
+ doReturn(keyguardGoingAway).when(keyguardController).isKeyguardGoingAway();
+ doReturn(displaySleeping).when(display).isSleeping();
+
+ assertEquals(expected, mStack.shouldSleepActivities());
+ }
+
}
diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java b/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java
index 3041a5f2cd55..c130592b4cd3 100644
--- a/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java
+++ b/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java
@@ -316,6 +316,7 @@ public class ActivityTestsBase {
@Override
final protected ActivityStackSupervisor createStackSupervisor() {
final ActivityStackSupervisor supervisor = spy(createTestSupervisor());
+ final KeyguardController keyguardController = mock(KeyguardController.class);
// No home stack is set.
doNothing().when(supervisor).moveHomeStackToFront(any());
@@ -330,6 +331,7 @@ public class ActivityTestsBase {
doNothing().when(supervisor).scheduleIdleTimeoutLocked(any());
// unit test version does not handle launch wake lock
doNothing().when(supervisor).acquireLaunchWakelock();
+ doReturn(keyguardController).when(supervisor).getKeyguardController();
supervisor.initialize();
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/MockUtils.java b/services/tests/servicestests/src/com/android/server/devicepolicy/MockUtils.java
index 92ea76656693..17e58325734f 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/MockUtils.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/MockUtils.java
@@ -22,6 +22,7 @@ import com.android.server.pm.UserRestrictionsUtils;
import android.content.ComponentName;
import android.content.Intent;
+import android.os.BaseBundle;
import android.os.Bundle;
import android.os.UserHandle;
import android.util.ArraySet;
@@ -92,7 +93,10 @@ public class MockUtils {
public boolean matches(Object item) {
if (item == null) return false;
if (!intent.filterEquals((Intent) item)) return false;
- return intent.getExtras().kindofEquals(((Intent) item).getExtras());
+ BaseBundle extras = intent.getExtras();
+ BaseBundle itemExtras = ((Intent) item).getExtras();
+ return (extras == itemExtras) || (extras != null &&
+ extras.kindofEquals(itemExtras));
}
@Override
public void describeTo(Description description) {
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncTaskTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncTaskTest.java
index e9289e5cadf3..69796b33c2eb 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncTaskTest.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/KeySyncTaskTest.java
@@ -30,6 +30,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.never;
@@ -240,10 +241,8 @@ public class KeySyncTaskTest {
}
@Test
- public void run_doesNotSendAnythingIfNoRecoveryAgentPendingIntentRegistered() throws Exception {
+ public void run_doesNotSendAnythingIfNoDeviceIdIsSet() throws Exception {
SecretKey applicationKey = generateKey();
- mRecoverableKeyStoreDb.setServerParams(
- TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_VAULT_HANDLE);
mRecoverableKeyStoreDb.setPlatformKeyGenerationId(TEST_USER_ID, TEST_GENERATION_ID);
mRecoverableKeyStoreDb.insertKey(
TEST_USER_ID,
@@ -252,6 +251,7 @@ public class KeySyncTaskTest {
WrappedKey.fromSecretKey(mEncryptKey, applicationKey));
mRecoverableKeyStoreDb.setRecoveryServicePublicKey(
TEST_USER_ID, TEST_RECOVERY_AGENT_UID, mKeyPair.getPublic());
+ when(mSnapshotListenersStorage.hasListener(TEST_RECOVERY_AGENT_UID)).thenReturn(true);
mKeySyncTask.run();
@@ -259,21 +259,18 @@ public class KeySyncTaskTest {
}
@Test
- public void run_doesNotSendAnythingIfNoDeviceIdIsSet() throws Exception {
- SecretKey applicationKey = generateKey();
+ public void run_stillCreatesSnapshotIfNoRecoveryAgentPendingIntentRegistered()
+ throws Exception {
+ mRecoverableKeyStoreDb.setServerParams(
+ TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_VAULT_HANDLE);
mRecoverableKeyStoreDb.setPlatformKeyGenerationId(TEST_USER_ID, TEST_GENERATION_ID);
- mRecoverableKeyStoreDb.insertKey(
- TEST_USER_ID,
- TEST_RECOVERY_AGENT_UID,
- TEST_APP_KEY_ALIAS,
- WrappedKey.fromSecretKey(mEncryptKey, applicationKey));
+ addApplicationKey(TEST_USER_ID, TEST_RECOVERY_AGENT_UID, TEST_APP_KEY_ALIAS);
mRecoverableKeyStoreDb.setRecoveryServicePublicKey(
TEST_USER_ID, TEST_RECOVERY_AGENT_UID, mKeyPair.getPublic());
- when(mSnapshotListenersStorage.hasListener(TEST_RECOVERY_AGENT_UID)).thenReturn(true);
mKeySyncTask.run();
- assertNull(mRecoverySnapshotStorage.get(TEST_RECOVERY_AGENT_UID));
+ assertNotNull(mRecoverySnapshotStorage.get(TEST_RECOVERY_AGENT_UID));
}
@Test
@@ -502,7 +499,7 @@ public class KeySyncTaskTest {
}
@Test
- public void run_doesNotSendKeyToNonregisteredAgent() throws Exception {
+ public void run_notifiesNonregisteredAgent() throws Exception {
mRecoverableKeyStoreDb.setRecoveryServicePublicKey(
TEST_USER_ID, TEST_RECOVERY_AGENT_UID, mKeyPair.getPublic());
mRecoverableKeyStoreDb.setRecoveryServicePublicKey(
@@ -514,8 +511,7 @@ public class KeySyncTaskTest {
mKeySyncTask.run();
verify(mSnapshotListenersStorage).recoverySnapshotAvailable(TEST_RECOVERY_AGENT_UID);
- verify(mSnapshotListenersStorage, never()).
- recoverySnapshotAvailable(TEST_RECOVERY_AGENT_UID2);
+ verify(mSnapshotListenersStorage).recoverySnapshotAvailable(TEST_RECOVERY_AGENT_UID2);
}
@Test
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorageTest.java b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorageTest.java
index b9c176452b9e..acc200fa81ad 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorageTest.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorageTest.java
@@ -4,7 +4,10 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.Context;
import android.content.Intent;
+import android.content.IntentFilter;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;
@@ -12,10 +15,18 @@ import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
@SmallTest
@RunWith(AndroidJUnit4.class)
public class RecoverySnapshotListenersStorageTest {
+ private static final String TEST_INTENT_ACTION =
+ "com.android.server.locksettings.recoverablekeystore.RECOVERY_SNAPSHOT_TEST_ACTION";
+
+ private static final int TEST_TIMEOUT_SECONDS = 1;
+
private final RecoverySnapshotListenersStorage mStorage =
new RecoverySnapshotListenersStorage();
@@ -28,10 +39,55 @@ public class RecoverySnapshotListenersStorageTest {
public void hasListener_isTrueForRegisteredUid() {
int recoveryAgentUid = 1000;
PendingIntent intent = PendingIntent.getBroadcast(
- InstrumentationRegistry.getTargetContext(), /*requestCode=*/1,
+ InstrumentationRegistry.getTargetContext(), /*requestCode=*/ 1,
new Intent(), /*flags=*/ 0);
mStorage.setSnapshotListener(recoveryAgentUid, intent);
assertTrue(mStorage.hasListener(recoveryAgentUid));
}
+
+ @Test
+ public void setSnapshotListener_invokesIntentImmediatelyIfPreviouslyNotified()
+ throws Exception {
+ Context context = InstrumentationRegistry.getTargetContext();
+ int recoveryAgentUid = 1000;
+ mStorage.recoverySnapshotAvailable(recoveryAgentUid);
+ PendingIntent intent = PendingIntent.getBroadcast(
+ context, /*requestCode=*/ 0, new Intent(TEST_INTENT_ACTION), /*flags=*/0);
+ CountDownLatch latch = new CountDownLatch(1);
+ context.registerReceiver(new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ context.unregisterReceiver(this);
+ latch.countDown();
+ }
+ }, new IntentFilter(TEST_INTENT_ACTION));
+
+ mStorage.setSnapshotListener(recoveryAgentUid, intent);
+
+ assertTrue(latch.await(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS));
+ }
+
+ @Test
+ public void setSnapshotListener_doesNotRepeatedlyInvokeListener() throws Exception {
+ Context context = InstrumentationRegistry.getTargetContext();
+ int recoveryAgentUid = 1000;
+ mStorage.recoverySnapshotAvailable(recoveryAgentUid);
+ PendingIntent intent = PendingIntent.getBroadcast(
+ context, /*requestCode=*/ 0, new Intent(TEST_INTENT_ACTION), /*flags=*/0);
+ CountDownLatch latch = new CountDownLatch(2);
+ BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ latch.countDown();
+ }
+ };
+ context.registerReceiver(broadcastReceiver, new IntentFilter(TEST_INTENT_ACTION));
+
+ mStorage.setSnapshotListener(recoveryAgentUid, intent);
+ mStorage.setSnapshotListener(recoveryAgentUid, intent);
+
+ assertFalse(latch.await(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS));
+ context.unregisterReceiver(broadcastReceiver);
+ }
}
diff --git a/services/tests/servicestests/src/com/android/server/usage/AppTimeLimitControllerTests.java b/services/tests/servicestests/src/com/android/server/usage/AppTimeLimitControllerTests.java
new file mode 100644
index 000000000000..6b52ee5f4408
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/usage/AppTimeLimitControllerTests.java
@@ -0,0 +1,256 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.usage;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.app.PendingIntent;
+import android.os.HandlerThread;
+import android.os.Looper;
+import android.support.test.filters.MediumTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+@RunWith(AndroidJUnit4.class)
+@MediumTest
+public class AppTimeLimitControllerTests {
+
+ private static final String PKG_SOC1 = "package.soc1";
+ private static final String PKG_SOC2 = "package.soc2";
+ private static final String PKG_GAME1 = "package.game1";
+ private static final String PKG_GAME2 = "package.game2";
+ private static final String PKG_PROD = "package.prod";
+
+ private static final int UID = 10100;
+ private static final int USER_ID = 10;
+ private static final int OBS_ID1 = 1;
+ private static final int OBS_ID2 = 2;
+ private static final int OBS_ID3 = 3;
+
+ private static final long TIME_30_MIN = 30 * 60_1000L;
+ private static final long TIME_10_MIN = 10 * 60_1000L;
+
+ private static final String[] GROUP1 = {
+ PKG_SOC1, PKG_GAME1, PKG_PROD
+ };
+
+ private static final String[] GROUP_SOC = {
+ PKG_SOC1, PKG_SOC2
+ };
+
+ private static final String[] GROUP_GAME = {
+ PKG_GAME1, PKG_GAME2
+ };
+
+ private final CountDownLatch mCountDownLatch = new CountDownLatch(1);
+
+ private AppTimeLimitController mController;
+
+ private HandlerThread mThread;
+
+ private long mUptimeMillis;
+
+ AppTimeLimitController.OnLimitReachedListener mListener
+ = new AppTimeLimitController.OnLimitReachedListener() {
+
+ @Override
+ public void onLimitReached(int observerId, int userId, long timeLimit, long timeElapsed,
+ PendingIntent callbackIntent) {
+ mCountDownLatch.countDown();
+ }
+ };
+
+ class MyAppTimeLimitController extends AppTimeLimitController {
+ MyAppTimeLimitController(AppTimeLimitController.OnLimitReachedListener listener,
+ Looper looper) {
+ super(listener, looper);
+ }
+
+ @Override
+ protected long getUptimeMillis() {
+ return mUptimeMillis;
+ }
+ }
+
+ @Before
+ public void setUp() {
+ mThread = new HandlerThread("Test");
+ mThread.start();
+ mController = new MyAppTimeLimitController(mListener, mThread.getLooper());
+ }
+
+ @After
+ public void tearDown() {
+ mThread.quit();
+ }
+
+ /** Verify observer is added */
+ @Test
+ public void testAddObserver() {
+ addObserver(OBS_ID1, GROUP1, TIME_30_MIN);
+ assertTrue("Observer wasn't added", hasObserver(OBS_ID1));
+ addObserver(OBS_ID2, GROUP_GAME, TIME_30_MIN);
+ assertTrue("Observer wasn't added", hasObserver(OBS_ID2));
+ assertTrue("Observer wasn't added", hasObserver(OBS_ID1));
+ }
+
+ /** Verify observer is removed */
+ @Test
+ public void testRemoveObserver() {
+ addObserver(OBS_ID1, GROUP1, TIME_30_MIN);
+ assertTrue("Observer wasn't added", hasObserver(OBS_ID1));
+ mController.removeObserver(UID, OBS_ID1, USER_ID);
+ assertFalse("Observer wasn't removed", hasObserver(OBS_ID1));
+ }
+
+ /** Re-adding an observer should result in only one copy */
+ @Test
+ public void testObserverReAdd() {
+ addObserver(OBS_ID1, GROUP1, TIME_30_MIN);
+ assertTrue("Observer wasn't added", hasObserver(OBS_ID1));
+ addObserver(OBS_ID1, GROUP1, TIME_10_MIN);
+ assertTrue("Observer wasn't added",
+ mController.getObserverGroup(OBS_ID1, USER_ID).timeLimit == TIME_10_MIN);
+ mController.removeObserver(UID, OBS_ID1, USER_ID);
+ assertFalse("Observer wasn't removed", hasObserver(OBS_ID1));
+ }
+
+ /** Verify that usage across different apps within a group are added up */
+ @Test
+ public void testAccumulation() throws Exception {
+ setTime(0L);
+ addObserver(OBS_ID1, GROUP1, TIME_30_MIN);
+ moveToForeground(PKG_SOC1);
+ // Add 10 mins
+ setTime(TIME_10_MIN);
+ moveToBackground(PKG_SOC1);
+
+ long timeRemaining = mController.getObserverGroup(OBS_ID1, USER_ID).timeRemaining;
+ assertEquals(TIME_10_MIN * 2, timeRemaining);
+
+ moveToForeground(PKG_SOC1);
+ setTime(TIME_10_MIN * 2);
+ moveToBackground(PKG_SOC1);
+
+ timeRemaining = mController.getObserverGroup(OBS_ID1, USER_ID).timeRemaining;
+ assertEquals(TIME_10_MIN, timeRemaining);
+
+ setTime(TIME_30_MIN);
+
+ assertFalse(mCountDownLatch.await(100L, TimeUnit.MILLISECONDS));
+
+ // Add a different package in the group
+ moveToForeground(PKG_GAME1);
+ setTime(TIME_30_MIN + TIME_10_MIN);
+ moveToBackground(PKG_GAME1);
+
+ assertEquals(0, mController.getObserverGroup(OBS_ID1, USER_ID).timeRemaining);
+ assertTrue(mCountDownLatch.await(100L, TimeUnit.MILLISECONDS));
+ }
+
+ /** Verify that time limit does not get triggered due to a different app */
+ @Test
+ public void testTimeoutOtherApp() throws Exception {
+ setTime(0L);
+ addObserver(OBS_ID1, GROUP1, 4_000L);
+ moveToForeground(PKG_SOC2);
+ assertFalse(mCountDownLatch.await(6_000L, TimeUnit.MILLISECONDS));
+ setTime(6_000L);
+ moveToBackground(PKG_SOC2);
+ assertFalse(mCountDownLatch.await(100L, TimeUnit.MILLISECONDS));
+ }
+
+ /** Verify the timeout message is delivered at the right time */
+ @Test
+ public void testTimeout() throws Exception {
+ setTime(0L);
+ addObserver(OBS_ID1, GROUP1, 4_000L);
+ moveToForeground(PKG_SOC1);
+ setTime(6_000L);
+ assertTrue(mCountDownLatch.await(6_000L, TimeUnit.MILLISECONDS));
+ moveToBackground(PKG_SOC1);
+ // Verify that the observer was removed
+ assertFalse(hasObserver(OBS_ID1));
+ }
+
+ /** If an app was already running, make sure it is partially counted towards the time limit */
+ @Test
+ public void testAlreadyRunning() throws Exception {
+ setTime(TIME_10_MIN);
+ moveToForeground(PKG_GAME1);
+ setTime(TIME_30_MIN);
+ addObserver(OBS_ID2, GROUP_GAME, TIME_30_MIN);
+ setTime(TIME_30_MIN + TIME_10_MIN);
+ moveToBackground(PKG_GAME1);
+ assertFalse(mCountDownLatch.await(1000L, TimeUnit.MILLISECONDS));
+
+ moveToForeground(PKG_GAME2);
+ setTime(TIME_30_MIN + TIME_30_MIN);
+ moveToBackground(PKG_GAME2);
+ assertTrue(mCountDownLatch.await(1000L, TimeUnit.MILLISECONDS));
+ // Verify that the observer was removed
+ assertFalse(hasObserver(OBS_ID2));
+ }
+
+ /** If watched app is already running, verify the timeout callback happens at the right time */
+ @Test
+ public void testAlreadyRunningTimeout() throws Exception {
+ setTime(0);
+ moveToForeground(PKG_SOC1);
+ setTime(TIME_10_MIN);
+ // 10 second time limit
+ addObserver(OBS_ID1, GROUP_SOC, 10_000L);
+ setTime(TIME_10_MIN + 5_000L);
+ // Shouldn't call back in 6 seconds
+ assertFalse(mCountDownLatch.await(6_000L, TimeUnit.MILLISECONDS));
+ setTime(TIME_10_MIN + 10_000L);
+ // Should call back by 11 seconds (6 earlier + 5 now)
+ assertTrue(mCountDownLatch.await(5_000L, TimeUnit.MILLISECONDS));
+ // Verify that the observer was removed
+ assertFalse(hasObserver(OBS_ID1));
+ }
+
+ private void moveToForeground(String packageName) {
+ mController.moveToForeground(packageName, "class", USER_ID);
+ }
+
+ private void moveToBackground(String packageName) {
+ mController.moveToBackground(packageName, "class", USER_ID);
+ }
+
+ private void addObserver(int observerId, String[] packages, long timeLimit) {
+ mController.addObserver(UID, observerId, packages, timeLimit, null, USER_ID);
+ }
+
+ /** Is there still an observer by that id */
+ private boolean hasObserver(int observerId) {
+ return mController.getObserverGroup(observerId, USER_ID) != null;
+ }
+
+ private void setTime(long time) {
+ mUptimeMillis = time;
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
index ccde049b99ca..4f49a4ae6467 100644
--- a/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
@@ -33,7 +33,6 @@ import static com.android.server.wm.WindowContainer.POSITION_TOP;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import android.support.test.filters.FlakyTest;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -302,7 +301,6 @@ public class DisplayContentTests extends WindowTestsBase {
}
@Test
- @FlakyTest(bugId = 37908381)
public void testFocusedWindowMultipleDisplays() throws Exception {
// Create a focusable window and check that focus is calculated correctly
final WindowState window1 =
diff --git a/services/tests/uiservicestests/AndroidManifest.xml b/services/tests/uiservicestests/AndroidManifest.xml
index fc459a0fc5b8..4c7046676adb 100644
--- a/services/tests/uiservicestests/AndroidManifest.xml
+++ b/services/tests/uiservicestests/AndroidManifest.xml
@@ -27,6 +27,7 @@
<uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />
<uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
+ <uses-permission android:name="android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY" />
<application android:debuggable="true">
<uses-library android:name="android.test.runner" />
diff --git a/services/usage/java/com/android/server/usage/AppTimeLimitController.java b/services/usage/java/com/android/server/usage/AppTimeLimitController.java
new file mode 100644
index 000000000000..9cd05933d845
--- /dev/null
+++ b/services/usage/java/com/android/server/usage/AppTimeLimitController.java
@@ -0,0 +1,464 @@
+/**
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.android.server.usage;
+
+import android.annotation.UserIdInt;
+import android.app.PendingIntent;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.SystemClock;
+import android.text.TextUtils;
+import android.util.ArrayMap;
+import android.util.Slog;
+import android.util.SparseArray;
+
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.ArrayUtils;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+/**
+ * Monitors and informs of any app time limits exceeded. It must be informed when an app
+ * enters the foreground and exits. Used by UsageStatsService. Manages multiple users.
+ *
+ * Test: atest FrameworksServicesTests:AppTimeLimitControllerTests
+ * Test: manual: frameworks/base/tests/UsageStatsTest
+ */
+public class AppTimeLimitController {
+
+ private static final String TAG = "AppTimeLimitController";
+
+ private static final boolean DEBUG = false;
+
+ /** Lock class for this object */
+ private static class Lock {}
+
+ /** Lock object for the data in this class. */
+ private final Lock mLock = new Lock();
+
+ private final MyHandler mHandler;
+
+ private OnLimitReachedListener mListener;
+
+ @GuardedBy("mLock")
+ private final SparseArray<UserData> mUsers = new SparseArray<>();
+
+ private static class UserData {
+ /** userId of the user */
+ private @UserIdInt int userId;
+
+ /** The app that is currently in the foreground */
+ private String currentForegroundedPackage;
+
+ /** The time when the current app came to the foreground */
+ private long currentForegroundedTime;
+
+ /** The last app that was in the background */
+ private String lastBackgroundedPackage;
+
+ /** Map from package name for quick lookup */
+ private ArrayMap<String, ArrayList<TimeLimitGroup>> packageMap = new ArrayMap<>();
+
+ /** Map of observerId to details of the time limit group */
+ private SparseArray<TimeLimitGroup> groups = new SparseArray<>();
+
+ UserData(@UserIdInt int userId) {
+ this.userId = userId;
+ }
+ }
+
+ /**
+ * Listener interface for being informed when an app group's time limit is reached.
+ */
+ public interface OnLimitReachedListener {
+ /**
+ * Time limit for a group, keyed by the observerId, has been reached.
+ * @param observerId The observerId of the group whose limit was reached
+ * @param userId The userId
+ * @param timeLimit The original time limit in milliseconds
+ * @param timeElapsed How much time was actually spent on apps in the group, in milliseconds
+ * @param callbackIntent The PendingIntent to send when the limit is reached
+ */
+ public void onLimitReached(int observerId, @UserIdInt int userId, long timeLimit,
+ long timeElapsed, PendingIntent callbackIntent);
+ }
+
+ static class TimeLimitGroup {
+ int requestingUid;
+ int observerId;
+ String[] packages;
+ long timeLimit;
+ long timeRequested;
+ long timeRemaining;
+ PendingIntent callbackIntent;
+ String currentPackage;
+ long timeCurrentPackageStarted;
+ int userId;
+ }
+
+ class MyHandler extends Handler {
+
+ static final int MSG_CHECK_TIMEOUT = 1;
+ static final int MSG_INFORM_LISTENER = 2;
+
+ MyHandler(Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case MSG_CHECK_TIMEOUT:
+ checkTimeout((TimeLimitGroup) msg.obj);
+ break;
+ case MSG_INFORM_LISTENER:
+ informListener((TimeLimitGroup) msg.obj);
+ break;
+ default:
+ super.handleMessage(msg);
+ break;
+ }
+ }
+ }
+
+ public AppTimeLimitController(OnLimitReachedListener listener, Looper looper) {
+ mHandler = new MyHandler(looper);
+ mListener = listener;
+ }
+
+ /** Overrideable by a test */
+ @VisibleForTesting
+ protected long getUptimeMillis() {
+ return SystemClock.uptimeMillis();
+ }
+
+ /** Returns an existing UserData object for the given userId, or creates one */
+ UserData getOrCreateUserDataLocked(int userId) {
+ UserData userData = mUsers.get(userId);
+ if (userData == null) {
+ userData = new UserData(userId);
+ mUsers.put(userId, userData);
+ }
+ return userData;
+ }
+
+ /** Clean up data if user is removed */
+ public void onUserRemoved(int userId) {
+ synchronized (mLock) {
+ // TODO: Remove any inflight delayed messages
+ mUsers.remove(userId);
+ }
+ }
+
+ /**
+ * Registers an observer with the given details. Existing observer with the same observerId
+ * is removed.
+ */
+ public void addObserver(int requestingUid, int observerId, String[] packages, long timeLimit,
+ PendingIntent callbackIntent, @UserIdInt int userId) {
+ synchronized (mLock) {
+ UserData user = getOrCreateUserDataLocked(userId);
+
+ removeObserverLocked(user, requestingUid, observerId);
+
+ TimeLimitGroup group = new TimeLimitGroup();
+ group.observerId = observerId;
+ group.callbackIntent = callbackIntent;
+ group.packages = packages;
+ group.timeLimit = timeLimit;
+ group.timeRemaining = group.timeLimit;
+ group.timeRequested = getUptimeMillis();
+ group.requestingUid = requestingUid;
+ group.timeCurrentPackageStarted = -1L;
+ group.userId = userId;
+
+ user.groups.append(observerId, group);
+
+ addGroupToPackageMapLocked(user, packages, group);
+
+ if (DEBUG) {
+ Slog.d(TAG, "addObserver " + packages + " for " + timeLimit);
+ }
+ // Handle the case where a target package is already in the foreground when observer
+ // is added.
+ if (user.currentForegroundedPackage != null && inPackageList(group.packages,
+ user.currentForegroundedPackage)) {
+ group.timeCurrentPackageStarted = group.timeRequested;
+ group.currentPackage = user.currentForegroundedPackage;
+ if (group.timeRemaining > 0) {
+ postCheckTimeoutLocked(group, group.timeRemaining);
+ }
+ }
+ }
+ }
+
+ /**
+ * Remove a registered observer by observerId and calling uid.
+ * @param requestingUid The calling uid
+ * @param observerId The unique observer id for this user
+ * @param userId The user id of the observer
+ */
+ public void removeObserver(int requestingUid, int observerId, @UserIdInt int userId) {
+ synchronized (mLock) {
+ UserData user = getOrCreateUserDataLocked(userId);
+ removeObserverLocked(user, requestingUid, observerId);
+ }
+ }
+
+ @VisibleForTesting
+ TimeLimitGroup getObserverGroup(int observerId, int userId) {
+ synchronized (mLock) {
+ return getOrCreateUserDataLocked(userId).groups.get(observerId);
+ }
+ }
+
+ private static boolean inPackageList(String[] packages, String packageName) {
+ return ArrayUtils.contains(packages, packageName);
+ }
+
+ @GuardedBy("mLock")
+ private void removeObserverLocked(UserData user, int requestingUid, int observerId) {
+ TimeLimitGroup group = user.groups.get(observerId);
+ if (group != null && group.requestingUid == requestingUid) {
+ removeGroupFromPackageMapLocked(user, group);
+ user.groups.remove(observerId);
+ mHandler.removeMessages(MyHandler.MSG_CHECK_TIMEOUT, group);
+ }
+ }
+
+ /**
+ * Called when an app has moved to the foreground.
+ * @param packageName The app that is foregrounded
+ * @param className The className of the activity
+ * @param userId The user
+ */
+ public void moveToForeground(String packageName, String className, int userId) {
+ synchronized (mLock) {
+ UserData user = getOrCreateUserDataLocked(userId);
+ if (DEBUG) Slog.d(TAG, "Setting mCurrentForegroundedPackage to " + packageName);
+ // Note the current foreground package
+ user.currentForegroundedPackage = packageName;
+ user.currentForegroundedTime = getUptimeMillis();
+
+ // Check if the last package that was backgrounded is the same as this one
+ if (!TextUtils.equals(packageName, user.lastBackgroundedPackage)) {
+ // TODO: Move this logic up to usage stats to persist there.
+ incTotalLaunchesLocked(user, packageName);
+ }
+
+ // Check if any of the groups need to watch for this package
+ maybeWatchForPackageLocked(user, packageName, user.currentForegroundedTime);
+ }
+ }
+
+ /**
+ * Called when an app is sent to the background.
+ *
+ * @param packageName
+ * @param className
+ * @param userId
+ */
+ public void moveToBackground(String packageName, String className, int userId) {
+ synchronized (mLock) {
+ UserData user = getOrCreateUserDataLocked(userId);
+ user.lastBackgroundedPackage = packageName;
+ if (!TextUtils.equals(user.currentForegroundedPackage, packageName)) {
+ Slog.w(TAG, "Eh? Last foregrounded package = " + user.currentForegroundedPackage
+ + " and now backgrounded = " + packageName);
+ return;
+ }
+ final long stopTime = getUptimeMillis();
+
+ // Add up the usage time to all groups that contain the package
+ ArrayList<TimeLimitGroup> groups = user.packageMap.get(packageName);
+ if (groups != null) {
+ final int size = groups.size();
+ for (int i = 0; i < size; i++) {
+ final TimeLimitGroup group = groups.get(i);
+ // Don't continue to send
+ if (group.timeRemaining <= 0) continue;
+
+ final long startTime = Math.max(user.currentForegroundedTime,
+ group.timeRequested);
+ long diff = stopTime - startTime;
+ group.timeRemaining -= diff;
+ if (group.timeRemaining <= 0) {
+ if (DEBUG) Slog.d(TAG, "MTB informing group obs=" + group.observerId);
+ postInformListenerLocked(group);
+ }
+ // Reset indicators that observer was added when package was already fg
+ group.currentPackage = null;
+ group.timeCurrentPackageStarted = -1L;
+ mHandler.removeMessages(MyHandler.MSG_CHECK_TIMEOUT, group);
+ }
+ }
+ user.currentForegroundedPackage = null;
+ }
+ }
+
+ private void postInformListenerLocked(TimeLimitGroup group) {
+ mHandler.sendMessage(mHandler.obtainMessage(MyHandler.MSG_INFORM_LISTENER,
+ group));
+ }
+
+ /**
+ * Inform the observer and unregister it, as the limit has been reached.
+ * @param group the observed group
+ */
+ private void informListener(TimeLimitGroup group) {
+ if (mListener != null) {
+ mListener.onLimitReached(group.observerId, group.userId, group.timeLimit,
+ group.timeLimit - group.timeRemaining, group.callbackIntent);
+ }
+ // Unregister since the limit has been met and observer was informed.
+ synchronized (mLock) {
+ UserData user = getOrCreateUserDataLocked(group.userId);
+ removeObserverLocked(user, group.requestingUid, group.observerId);
+ }
+ }
+
+ /** Check if any of the groups care about this package and set up delayed messages */
+ @GuardedBy("mLock")
+ private void maybeWatchForPackageLocked(UserData user, String packageName, long uptimeMillis) {
+ ArrayList<TimeLimitGroup> groups = user.packageMap.get(packageName);
+ if (groups == null) return;
+
+ final int size = groups.size();
+ for (int i = 0; i < size; i++) {
+ TimeLimitGroup group = groups.get(i);
+ if (group.timeRemaining > 0) {
+ group.timeCurrentPackageStarted = uptimeMillis;
+ group.currentPackage = packageName;
+ if (DEBUG) {
+ Slog.d(TAG, "Posting timeout for " + packageName + " for "
+ + group.timeRemaining + "ms");
+ }
+ postCheckTimeoutLocked(group, group.timeRemaining);
+ }
+ }
+ }
+
+ private void addGroupToPackageMapLocked(UserData user, String[] packages,
+ TimeLimitGroup group) {
+ for (int i = 0; i < packages.length; i++) {
+ ArrayList<TimeLimitGroup> list = user.packageMap.get(packages[i]);
+ if (list == null) {
+ list = new ArrayList<>();
+ user.packageMap.put(packages[i], list);
+ }
+ list.add(group);
+ }
+ }
+
+ /**
+ * Remove the group reference from the package to group mapping, which is 1 to many.
+ * @param group The group to remove from the package map.
+ */
+ private void removeGroupFromPackageMapLocked(UserData user, TimeLimitGroup group) {
+ final int mapSize = user.packageMap.size();
+ for (int i = 0; i < mapSize; i++) {
+ ArrayList<TimeLimitGroup> list = user.packageMap.valueAt(i);
+ list.remove(group);
+ }
+ }
+
+ private void postCheckTimeoutLocked(TimeLimitGroup group, long timeout) {
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(MyHandler.MSG_CHECK_TIMEOUT, group),
+ timeout);
+ }
+
+ /**
+ * See if the given group has reached the timeout if the current foreground app is included
+ * and it exceeds the time remaining.
+ * @param group the group of packages to check
+ */
+ void checkTimeout(TimeLimitGroup group) {
+ // For each package in the group, check if any of the currently foregrounded apps are adding
+ // up to hit the limit and inform the observer
+ synchronized (mLock) {
+ UserData user = getOrCreateUserDataLocked(group.userId);
+ // This group doesn't exist anymore, nothing to see here.
+ if (user.groups.get(group.observerId) != group) return;
+
+ if (DEBUG) Slog.d(TAG, "checkTimeout timeRemaining=" + group.timeRemaining);
+
+ // Already reached the limit, no need to report again
+ if (group.timeRemaining <= 0) return;
+
+ if (DEBUG) {
+ Slog.d(TAG, "checkTimeout foregroundedPackage="
+ + user.currentForegroundedPackage);
+ }
+
+ if (inPackageList(group.packages, user.currentForegroundedPackage)) {
+ if (DEBUG) {
+ Slog.d(TAG, "checkTimeout package in foreground="
+ + user.currentForegroundedPackage);
+ }
+ if (group.timeCurrentPackageStarted < 0) {
+ Slog.w(TAG, "startTime was not set correctly for " + group);
+ }
+ final long timeInForeground = getUptimeMillis() - group.timeCurrentPackageStarted;
+ if (group.timeRemaining <= timeInForeground) {
+ if (DEBUG) Slog.d(TAG, "checkTimeout : Time limit reached");
+ // Hit the limit, set timeRemaining to zero to avoid checking again
+ group.timeRemaining -= timeInForeground;
+ postInformListenerLocked(group);
+ // Reset
+ group.timeCurrentPackageStarted = -1L;
+ group.currentPackage = null;
+ } else {
+ if (DEBUG) Slog.d(TAG, "checkTimeout : Some more time remaining");
+ postCheckTimeoutLocked(group, group.timeRemaining - timeInForeground);
+ }
+ }
+ }
+ }
+
+ private void incTotalLaunchesLocked(UserData user, String packageName) {
+ // TODO: Inform UsageStatsService and aggregate the counter per app
+ }
+
+ void dump(PrintWriter pw) {
+ synchronized (mLock) {
+ pw.println("\n App Time Limits");
+ int nUsers = mUsers.size();
+ for (int i = 0; i < nUsers; i++) {
+ UserData user = mUsers.valueAt(i);
+ pw.print(" User "); pw.println(user.userId);
+ int nGroups = user.groups.size();
+ for (int j = 0; j < nGroups; j++) {
+ TimeLimitGroup group = user.groups.valueAt(j);
+ pw.print(" Group id="); pw.print(group.observerId);
+ pw.print(" timeLimit="); pw.print(group.timeLimit);
+ pw.print(" remaining="); pw.print(group.timeRemaining);
+ pw.print(" currentPackage="); pw.print(group.currentPackage);
+ pw.print(" timeCurrentPkgStarted="); pw.print(group.timeCurrentPackageStarted);
+ pw.print(" packages="); pw.println(Arrays.toString(group.packages));
+ }
+ pw.println();
+ pw.print(" currentForegroundedPackage=");
+ pw.println(user.currentForegroundedPackage);
+ pw.print(" lastBackgroundedPackage="); pw.println(user.lastBackgroundedPackage);
+ }
+ }
+ }
+}
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index 9be9f3fa254f..b144545c693a 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -20,6 +20,7 @@ import android.Manifest;
import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.app.IUidObserver;
+import android.app.PendingIntent;
import android.app.usage.AppStandbyInfo;
import android.app.usage.ConfigurationStats;
import android.app.usage.IUsageStatsManager;
@@ -72,6 +73,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.TimeUnit;
/**
* A service that collects, aggregates, and persists application usage data.
@@ -117,6 +119,8 @@ public class UsageStatsService extends SystemService implements
AppStandbyController mAppStandby;
+ AppTimeLimitController mAppTimeLimit;
+
private UsageStatsManagerInternal.AppIdleStateChangeListener mStandbyChangeListener =
new UsageStatsManagerInternal.AppIdleStateChangeListener() {
@Override
@@ -151,6 +155,20 @@ public class UsageStatsService extends SystemService implements
mAppStandby = new AppStandbyController(getContext(), BackgroundThread.get().getLooper());
+ mAppTimeLimit = new AppTimeLimitController(
+ (observerId, userId, timeLimit, timeElapsed, callbackIntent) -> {
+ Intent intent = new Intent();
+ intent.putExtra(UsageStatsManager.EXTRA_OBSERVER_ID, observerId);
+ intent.putExtra(UsageStatsManager.EXTRA_TIME_LIMIT, timeLimit);
+ intent.putExtra(UsageStatsManager.EXTRA_TIME_USED, timeElapsed);
+ try {
+ callbackIntent.send(getContext(), 0, intent);
+ } catch (PendingIntent.CanceledException e) {
+ Slog.w(TAG, "Couldn't deliver callback: "
+ + callbackIntent);
+ }
+ }, mHandler.getLooper());
+
mAppStandby.addListener(mStandbyChangeListener);
File systemDataDir = new File(Environment.getDataDirectory(), "system");
mUsageStatsDir = new File(systemDataDir, "usagestats");
@@ -374,6 +392,16 @@ public class UsageStatsService extends SystemService implements
service.reportEvent(event);
mAppStandby.reportEvent(event, elapsedRealtime, userId);
+ switch (event.mEventType) {
+ case Event.MOVE_TO_FOREGROUND:
+ mAppTimeLimit.moveToForeground(event.getPackageName(), event.getClassName(),
+ userId);
+ break;
+ case Event.MOVE_TO_BACKGROUND:
+ mAppTimeLimit.moveToBackground(event.getPackageName(), event.getClassName(),
+ userId);
+ break;
+ }
}
}
@@ -394,6 +422,7 @@ public class UsageStatsService extends SystemService implements
Slog.i(TAG, "Removing user " + userId + " and all data.");
mUserState.remove(userId);
mAppStandby.onUserRemoved(userId);
+ mAppTimeLimit.onUserRemoved(userId);
cleanUpRemovedUsersLocked();
}
}
@@ -549,6 +578,8 @@ public class UsageStatsService extends SystemService implements
pw.println();
mAppStandby.dumpState(args, pw);
}
+
+ mAppTimeLimit.dump(pw);
}
}
@@ -927,6 +958,60 @@ public class UsageStatsService extends SystemService implements
mHandler.obtainMessage(MSG_REPORT_EVENT, userId, 0, event).sendToTarget();
}
+
+ @Override
+ public void registerAppUsageObserver(int observerId,
+ String[] packages, long timeLimitMs, PendingIntent
+ callbackIntent, String callingPackage) {
+ if (!hasPermission(callingPackage)) {
+ throw new SecurityException("Caller doesn't have PACKAGE_USAGE_STATS permission");
+ }
+
+ if (packages == null || packages.length == 0) {
+ throw new IllegalArgumentException("Must specify at least one package");
+ }
+ if (timeLimitMs <= 0) {
+ throw new IllegalArgumentException("Time limit must be > 0");
+ }
+ if (callbackIntent == null) {
+ throw new NullPointerException("callbackIntent can't be null");
+ }
+ final int callingUid = Binder.getCallingUid();
+ final int userId = UserHandle.getUserId(callingUid);
+ final long token = Binder.clearCallingIdentity();
+ try {
+ UsageStatsService.this.registerAppUsageObserver(callingUid, observerId,
+ packages, timeLimitMs, callbackIntent, userId);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override
+ public void unregisterAppUsageObserver(int observerId, String callingPackage) {
+ if (!hasPermission(callingPackage)) {
+ throw new SecurityException("Caller doesn't have PACKAGE_USAGE_STATS permission");
+ }
+
+ final int callingUid = Binder.getCallingUid();
+ final int userId = UserHandle.getUserId(callingUid);
+ final long token = Binder.clearCallingIdentity();
+ try {
+ UsageStatsService.this.unregisterAppUsageObserver(callingUid, observerId, userId);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+ }
+
+ void registerAppUsageObserver(int callingUid, int observerId, String[] packages,
+ long timeLimitMs, PendingIntent callbackIntent, int userId) {
+ mAppTimeLimit.addObserver(callingUid, observerId, packages, timeLimitMs, callbackIntent,
+ userId);
+ }
+
+ void unregisterAppUsageObserver(int callingUid, int observerId, int userId) {
+ mAppTimeLimit.removeObserver(callingUid, observerId, userId);
}
/**
diff --git a/telephony/java/android/provider/Telephony.java b/telephony/java/android/provider/Telephony.java
index 4f78c4cc78ad..f1653ce6c2ae 100644
--- a/telephony/java/android/provider/Telephony.java
+++ b/telephony/java/android/provider/Telephony.java
@@ -3165,8 +3165,8 @@ public final class Telephony {
values.put(RIL_VOICE_RADIO_TECHNOLOGY, state.getRilVoiceRadioTechnology());
values.put(RIL_DATA_RADIO_TECHNOLOGY, state.getRilDataRadioTechnology());
values.put(CSS_INDICATOR, state.getCssIndicator());
- values.put(NETWORK_ID, state.getNetworkId());
- values.put(SYSTEM_ID, state.getSystemId());
+ values.put(NETWORK_ID, state.getCdmaNetworkId());
+ values.put(SYSTEM_ID, state.getCdmaSystemId());
values.put(CDMA_ROAMING_INDICATOR, state.getCdmaRoamingIndicator());
values.put(CDMA_DEFAULT_ROAMING_INDICATOR, state.getCdmaDefaultRoamingIndicator());
values.put(CDMA_ERI_ICON_INDEX, state.getCdmaEriIconIndex());
@@ -3296,13 +3296,13 @@ public final class Telephony {
public static final String CSS_INDICATOR = "css_indicator";
/**
- * This is the same as {@link ServiceState#getNetworkId()}.
+ * This is the same as {@link ServiceState#getCdmaNetworkId()}.
* @hide
*/
public static final String NETWORK_ID = "network_id";
/**
- * This is the same as {@link ServiceState#getSystemId()}.
+ * This is the same as {@link ServiceState#getCdmaSystemId()}.
* @hide
*/
public static final String SYSTEM_ID = "system_id";
diff --git a/telephony/java/android/telephony/PhoneStateListener.java b/telephony/java/android/telephony/PhoneStateListener.java
index 0446925f8cb4..0ff29825bfb3 100644
--- a/telephony/java/android/telephony/PhoneStateListener.java
+++ b/telephony/java/android/telephony/PhoneStateListener.java
@@ -61,9 +61,6 @@ public class PhoneStateListener {
/**
* Listen for changes to the network signal strength (cellular).
* {@more}
- * Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE
- * READ_PHONE_STATE}
- * <p>
*
* @see #onSignalStrengthChanged
*
@@ -76,7 +73,8 @@ public class PhoneStateListener {
* Listen for changes to the message-waiting indicator.
* {@more}
* Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE
- * READ_PHONE_STATE}
+ * READ_PHONE_STATE} or that the calling app has carrier privileges (see
+ * {@link TelephonyManager#hasCarrierPrivileges}).
* <p>
* Example: The status bar uses this to determine when to display the
* voicemail icon.
@@ -89,7 +87,9 @@ public class PhoneStateListener {
* Listen for changes to the call-forwarding indicator.
* {@more}
* Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE
- * READ_PHONE_STATE}
+ * READ_PHONE_STATE} or that the calling app has carrier privileges (see
+ * {@link TelephonyManager#hasCarrierPrivileges}).
+ *
* @see #onCallForwardingIndicatorChanged
*/
public static final int LISTEN_CALL_FORWARDING_INDICATOR = 0x00000008;
@@ -430,8 +430,9 @@ public class PhoneStateListener {
* Callback invoked when device call state changes.
* @param state call state
* @param phoneNumber call phone number. If application does not have
- * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} permission, an empty
- * string will be passed as an argument.
+ * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} permission or carrier
+ * privileges (see {@link TelephonyManager#hasCarrierPrivileges}), an empty string will be
+ * passed as an argument.
*
* @see TelephonyManager#CALL_STATE_IDLE
* @see TelephonyManager#CALL_STATE_RINGING
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index a9c1cf6c7bc3..9c831b9be0dd 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -221,7 +221,7 @@ public class ServiceState implements Parcelable {
public static final int ROAMING_TYPE_INTERNATIONAL = 3;
/**
- * Unknown ID. Could be returned by {@link #getNetworkId()} or {@link #getSystemId()}
+ * Unknown ID. Could be returned by {@link #getCdmaNetworkId()} or {@link #getCdmaSystemId()}
*/
public static final int UNKNOWN_ID = -1;
@@ -1222,7 +1222,7 @@ public class ServiceState implements Parcelable {
/** @hide */
@TestApi
- public void setSystemAndNetworkId(int systemId, int networkId) {
+ public void setCdmaSystemAndNetworkId(int systemId, int networkId) {
this.mSystemId = systemId;
this.mNetworkId = networkId;
}
@@ -1388,7 +1388,7 @@ public class ServiceState implements Parcelable {
* within a wireless system. (Defined in 3GPP2 C.S0023 3.4.8)
* @return The CDMA NID or {@link #UNKNOWN_ID} if not available.
*/
- public int getNetworkId() {
+ public int getCdmaNetworkId() {
return this.mNetworkId;
}
@@ -1397,7 +1397,7 @@ public class ServiceState implements Parcelable {
* system. (Defined in 3GPP2 C.S0023 3.4.8)
* @return The CDMA SID or {@link #UNKNOWN_ID} if not available.
*/
- public int getSystemId() {
+ public int getCdmaSystemId() {
return this.mSystemId;
}
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index ef66ed7ae064..472a6fbc0c1b 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -609,8 +609,6 @@ public class SubscriptionManager {
* @param listener an instance of {@link OnSubscriptionsChangedListener} with
* onSubscriptionsChanged overridden.
*/
- // TODO(b/70041899): Find a way to extend this to carrier-privileged apps.
- @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public void addOnSubscriptionsChangedListener(OnSubscriptionsChangedListener listener) {
String pkgName = mContext != null ? mContext.getOpPackageName() : "<unknown>";
if (DBG) {
diff --git a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
index f4b85b209e4f..dd56e0e41164 100644
--- a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
+++ b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
@@ -76,6 +76,7 @@ public class AppLaunch extends InstrumentationTestCase {
private static final String KEY_DROP_CACHE = "drop_cache";
private static final String KEY_SIMPLEPERF_CMD = "simpleperf_cmd";
private static final String KEY_SIMPLEPERF_APP = "simpleperf_app";
+ private static final String KEY_CYCLE_CLEAN = "cycle_clean";
private static final String KEY_TRACE_ITERATIONS = "trace_iterations";
private static final String KEY_LAUNCH_DIRECTORY = "launch_directory";
private static final String KEY_TRACE_DIRECTORY = "trace_directory";
@@ -137,6 +138,11 @@ public class AppLaunch extends InstrumentationTestCase {
private BufferedWriter mBufferedWriter = null;
private boolean mSimplePerfAppOnly = false;
private String[] mCompilerFilters = null;
+ private String mLastAppName = "";
+ private boolean mCycleCleanUp = false;
+ private boolean mIterationCycle = false;
+ private long mCycleTime = 0;
+ private StringBuilder mCycleTimes = new StringBuilder();
@Override
protected void setUp() throws Exception {
@@ -236,6 +242,7 @@ public class AppLaunch extends InstrumentationTestCase {
// App launch times for trial launch will not be used for final
// launch time calculations.
if (launch.getLaunchReason().equals(TRIAL_LAUNCH)) {
+ mIterationCycle = false;
// In the "applaunch.txt" file, trail launches is referenced using
// "TRIAL_LAUNCH"
String appPkgName = mNameToIntent.get(launch.getApp())
@@ -273,6 +280,7 @@ public class AppLaunch extends InstrumentationTestCase {
// App launch times used for final calculation
else if (launch.getLaunchReason().contains(LAUNCH_ITERATION_PREFIX)) {
+ mIterationCycle = true;
AppLaunchResult launchResults = null;
if (hasFailureOnFirstLaunch(launch)) {
// skip if the app has failures while launched first
@@ -286,6 +294,7 @@ public class AppLaunch extends InstrumentationTestCase {
// if it fails once, skip the rest of the launches
continue;
} else {
+ mCycleTime += launchResults.mLaunchTime;
addLaunchResult(launch, launchResults);
}
sleep(POST_LAUNCH_IDLE_TIMEOUT);
@@ -294,6 +303,7 @@ public class AppLaunch extends InstrumentationTestCase {
// App launch times for trace launch will not be used for final
// launch time calculations.
else if (launch.getLaunchReason().contains(TRACE_ITERATION_PREFIX)) {
+ mIterationCycle = false;
AtraceLogger atraceLogger = AtraceLogger
.getAtraceLoggerInstance(getInstrumentation());
// Start the trace
@@ -314,6 +324,20 @@ public class AppLaunch extends InstrumentationTestCase {
startHomeIntent();
}
sleep(BETWEEN_LAUNCH_SLEEP_TIMEOUT);
+
+ // If cycle clean up is enabled and last app launched is
+ // current app then the cycle is completed and eligible for
+ // cleanup.
+ if (LAUNCH_ORDER_CYCLIC.equalsIgnoreCase(mLaunchOrder) && mCycleCleanUp
+ && launch.getApp().equalsIgnoreCase(mLastAppName)) {
+ // Kill all the apps and drop all the cache
+ cleanUpAfterCycle();
+ if (mIterationCycle) {
+ // Save the previous cycle time and reset the cycle time to 0
+ mCycleTimes.append(String.format("%d,", mCycleTime));
+ mCycleTime = 0;
+ }
+ }
}
} finally {
if (null != mBufferedWriter) {
@@ -321,6 +345,9 @@ public class AppLaunch extends InstrumentationTestCase {
}
}
+ if (mCycleTimes.length() != 0) {
+ mResult.putString("Cycle_Times", mCycleTimes.toString());
+ }
for (String app : mNameToResultKey.keySet()) {
for (String compilerFilter : mCompilerFilters) {
StringBuilder launchTimes = new StringBuilder();
@@ -453,6 +480,7 @@ public class AppLaunch extends InstrumentationTestCase {
mNameToResultKey.put(parts[0], parts[1]);
mNameToLaunchTime.put(parts[0], null);
+ mLastAppName = parts[0];
}
String requiredAccounts = args.getString(KEY_REQUIRED_ACCOUNTS);
if (requiredAccounts != null) {
@@ -487,6 +515,7 @@ public class AppLaunch extends InstrumentationTestCase {
mSimplePerfCmd = args.getString(KEY_SIMPLEPERF_CMD);
mLaunchOrder = args.getString(KEY_LAUNCH_ORDER, LAUNCH_ORDER_CYCLIC);
mSimplePerfAppOnly = Boolean.parseBoolean(args.getString(KEY_SIMPLEPERF_APP));
+ mCycleCleanUp = Boolean.parseBoolean(args.getString(KEY_CYCLE_CLEAN));
mTrialLaunch = mTrialLaunch || Boolean.parseBoolean(args.getString(KEY_TRIAL_LAUNCH));
if (mSimplePerfCmd != null && mSimplePerfAppOnly) {
@@ -597,6 +626,18 @@ public class AppLaunch extends InstrumentationTestCase {
sleep(POST_LAUNCH_IDLE_TIMEOUT);
}
+ private void cleanUpAfterCycle() {
+ // Kill all the apps
+ for (String appName : mNameToIntent.keySet()) {
+ Log.w(TAG, String.format("killing %s", appName));
+ closeApp(appName);
+ }
+ // Drop all the cache.
+ assertNotNull("Issue in dropping the cache",
+ getInstrumentation().getUiAutomation()
+ .executeShellCommand(DROP_CACHE_SCRIPT));
+ }
+
private void closeApp(String appName) {
Intent startIntent = mNameToIntent.get(appName);
if (startIntent != null) {
diff --git a/tests/UsageStatsTest/AndroidManifest.xml b/tests/UsageStatsTest/AndroidManifest.xml
index c27be7b2d5bf..66af45424fba 100644
--- a/tests/UsageStatsTest/AndroidManifest.xml
+++ b/tests/UsageStatsTest/AndroidManifest.xml
@@ -21,5 +21,6 @@
</activity>
<activity android:name=".UsageLogActivity" />
+
</application>
</manifest>
diff --git a/tests/UsageStatsTest/res/menu/main.xml b/tests/UsageStatsTest/res/menu/main.xml
index 4ccbc81ab317..612267c85b1b 100644
--- a/tests/UsageStatsTest/res/menu/main.xml
+++ b/tests/UsageStatsTest/res/menu/main.xml
@@ -4,4 +4,6 @@
android:title="View Log"/>
<item android:id="@+id/call_is_app_inactive"
android:title="Call isAppInactive()"/>
+ <item android:id="@+id/set_app_limit"
+ android:title="Set App Limit" />
</menu>
diff --git a/tests/UsageStatsTest/src/com/android/tests/usagestats/UsageStatsActivity.java b/tests/UsageStatsTest/src/com/android/tests/usagestats/UsageStatsActivity.java
index 9429d9bbf89b..3d8ce21a2c00 100644
--- a/tests/UsageStatsTest/src/com/android/tests/usagestats/UsageStatsActivity.java
+++ b/tests/UsageStatsTest/src/com/android/tests/usagestats/UsageStatsActivity.java
@@ -18,6 +18,7 @@ package com.android.tests.usagestats;
import android.app.AlertDialog;
import android.app.ListActivity;
+import android.app.PendingIntent;
import android.app.usage.UsageStats;
import android.app.usage.UsageStatsManager;
import android.content.Context;
@@ -36,14 +37,17 @@ import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.TextView;
+import android.widget.Toast;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
public class UsageStatsActivity extends ListActivity {
private static final long USAGE_STATS_PERIOD = 1000 * 60 * 60 * 24 * 14;
+ private static final String EXTRA_KEY_TIMEOUT = "com.android.tests.usagestats.extra.TIMEOUT";
private UsageStatsManager mUsageStatsManager;
private Adapter mAdapter;
private Comparator<UsageStats> mComparator = new Comparator<UsageStats>() {
@@ -59,6 +63,20 @@ public class UsageStatsActivity extends ListActivity {
mUsageStatsManager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);
mAdapter = new Adapter();
setListAdapter(mAdapter);
+ Bundle extras = getIntent().getExtras();
+ if (extras != null && extras.containsKey(UsageStatsManager.EXTRA_TIME_USED)) {
+ System.err.println("UsageStatsActivity " + extras);
+ Toast.makeText(this, "Timeout of observed app\n" + extras, Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ @Override
+ public void onNewIntent(Intent intent) {
+ Bundle extras = intent.getExtras();
+ if (extras != null && extras.containsKey(UsageStatsManager.EXTRA_TIME_USED)) {
+ System.err.println("UsageStatsActivity " + extras);
+ Toast.makeText(this, "Timeout of observed app\n" + extras, Toast.LENGTH_SHORT).show();
+ }
}
@Override
@@ -77,7 +95,9 @@ public class UsageStatsActivity extends ListActivity {
case R.id.call_is_app_inactive:
callIsAppInactive();
return true;
-
+ case R.id.set_app_limit:
+ callSetAppLimit();
+ return true;
default:
return super.onOptionsItemSelected(item);
}
@@ -116,6 +136,40 @@ public class UsageStatsActivity extends ListActivity {
builder.show();
}
+ private void callSetAppLimit() {
+ final AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("Enter package name");
+ final EditText input = new EditText(this);
+ input.setInputType(InputType.TYPE_CLASS_TEXT);
+ input.setHint("com.android.tests.usagestats");
+ builder.setView(input);
+
+ builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ final String packageName = input.getText().toString().trim();
+ if (!TextUtils.isEmpty(packageName)) {
+ String[] packages = packageName.split(",");
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.setClass(UsageStatsActivity.this, UsageStatsActivity.class);
+ intent.setPackage(getPackageName());
+ intent.putExtra(EXTRA_KEY_TIMEOUT, true);
+ mUsageStatsManager.registerAppUsageObserver(1, packages,
+ 30, TimeUnit.SECONDS, PendingIntent.getActivity(UsageStatsActivity.this,
+ 1, intent, 0));
+ }
+ }
+ });
+ builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.cancel();
+ }
+ });
+
+ builder.show();
+ }
+
private void showInactive(String packageName) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(
diff --git a/tools/aapt2/LoadedApk.cpp b/tools/aapt2/LoadedApk.cpp
index ac28227b8778..4a4260d1d323 100644
--- a/tools/aapt2/LoadedApk.cpp
+++ b/tools/aapt2/LoadedApk.cpp
@@ -22,6 +22,7 @@
#include "format/binary/TableFlattener.h"
#include "format/binary/XmlFlattener.h"
#include "format/proto/ProtoDeserialize.h"
+#include "format/proto/ProtoSerialize.h"
#include "io/BigBufferStream.h"
#include "io/Util.h"
#include "xml/XmlDom.h"
@@ -110,7 +111,7 @@ std::unique_ptr<LoadedApk> LoadedApk::LoadProtoApkFromFileCollection(
return {};
}
return util::make_unique<LoadedApk>(source, std::move(collection), std::move(table),
- std::move(manifest));
+ std::move(manifest), ApkFormat::kProto);
}
std::unique_ptr<LoadedApk> LoadedApk::LoadBinaryApkFromFileCollection(
@@ -153,7 +154,7 @@ std::unique_ptr<LoadedApk> LoadedApk::LoadBinaryApkFromFileCollection(
return {};
}
return util::make_unique<LoadedApk>(source, std::move(collection), std::move(table),
- std::move(manifest));
+ std::move(manifest), ApkFormat::kBinary);
}
bool LoadedApk::WriteToArchive(IAaptContext* context, const TableFlattenerOptions& options,
@@ -205,7 +206,7 @@ bool LoadedApk::WriteToArchive(IAaptContext* context, ResourceTable* split_table
}
// The resource table needs to be re-serialized since it might have changed.
- if (path == "resources.arsc") {
+ if (format_ == ApkFormat::kBinary && path == kApkResourceTablePath) {
BigBuffer buffer(4096);
// TODO(adamlesinski): How to determine if there were sparse entries (and if to encode
// with sparse entries) b/35389232.
@@ -215,11 +216,22 @@ bool LoadedApk::WriteToArchive(IAaptContext* context, ResourceTable* split_table
}
io::BigBufferInputStream input_stream(&buffer);
- if (!io::CopyInputStreamToArchive(context, &input_stream, path, ArchiveEntry::kAlign,
+ if (!io::CopyInputStreamToArchive(context,
+ &input_stream,
+ path,
+ ArchiveEntry::kAlign,
writer)) {
return false;
}
-
+ } else if (format_ == ApkFormat::kProto && path == kProtoResourceTablePath) {
+ pb::ResourceTable pb_table;
+ SerializeTableToPb(*split_table, &pb_table);
+ if (!io::CopyProtoToArchive(context,
+ &pb_table,
+ path,
+ ArchiveEntry::kAlign, writer)) {
+ return false;
+ }
} else if (manifest != nullptr && path == "AndroidManifest.xml") {
BigBuffer buffer(8192);
XmlFlattenerOptions xml_flattener_options;
@@ -246,9 +258,9 @@ bool LoadedApk::WriteToArchive(IAaptContext* context, ResourceTable* split_table
}
ApkFormat LoadedApk::DetermineApkFormat(io::IFileCollection* apk) {
- if (apk->FindFile("resources.arsc") != nullptr) {
+ if (apk->FindFile(kApkResourceTablePath) != nullptr) {
return ApkFormat::kBinary;
- } else if (apk->FindFile("resources.pb") != nullptr) {
+ } else if (apk->FindFile(kProtoResourceTablePath) != nullptr) {
return ApkFormat::kProto;
} else {
// If the resource table is not present, attempt to read the manifest.
diff --git a/tools/aapt2/LoadedApk.h b/tools/aapt2/LoadedApk.h
index 81bcecc3ca5d..41f879d0cdc3 100644
--- a/tools/aapt2/LoadedApk.h
+++ b/tools/aapt2/LoadedApk.h
@@ -57,11 +57,13 @@ class LoadedApk {
const Source& source, std::unique_ptr<io::IFileCollection> collection, IDiagnostics* diag);
LoadedApk(const Source& source, std::unique_ptr<io::IFileCollection> apk,
- std::unique_ptr<ResourceTable> table, std::unique_ptr<xml::XmlResource> manifest)
+ std::unique_ptr<ResourceTable> table, std::unique_ptr<xml::XmlResource> manifest,
+ const ApkFormat& format)
: source_(source),
apk_(std::move(apk)),
table_(std::move(table)),
- manifest_(std::move(manifest)) {
+ manifest_(std::move(manifest)),
+ format_(format) {
}
io::IFileCollection* GetFileCollection() {
@@ -112,6 +114,7 @@ class LoadedApk {
std::unique_ptr<io::IFileCollection> apk_;
std::unique_ptr<ResourceTable> table_;
std::unique_ptr<xml::XmlResource> manifest_;
+ ApkFormat format_;
static ApkFormat DetermineApkFormat(io::IFileCollection* apk);
};
diff --git a/tools/aapt2/optimize/MultiApkGenerator_test.cpp b/tools/aapt2/optimize/MultiApkGenerator_test.cpp
index e1d951fc9776..80eb737fa682 100644
--- a/tools/aapt2/optimize/MultiApkGenerator_test.cpp
+++ b/tools/aapt2/optimize/MultiApkGenerator_test.cpp
@@ -104,7 +104,7 @@ class MultiApkGeneratorTest : public ::testing::Test {
TEST_F(MultiApkGeneratorTest, VersionFilterNewerVersion) {
std::unique_ptr<ResourceTable> table = BuildTable();
- LoadedApk apk = {{"test.apk"}, {}, std::move(table), {}};
+ LoadedApk apk = {{"test.apk"}, {}, std::move(table), {}, kBinary};
std::unique_ptr<IAaptContext> ctx = test::ContextBuilder().SetMinSdkVersion(19).Build();
FilterChain chain;
@@ -131,7 +131,7 @@ TEST_F(MultiApkGeneratorTest, VersionFilterNewerVersion) {
TEST_F(MultiApkGeneratorTest, VersionFilterOlderVersion) {
std::unique_ptr<ResourceTable> table = BuildTable();
- LoadedApk apk = {{"test.apk"}, {}, std::move(table), {}};
+ LoadedApk apk = {{"test.apk"}, {}, std::move(table), {}, kBinary};
std::unique_ptr<IAaptContext> ctx = test::ContextBuilder().SetMinSdkVersion(1).Build();
FilterChain chain;
@@ -156,7 +156,7 @@ TEST_F(MultiApkGeneratorTest, VersionFilterOlderVersion) {
TEST_F(MultiApkGeneratorTest, VersionFilterNoVersion) {
std::unique_ptr<ResourceTable> table = BuildTable();
- LoadedApk apk = {{"test.apk"}, {}, std::move(table), {}};
+ LoadedApk apk = {{"test.apk"}, {}, std::move(table), {}, kBinary};
std::unique_ptr<IAaptContext> ctx = test::ContextBuilder().SetMinSdkVersion(1).Build();
FilterChain chain;
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 6865f77fa717..21ae3a923946 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -529,91 +529,6 @@ public class WifiConfiguration implements Parcelable {
/** @hide **/
public static int INVALID_RSSI = -127;
- /**
- * @hide
- * A summary of the RSSI and Band status for that configuration
- * This is used as a temporary value by the auto-join controller
- */
- public static final class Visibility {
- public int rssi5; // strongest 5GHz RSSI
- public int rssi24; // strongest 2.4GHz RSSI
- public int num5; // number of BSSIDs on 5GHz
- public int num24; // number of BSSIDs on 2.4GHz
- public long age5; // timestamp of the strongest 5GHz BSSID (last time it was seen)
- public long age24; // timestamp of the strongest 2.4GHz BSSID (last time it was seen)
- public String BSSID24;
- public String BSSID5;
- public int score; // Debug only, indicate last score used for autojoin/cell-handover
- public int currentNetworkBoost; // Debug only, indicate boost applied to RSSI if current
- public int bandPreferenceBoost; // Debug only, indicate boost applied to RSSI if current
- public int lastChoiceBoost; // Debug only, indicate last choice applied to this configuration
- public String lastChoiceConfig; // Debug only, indicate last choice applied to this configuration
-
- public Visibility() {
- rssi5 = INVALID_RSSI;
- rssi24 = INVALID_RSSI;
- }
-
- public Visibility(Visibility source) {
- rssi5 = source.rssi5;
- rssi24 = source.rssi24;
- age24 = source.age24;
- age5 = source.age5;
- num24 = source.num24;
- num5 = source.num5;
- BSSID5 = source.BSSID5;
- BSSID24 = source.BSSID24;
- }
-
- @Override
- public String toString() {
- StringBuilder sbuf = new StringBuilder();
- sbuf.append("[");
- if (rssi24 > INVALID_RSSI) {
- sbuf.append(Integer.toString(rssi24));
- sbuf.append(",");
- sbuf.append(Integer.toString(num24));
- if (BSSID24 != null) sbuf.append(",").append(BSSID24);
- }
- sbuf.append("; ");
- if (rssi5 > INVALID_RSSI) {
- sbuf.append(Integer.toString(rssi5));
- sbuf.append(",");
- sbuf.append(Integer.toString(num5));
- if (BSSID5 != null) sbuf.append(",").append(BSSID5);
- }
- if (score != 0) {
- sbuf.append("; ").append(score);
- sbuf.append(", ").append(currentNetworkBoost);
- sbuf.append(", ").append(bandPreferenceBoost);
- if (lastChoiceConfig != null) {
- sbuf.append(", ").append(lastChoiceBoost);
- sbuf.append(", ").append(lastChoiceConfig);
- }
- }
- sbuf.append("]");
- return sbuf.toString();
- }
- }
-
- /** @hide
- * Cache the visibility status of this configuration.
- * Visibility can change at any time depending on scan results availability.
- * Owner of the WifiConfiguration is responsible to set this field based on
- * recent scan results.
- ***/
- public Visibility visibility;
-
- /** @hide
- * calculate and set Visibility for that configuration.
- *
- * age in milliseconds: we will consider only ScanResults that are more recent,
- * i.e. younger.
- ***/
- public void setVisibility(Visibility status) {
- visibility = status;
- }
-
// States for the userApproved field
/**
* @hide
@@ -2178,9 +2093,6 @@ public class WifiConfiguration implements Parcelable {
meteredHint = source.meteredHint;
meteredOverride = source.meteredOverride;
useExternalScores = source.useExternalScores;
- if (source.visibility != null) {
- visibility = new Visibility(source.visibility);
- }
didSelfAdd = source.didSelfAdd;
lastConnectUid = source.lastConnectUid;