Merge "Update MainSwitchBar to Material Next style." into sc-dev
diff --git a/Android.bp b/Android.bp
index 0ffafc6..71ea3f2 100644
--- a/Android.bp
+++ b/Android.bp
@@ -483,7 +483,7 @@
"--api-lint-ignore-prefix org. "
filegroup {
- name: "framework-non-updatable-stub-sources",
+ name: "android-non-updatable-stub-sources",
srcs: [
":framework-mime-sources", // mimemap builds separately but has no separate droidstubs.
":framework-non-updatable-sources",
@@ -495,6 +495,63 @@
visibility: ["//visibility:private"],
}
+// These defaults are used for both the jar stubs and the doc stubs.
+stubs_defaults {
+ name: "android-non-updatable-stubs-defaults",
+ srcs: [":android-non-updatable-stub-sources"],
+ sdk_version: "none",
+ system_modules: "none",
+ java_version: "1.8",
+ arg_files: ["core/res/AndroidManifest.xml"],
+ // TODO(b/147699819): remove below aidl includes.
+ aidl: {
+ local_include_dirs: [
+ "apex/media/aidl/stable",
+ "media/aidl",
+ // TODO: move to include-dirs for packages/modules/Connectivity when this moves out of
+ // frameworks/base
+ "packages/Connectivity/framework/aidl-export",
+ "telephony/java",
+ ],
+ include_dirs: ["frameworks/av/aidl"],
+ },
+ // These are libs from framework-internal-utils that are required (i.e. being referenced)
+ // from framework-non-updatable-sources. Add more here when there's a need.
+ // DO NOT add the entire framework-internal-utils. It might cause unnecessary circular
+ // dependencies gets bigger.
+ libs: [
+ "android.hardware.cas-V1.2-java",
+ "android.hardware.health-V1.0-java-constants",
+ "android.hardware.radio-V1.5-java",
+ "android.hardware.radio-V1.6-java",
+ "android.hardware.thermal-V1.0-java-constants",
+ "android.hardware.thermal-V2.0-java",
+ "android.hardware.tv.input-V1.0-java-constants",
+ "android.hardware.tv.tuner-V1.0-java-constants",
+ "android.hardware.tv.tuner-V1.1-java-constants",
+ "android.hardware.usb-V1.0-java-constants",
+ "android.hardware.usb-V1.1-java-constants",
+ "android.hardware.usb.gadget-V1.0-java",
+ "android.hardware.vibrator-V1.3-java",
+ "framework-protos",
+ "stable.core.platform.api.stubs",
+ // There are a few classes from modules used by the core that
+ // need to be resolved by metalava. We use a prebuilt stub of the
+ // full sdk to ensure we can resolve them. If a new class gets added,
+ // the prebuilts/sdk/current needs to be updated.
+ "sdk_system_current_android",
+ // NOTE: The below can be removed once the prebuilt stub contains IKE.
+ "sdk_system_current_android.net.ipsec.ike",
+ ],
+ high_mem: true, // Lots of sources => high memory use, see b/170701554
+ installable: false,
+ annotations_enabled: true,
+ previous_api: ":android.api.public.latest",
+ merge_annotations_dirs: ["metalava-manual"],
+ defaults_visibility: ["//visibility:private"],
+ visibility: ["//frameworks/base/api"],
+}
+
build = [
"StubLibraries.bp",
"ApiDocs.bp",
diff --git a/ApiDocs.bp b/ApiDocs.bp
index 3862795..0f218b5 100644
--- a/ApiDocs.bp
+++ b/ApiDocs.bp
@@ -56,9 +56,23 @@
]
stubs_defaults {
+ name: "android-non-updatable-doc-stubs-defaults",
+ defaults: ["android-non-updatable-stubs-defaults"],
+ srcs: [
+ // No longer part of the stubs, but are included in the docs.
+ "test-base/src/**/*.java",
+ "test-mock/src/**/*.java",
+ "test-runner/src/**/*.java",
+ ],
+ libs: framework_docs_only_libs,
+ create_doc_stubs: true,
+ write_sdk_values: true,
+}
+
+stubs_defaults {
name: "framework-doc-stubs-default",
srcs: [
- ":framework-non-updatable-stub-sources",
+ ":android-non-updatable-stub-sources",
// Module sources
":art.module.public.api{.public.stubs.source}",
@@ -103,6 +117,19 @@
}
droidstubs {
+ name: "android-non-updatable-doc-stubs",
+ defaults: ["android-non-updatable-doc-stubs-defaults"],
+ args: metalava_framework_docs_args,
+}
+
+droidstubs {
+ name: "android-non-updatable-doc-stubs-system",
+ defaults: ["android-non-updatable-doc-stubs-defaults"],
+ args: metalava_framework_docs_args +
+ " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS\\) ",
+}
+
+droidstubs {
name: "framework-doc-stubs",
defaults: ["framework-doc-stubs-default"],
arg_files: [
diff --git a/StubLibraries.bp b/StubLibraries.bp
index 720bfc0..7b8a687 100644
--- a/StubLibraries.bp
+++ b/StubLibraries.bp
@@ -42,62 +42,10 @@
stubs_defaults {
name: "metalava-non-updatable-api-stubs-default",
- srcs: [":framework-non-updatable-stub-sources"],
- sdk_version: "none",
- system_modules: "none",
- java_version: "1.8",
- arg_files: ["core/res/AndroidManifest.xml"],
- // TODO(b/147699819, b/169090544): remove below aidl includes.
- aidl: {
- local_include_dirs: [
- "apex/media/aidl/stable",
- "media/aidl",
- // TODO: move to include-dirs for packages/modules/Connectivity when this moves out of
- // frameworks/base
- "packages/Connectivity/framework/aidl-export",
- "telephony/java",
- ],
- include_dirs: ["frameworks/av/aidl"],
- },
- // These are libs from framework-internal-utils that are required (i.e. being referenced)
- // from framework-non-updatable-sources. Add more here when there's a need.
- // DO NOT add the entire framework-internal-utils. It might cause unnecessary circular
- // dependencies gets bigger.
- libs: [
- "android.hardware.cas-V1.2-java",
- "android.hardware.health-V1.0-java-constants",
- "android.hardware.radio-V1.5-java",
- "android.hardware.radio-V1.6-java",
- "android.hardware.thermal-V1.0-java-constants",
- "android.hardware.thermal-V2.0-java",
- "android.hardware.tv.input-V1.0-java-constants",
- "android.hardware.tv.tuner-V1.0-java-constants",
- "android.hardware.tv.tuner-V1.1-java-constants",
- "android.hardware.usb-V1.0-java-constants",
- "android.hardware.usb-V1.1-java-constants",
- "android.hardware.usb.gadget-V1.0-java",
- "android.hardware.vibrator-V1.3-java",
- "framework-protos",
- "stable.core.platform.api.stubs",
- // There are a few classes from modules used by the core that
- // need to be resolved by metalava. We use a prebuilt stub of the
- // full sdk to ensure we can resolve them. If a new class gets added,
- // the prebuilts/sdk/current needs to be updated.
- "sdk_system_current_android",
- // NOTE: The below can be removed once the prebuilt stub contains IKE.
- "sdk_system_current_android.net.ipsec.ike",
- ],
- high_mem: true, // Lots of sources => high memory use, see b/170701554
- installable: false,
- annotations_enabled: true,
- previous_api: ":android.api.public.latest",
- merge_annotations_dirs: [
- "metalava-manual",
- ],
+ defaults: ["android-non-updatable-stubs-defaults"],
api_levels_annotations_enabled: false,
filter_packages: packages_to_document,
defaults_visibility: ["//visibility:private"],
- visibility: ["//frameworks/base/api"],
}
/////////////////////////////////////////////////////////////////////
diff --git a/apex/appsearch/service/java/com/android/server/appsearch/VisibilityStore.java b/apex/appsearch/service/java/com/android/server/appsearch/VisibilityStore.java
index a8d429b..0f643c5 100644
--- a/apex/appsearch/service/java/com/android/server/appsearch/VisibilityStore.java
+++ b/apex/appsearch/service/java/com/android/server/appsearch/VisibilityStore.java
@@ -37,6 +37,8 @@
import com.android.server.appsearch.external.localstorage.util.PrefixUtil;
+import com.google.android.icing.proto.PersistType;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -373,6 +375,8 @@
mAppSearchImpl.putDocument(
PACKAGE_NAME, DATABASE_NAME, visibilityDocument.build(), /*logger=*/ null);
+ // Now that the visibility document has been written. Persist the newly written data.
+ mAppSearchImpl.persistToDisk(PersistType.Code.LITE);
// Update derived data structures.
mNotPlatformSurfaceableMap.put(prefix, schemasNotPlatformSurfaceable);
diff --git a/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java
index 70d0d5d..b3396c5 100644
--- a/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java
+++ b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java
@@ -1135,7 +1135,7 @@
this(context, new Injector(context));
}
- private static boolean isRtc(int type) {
+ static boolean isRtc(int type) {
return (type == RTC || type == RTC_WAKEUP);
}
diff --git a/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java b/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java
index 2dc131c..4e7311f 100644
--- a/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java
+++ b/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java
@@ -72,7 +72,8 @@
alarmStore.getCount(
a -> (a.getRequestedElapsed() > now + INDEFINITE_DELAY)),
alarmStore.getCount(a -> (a.repeatInterval != 0)),
- alarmStore.getCount(a -> (a.alarmClock != null))
+ alarmStore.getCount(a -> (a.alarmClock != null)),
+ alarmStore.getCount(a -> AlarmManagerService.isRtc(a.type))
));
return StatsManager.PULL_SUCCESS;
}
@@ -101,7 +102,8 @@
(a.flags & AlarmManager.FLAG_ALLOW_WHILE_IDLE) != 0,
a.alarmClock != null,
a.repeatInterval != 0,
- reasonToStatsReason(a.mExactAllowReason));
+ reasonToStatsReason(a.mExactAllowReason),
+ AlarmManagerService.isRtc(a.type));
}
static void pushAlarmBatchDelivered(int numAlarms, int wakeups) {
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
index 3322841..80e9e2d 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java
@@ -621,6 +621,7 @@
}
@Override
+ @GuardedBy("mLock")
public void maybeStartTrackingJobLocked(JobStatus jobStatus, JobStatus lastJob) {
final long nowElapsed = sElapsedRealtimeClock.millis();
final int userId = jobStatus.getSourceUserId();
@@ -648,6 +649,7 @@
}
@Override
+ @GuardedBy("mLock")
public void prepareForExecutionLocked(JobStatus jobStatus) {
if (DEBUG) {
Slog.d(TAG, "Prepping for " + jobStatus.toShortString());
@@ -676,6 +678,7 @@
}
@Override
+ @GuardedBy("mLock")
public void unprepareFromExecutionLocked(JobStatus jobStatus) {
Timer timer = mPkgTimers.get(jobStatus.getSourceUserId(), jobStatus.getSourcePackageName());
if (timer != null) {
@@ -691,6 +694,7 @@
}
@Override
+ @GuardedBy("mLock")
public void maybeStopTrackingJobLocked(JobStatus jobStatus, JobStatus incomingJob,
boolean forUpdate) {
if (jobStatus.clearTrackingController(JobStatus.TRACKING_QUOTA)) {
@@ -796,10 +800,12 @@
}
/** Returns the maximum amount of time this job could run for. */
+ @GuardedBy("mLock")
public long getMaxJobExecutionTimeMsLocked(@NonNull final JobStatus jobStatus) {
if (!jobStatus.shouldTreatAsExpeditedJob()) {
- // If quota is currently "free", then the job can run for the full amount of time.
- if (mChargeTracker.isCharging()
+ // If quota is currently "free", then the job can run for the full amount of time,
+ // regardless of bucket (hence using charging instead of isQuotaFreeLocked()).
+ if (mChargeTracker.isChargingLocked()
|| mTopAppCache.get(jobStatus.getSourceUid())
|| isTopStartedJobLocked(jobStatus)
|| isUidInForeground(jobStatus.getSourceUid())) {
@@ -810,7 +816,7 @@
}
// Expedited job.
- if (mChargeTracker.isCharging()) {
+ if (mChargeTracker.isChargingLocked()) {
return mConstants.RUNTIME_FREE_QUOTA_MAX_LIMIT_MS;
}
if (mTopAppCache.get(jobStatus.getSourceUid()) || isTopStartedJobLocked(jobStatus)) {
@@ -828,8 +834,9 @@
}
/** @return true if the job is within expedited job quota. */
+ @GuardedBy("mLock")
public boolean isWithinEJQuotaLocked(@NonNull final JobStatus jobStatus) {
- if (isQuotaFree(jobStatus.getEffectiveStandbyBucket())) {
+ if (isQuotaFreeLocked(jobStatus.getEffectiveStandbyBucket())) {
return true;
}
// A job is within quota if one of the following is true:
@@ -887,9 +894,10 @@
jobStatus.getSourceUserId(), jobStatus.getSourcePackageName(), standbyBucket);
}
- private boolean isQuotaFree(final int standbyBucket) {
+ @GuardedBy("mLock")
+ private boolean isQuotaFreeLocked(final int standbyBucket) {
// Quota constraint is not enforced while charging.
- if (mChargeTracker.isCharging()) {
+ if (mChargeTracker.isChargingLocked()) {
// Restricted jobs require additional constraints when charging, so don't immediately
// mark quota as free when charging.
return standbyBucket != RESTRICTED_INDEX;
@@ -898,11 +906,12 @@
}
@VisibleForTesting
+ @GuardedBy("mLock")
boolean isWithinQuotaLocked(final int userId, @NonNull final String packageName,
final int standbyBucket) {
if (standbyBucket == NEVER_INDEX) return false;
- if (isQuotaFree(standbyBucket)) return true;
+ if (isQuotaFreeLocked(standbyBucket)) return true;
ExecutionStats stats = getExecutionStatsLocked(userId, packageName, standbyBucket);
return getRemainingExecutionTimeLocked(stats) > 0
@@ -1493,13 +1502,14 @@
/** Schedule a cleanup alarm if necessary and there isn't already one scheduled. */
@VisibleForTesting
void maybeScheduleCleanupAlarmLocked() {
- if (mNextCleanupTimeElapsed > sElapsedRealtimeClock.millis()) {
+ final long nowElapsed = sElapsedRealtimeClock.millis();
+ if (mNextCleanupTimeElapsed > nowElapsed) {
// There's already an alarm scheduled. Just stick with that one. There's no way we'll
// end up scheduling an earlier alarm.
if (DEBUG) {
Slog.v(TAG, "Not scheduling cleanup since there's already one at "
- + mNextCleanupTimeElapsed + " (in " + (mNextCleanupTimeElapsed
- - sElapsedRealtimeClock.millis()) + "ms)");
+ + mNextCleanupTimeElapsed
+ + " (in " + (mNextCleanupTimeElapsed - nowElapsed) + "ms)");
}
return;
}
@@ -1521,7 +1531,7 @@
if (nextCleanupElapsed - mNextCleanupTimeElapsed <= 10 * MINUTE_IN_MILLIS) {
// No need to clean up too often. Delay the alarm if the next cleanup would be too soon
// after it.
- nextCleanupElapsed += 10 * MINUTE_IN_MILLIS;
+ nextCleanupElapsed = mNextCleanupTimeElapsed + 10 * MINUTE_IN_MILLIS;
}
mNextCleanupTimeElapsed = nextCleanupElapsed;
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME, nextCleanupElapsed, ALARM_TAG_CLEANUP,
@@ -1556,9 +1566,9 @@
private void handleNewChargingStateLocked() {
mTimerChargingUpdateFunctor.setStatus(sElapsedRealtimeClock.millis(),
- mChargeTracker.isCharging());
+ mChargeTracker.isChargingLocked());
if (DEBUG) {
- Slog.d(TAG, "handleNewChargingStateLocked: " + mChargeTracker.isCharging());
+ Slog.d(TAG, "handleNewChargingStateLocked: " + mChargeTracker.isChargingLocked());
}
// Deal with Timers first.
mEJPkgTimers.forEach(mTimerChargingUpdateFunctor);
@@ -1827,6 +1837,7 @@
* Track whether we're charging. This has a slightly different definition than that of
* BatteryController.
*/
+ @GuardedBy("mLock")
private boolean mCharging;
ChargingTracker() {
@@ -1846,7 +1857,8 @@
mCharging = batteryManagerInternal.isPowered(BatteryManager.BATTERY_PLUGGED_ANY);
}
- public boolean isCharging() {
+ @GuardedBy("mLock")
+ public boolean isChargingLocked() {
return mCharging;
}
@@ -2055,9 +2067,12 @@
}
return;
}
- if (mRunningBgJobs.remove(jobStatus)
- && !mChargeTracker.isCharging() && mRunningBgJobs.size() == 0) {
- emitSessionLocked(sElapsedRealtimeClock.millis());
+ final long nowElapsed = sElapsedRealtimeClock.millis();
+ final int standbyBucket = JobSchedulerService.standbyBucketForPackage(
+ mPkg.packageName, mPkg.userId, nowElapsed);
+ if (mRunningBgJobs.remove(jobStatus) && mRunningBgJobs.size() == 0
+ && !isQuotaFreeLocked(standbyBucket)) {
+ emitSessionLocked(nowElapsed);
cancelCutoff();
}
}
@@ -2077,6 +2092,7 @@
cancelCutoff();
}
+ @GuardedBy("mLock")
private void emitSessionLocked(long nowElapsed) {
if (mBgJobCount <= 0) {
// Nothing to emit.
@@ -2121,6 +2137,7 @@
}
}
+ @GuardedBy("mLock")
private boolean shouldTrackLocked() {
final long nowElapsed = sElapsedRealtimeClock.millis();
final int standbyBucket = JobSchedulerService.standbyBucketForPackage(mPkg.packageName,
@@ -2132,7 +2149,7 @@
final long topAppGracePeriodEndElapsed = mTopAppGraceCache.get(mUid);
final boolean hasTopAppExemption = !mRegularJobTimer
&& (mTopAppCache.get(mUid) || nowElapsed < topAppGracePeriodEndElapsed);
- return (standbyBucket == RESTRICTED_INDEX || !mChargeTracker.isCharging())
+ return !isQuotaFreeLocked(standbyBucket)
&& !mForegroundUids.get(mUid) && !hasTempAllowlistExemption
&& !hasTopAppExemption;
}
@@ -2462,30 +2479,60 @@
}
}
- private final class DeleteTimingSessionsFunctor implements Consumer<List<TimingSession>> {
- private final Predicate<TimingSession> mTooOld = new Predicate<TimingSession>() {
- public boolean test(TimingSession ts) {
- return ts.endTimeElapsed <= sElapsedRealtimeClock.millis() - MAX_PERIOD_MS;
- }
- };
+ private static final class TimingSessionTooOldPredicate implements Predicate<TimingSession> {
+ private long mNowElapsed;
+
+ private void updateNow() {
+ mNowElapsed = sElapsedRealtimeClock.millis();
+ }
@Override
- public void accept(List<TimingSession> sessions) {
- if (sessions != null) {
- // Remove everything older than MAX_PERIOD_MS time ago.
- sessions.removeIf(mTooOld);
- }
+ public boolean test(TimingSession ts) {
+ return ts.endTimeElapsed <= mNowElapsed - MAX_PERIOD_MS;
}
}
- private final DeleteTimingSessionsFunctor mDeleteOldSessionsFunctor =
- new DeleteTimingSessionsFunctor();
+ private final TimingSessionTooOldPredicate mTimingSessionTooOld =
+ new TimingSessionTooOldPredicate();
+
+ private final Consumer<List<TimingSession>> mDeleteOldSessionsFunctor = sessions -> {
+ if (sessions != null) {
+ // Remove everything older than MAX_PERIOD_MS time ago.
+ sessions.removeIf(mTimingSessionTooOld);
+ }
+ };
@VisibleForTesting
void deleteObsoleteSessionsLocked() {
+ mTimingSessionTooOld.updateNow();
+
+ // Regular sessions
mTimingSessions.forEach(mDeleteOldSessionsFunctor);
- // Don't delete EJ timing sessions here. They'll be removed in
- // getRemainingEJExecutionTimeLocked().
+
+ // EJ sessions
+ for (int uIdx = 0; uIdx < mEJTimingSessions.numMaps(); ++uIdx) {
+ final int userId = mEJTimingSessions.keyAt(uIdx);
+ for (int pIdx = 0; pIdx < mEJTimingSessions.numElementsForKey(userId); ++pIdx) {
+ final String packageName = mEJTimingSessions.keyAt(uIdx, pIdx);
+ final ShrinkableDebits debits = getEJDebitsLocked(userId, packageName);
+ final List<TimingSession> sessions = mEJTimingSessions.get(userId, packageName);
+ if (sessions == null) {
+ continue;
+ }
+
+ while (sessions.size() > 0) {
+ final TimingSession ts = sessions.get(0);
+ if (mTimingSessionTooOld.test(ts)) {
+ // Stale sessions may still be factored into tally. Remove them.
+ final long duration = ts.endTimeElapsed - ts.startTimeElapsed;
+ debits.transactLocked(-duration);
+ sessions.remove(0);
+ } else {
+ break;
+ }
+ }
+ }
+ }
}
private class QcHandler extends Handler {
@@ -4054,7 +4101,7 @@
@Override
public void dumpControllerStateLocked(final IndentingPrintWriter pw,
final Predicate<JobStatus> predicate) {
- pw.println("Is charging: " + mChargeTracker.isCharging());
+ pw.println("Is charging: " + mChargeTracker.isChargingLocked());
pw.println("Current elapsed time: " + sElapsedRealtimeClock.millis());
pw.println();
@@ -4231,7 +4278,8 @@
final long token = proto.start(fieldId);
final long mToken = proto.start(StateControllerProto.QUOTA);
- proto.write(StateControllerProto.QuotaController.IS_CHARGING, mChargeTracker.isCharging());
+ proto.write(StateControllerProto.QuotaController.IS_CHARGING,
+ mChargeTracker.isChargingLocked());
proto.write(StateControllerProto.QuotaController.ELAPSED_REALTIME,
sElapsedRealtimeClock.millis());
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/DeviceIdlenessTracker.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/DeviceIdlenessTracker.java
index 3c4961a..140cca6 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/DeviceIdlenessTracker.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/idle/DeviceIdlenessTracker.java
@@ -56,7 +56,7 @@
private boolean mDockIdle;
private boolean mProjectionActive;
private IdlenessListener mIdleListener;
- private final UiModeManager.OnProjectionStateChangeListener mOnProjectionStateChangeListener =
+ private final UiModeManager.OnProjectionStateChangedListener mOnProjectionStateChangedListener =
this::onProjectionStateChanged;
private AlarmManager.OnAlarmListener mIdleAlarmListener = () -> {
@@ -105,9 +105,9 @@
// TODO(b/172579710): Move the callbacks off the main executor and on to
// JobSchedulerBackgroundThread.getExecutor() once synchronization is fixed in this class.
- context.getSystemService(UiModeManager.class).addOnProjectionStateChangeListener(
+ context.getSystemService(UiModeManager.class).addOnProjectionStateChangedListener(
UiModeManager.PROJECTION_TYPE_ALL, context.getMainExecutor(),
- mOnProjectionStateChangeListener);
+ mOnProjectionStateChangedListener);
}
private void onProjectionStateChanged(@UiModeManager.ProjectionType int activeProjectionTypes,
diff --git a/apex/media/framework/java/android/media/MediaTranscodeManager.java b/apex/media/framework/java/android/media/MediaTranscodeManager.java
index d1106a2..5742d43 100644
--- a/apex/media/framework/java/android/media/MediaTranscodeManager.java
+++ b/apex/media/framework/java/android/media/MediaTranscodeManager.java
@@ -430,10 +430,6 @@
mUid = Os.getuid();
mPid = Os.getpid();
mIsLowRamDevice = mContext.getSystemService(ActivityManager.class).isLowRamDevice();
- IMediaTranscodingService service = getService(false /*retry*/);
- if (service != null) {
- mTranscodingClient = registerClient(service);
- }
}
/**
diff --git a/boot/Android.bp b/boot/Android.bp
index ef2abc8..3caede4 100644
--- a/boot/Android.bp
+++ b/boot/Android.bp
@@ -98,4 +98,12 @@
dest: "hiddenapi-unsupported.csv",
},
],
+
+ required: [
+ "platform-systemserverclasspath",
+ ],
+}
+
+platform_systemserverclasspath {
+ name: "platform-systemserverclasspath",
}
diff --git a/boot/OWNERS b/boot/OWNERS
index 0648888..0e258d0 100644
--- a/boot/OWNERS
+++ b/boot/OWNERS
@@ -1,2 +1,6 @@
# soong-team@ as the platform_bootclasspath module is tightly coupled with Soong
file:platform/build/soong:/OWNERS
+
+# art-team@ manages the boot image profiles for frameworks
+per-file boot-* = calin@google.com, yawanng@google.com, ngeoffray@google.com
+per-file preloaded-classes* = calin@google.com, yawanng@google.com, ngeoffray@google.com
diff --git a/build/boot/boot-image-profile.txt b/build/boot/boot-image-profile.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/build/boot/boot-image-profile.txt
diff --git a/build/boot/preloaded-classes b/build/boot/preloaded-classes
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/build/boot/preloaded-classes
diff --git a/core/api/current.txt b/core/api/current.txt
index 82264c1..de92fd1 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -1821,7 +1821,6 @@
field public static final int notification_large_icon_width = 17104901; // 0x1050005
field public static final int system_app_widget_background_radius;
field public static final int system_app_widget_inner_radius;
- field public static final int system_app_widget_internal_padding;
field public static final int thumbnail_height = 17104897; // 0x1050001
field public static final int thumbnail_width = 17104898; // 0x1050002
}
@@ -52965,7 +52964,7 @@
public interface UiTranslationStateCallback {
method public void onFinished();
method public void onPaused();
- method public void onResumed(@NonNull android.icu.util.ULocale, @NonNull android.icu.util.ULocale);
+ method public default void onResumed(@NonNull android.icu.util.ULocale, @NonNull android.icu.util.ULocale);
method @Deprecated public void onStarted(@NonNull String, @NonNull String);
method public default void onStarted(@NonNull android.icu.util.ULocale, @NonNull android.icu.util.ULocale);
}
diff --git a/core/api/removed.txt b/core/api/removed.txt
index cdaa5f53..8229019a 100644
--- a/core/api/removed.txt
+++ b/core/api/removed.txt
@@ -1,4 +1,12 @@
// Signature format: 2.0
+package android {
+
+ public static final class R.dimen {
+ field public static final int __removed_system_app_widget_internal_padding;
+ }
+
+}
+
package android.app {
public class Notification implements android.os.Parcelable {
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index bffd0e7..e80615a 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -838,12 +838,12 @@
}
public class UiModeManager {
- method @RequiresPermission(android.Manifest.permission.READ_PROJECTION_STATE) public void addOnProjectionStateChangeListener(int, @NonNull java.util.concurrent.Executor, @NonNull android.app.UiModeManager.OnProjectionStateChangeListener);
+ method @RequiresPermission(android.Manifest.permission.READ_PROJECTION_STATE) public void addOnProjectionStateChangedListener(int, @NonNull java.util.concurrent.Executor, @NonNull android.app.UiModeManager.OnProjectionStateChangedListener);
method @RequiresPermission(android.Manifest.permission.ENTER_CAR_MODE_PRIORITIZED) public void enableCarMode(@IntRange(from=0) int, int);
method @RequiresPermission(android.Manifest.permission.READ_PROJECTION_STATE) public int getActiveProjectionTypes();
method @NonNull @RequiresPermission(android.Manifest.permission.READ_PROJECTION_STATE) public java.util.Set<java.lang.String> getProjectingPackages(int);
method @RequiresPermission(value=android.Manifest.permission.TOGGLE_AUTOMOTIVE_PROJECTION, conditional=true) public boolean releaseProjection(int);
- method @RequiresPermission(android.Manifest.permission.READ_PROJECTION_STATE) public void removeOnProjectionStateChangeListener(@NonNull android.app.UiModeManager.OnProjectionStateChangeListener);
+ method @RequiresPermission(android.Manifest.permission.READ_PROJECTION_STATE) public void removeOnProjectionStateChangedListener(@NonNull android.app.UiModeManager.OnProjectionStateChangedListener);
method @RequiresPermission(value=android.Manifest.permission.TOGGLE_AUTOMOTIVE_PROJECTION, conditional=true) public boolean requestProjection(int);
field public static final String ACTION_ENTER_CAR_MODE_PRIORITIZED = "android.app.action.ENTER_CAR_MODE_PRIORITIZED";
field public static final String ACTION_EXIT_CAR_MODE_PRIORITIZED = "android.app.action.EXIT_CAR_MODE_PRIORITIZED";
@@ -855,7 +855,7 @@
field public static final int PROJECTION_TYPE_NONE = 0; // 0x0
}
- public static interface UiModeManager.OnProjectionStateChangeListener {
+ public static interface UiModeManager.OnProjectionStateChangedListener {
method public void onProjectionStateChanged(int, @NonNull java.util.Set<java.lang.String>);
}
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 52b38a2..010f4e4 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -6854,7 +6854,7 @@
writeLongSparseLongArrayToParcel(mAccessCount, parcel);
writeLongSparseLongArrayToParcel(mRejectCount, parcel);
writeLongSparseLongArrayToParcel(mAccessDuration, parcel);
- writeDiscreteAccessArrayToParcel(mDiscreteAccesses, parcel);
+ writeDiscreteAccessArrayToParcel(mDiscreteAccesses, parcel, flags);
}
@Override
@@ -9038,8 +9038,11 @@
*
* @hide
*/
- // TODO (b/186872903) Refactor how sync noted ops are propagaged.
+ // TODO (b/186872903) Refactor how sync noted ops are propagated.
public static void prefixParcelWithAppOpsIfNeeded(@NonNull Parcel p) {
+ if (!isListeningForOpNotedInBinderTransaction()) {
+ return;
+ }
final ArrayMap<String, ArrayMap<String, long[]>> notedAppOps =
sAppOpsNotedInThisBinderTransaction.get();
if (notedAppOps == null) {
@@ -9083,9 +9086,6 @@
}
final String myPackageName = ActivityThread.currentPackageName();
- if (myPackageName == null) {
- return;
- }
synchronized (sLock) {
for (int i = 0; i < packageCount; i++) {
@@ -9105,7 +9105,7 @@
final BitSet notedAppOps = BitSet.valueOf(rawNotedAppOps);
for (int code = notedAppOps.nextSetBit(0); code != -1;
code = notedAppOps.nextSetBit(code + 1)) {
- if (myPackageName.equals(packageName)) {
+ if (Objects.equals(myPackageName, packageName)) {
if (sOnOpNotedCallback != null) {
sOnOpNotedCallback.onNoted(new SyncNotedAppOp(code,
attributionTag, packageName));
@@ -9123,7 +9123,7 @@
}
for (int code = notedAppOps.nextSetBit(0); code != -1;
code = notedAppOps.nextSetBit(code + 1)) {
- if (myPackageName.equals(packageName)) {
+ if (Objects.equals(myPackageName, packageName)) {
sMessageCollector.onNoted(new SyncNotedAppOp(code,
attributionTag, packageName));
}
@@ -9711,29 +9711,16 @@
}
private static void writeDiscreteAccessArrayToParcel(
- @Nullable List<AttributedOpEntry> array, @NonNull Parcel parcel) {
- if (array != null) {
- final int size = array.size();
- parcel.writeInt(size);
- for (int i = 0; i < size; i++) {
- array.get(i).writeToParcel(parcel, 0);
- }
- } else {
- parcel.writeInt(-1);
- }
+ @Nullable List<AttributedOpEntry> array, @NonNull Parcel parcel, int flags) {
+ ParceledListSlice<AttributedOpEntry> listSlice =
+ array == null ? null : new ParceledListSlice<>(array);
+ parcel.writeParcelable(listSlice, flags);
}
private static @Nullable List<AttributedOpEntry> readDiscreteAccessArrayFromParcel(
@NonNull Parcel parcel) {
- final int size = parcel.readInt();
- if (size < 0) {
- return null;
- }
- final List<AttributedOpEntry> array = new ArrayList<>(size);
- for (int i = 0; i < size; i++) {
- array.add(new AttributedOpEntry(parcel));
- }
- return array;
+ final ParceledListSlice<AttributedOpEntry> listSlice = parcel.readParcelable(null);
+ return listSlice == null ? null : listSlice.getList();
}
/**
diff --git a/core/java/android/app/IOnProjectionStateChangeListener.aidl b/core/java/android/app/IOnProjectionStateChangedListener.aidl
similarity index 93%
rename from core/java/android/app/IOnProjectionStateChangeListener.aidl
rename to core/java/android/app/IOnProjectionStateChangedListener.aidl
index f154985..2d2bf7f 100644
--- a/core/java/android/app/IOnProjectionStateChangeListener.aidl
+++ b/core/java/android/app/IOnProjectionStateChangedListener.aidl
@@ -17,6 +17,6 @@
package android.app;
/** {@hide} */
-oneway interface IOnProjectionStateChangeListener {
+oneway interface IOnProjectionStateChangedListener {
void onProjectionStateChanged(int activeProjectionTypes, in List<String> projectingPackages);
}
\ No newline at end of file
diff --git a/core/java/android/app/IUiModeManager.aidl b/core/java/android/app/IUiModeManager.aidl
index f71eebdc..9f21bcc 100644
--- a/core/java/android/app/IUiModeManager.aidl
+++ b/core/java/android/app/IUiModeManager.aidl
@@ -16,7 +16,7 @@
package android.app;
-import android.app.IOnProjectionStateChangeListener;
+import android.app.IOnProjectionStateChangedListener;
/**
* Interface used to control special UI modes.
@@ -119,12 +119,12 @@
/**
* Registers a listener for changes to projection state.
*/
- void addOnProjectionStateChangeListener(in IOnProjectionStateChangeListener listener, int projectionType);
+ void addOnProjectionStateChangedListener(in IOnProjectionStateChangedListener listener, int projectionType);
/**
* Unregisters a listener for changes to projection state.
*/
- void removeOnProjectionStateChangeListener(in IOnProjectionStateChangeListener listener);
+ void removeOnProjectionStateChangedListener(in IOnProjectionStateChangedListener listener);
/**
* Returns packages that have currently set the given projection type.
diff --git a/core/java/android/app/PictureInPictureUiState.java b/core/java/android/app/PictureInPictureUiState.java
index 3d2cb3f..32ce89a 100644
--- a/core/java/android/app/PictureInPictureUiState.java
+++ b/core/java/android/app/PictureInPictureUiState.java
@@ -42,7 +42,20 @@
}
/**
- * Returns whether Picture-in-Picture is stashed or not.
+ * Returns whether Picture-in-Picture is stashed or not. A stashed PiP means it is only
+ * partially visible to the user, with some parts of it being off-screen. This is usually
+ * an UI state that is triggered by the user, such as flinging the PiP to the edge or letting go
+ * of PiP while dragging partially off-screen.
+ *
+ * Developers can use this in conjunction with
+ * {@link Activity#onPictureInPictureUiStateChanged(PictureInPictureUiState)} to get a signal
+ * when the PiP stash state has changed. For example, if the state changed from {@code false} to
+ * {@code true}, developers can choose to temporarily pause video playback if PiP is of video
+ * content. Vice versa, if changing from {@code true} to {@code false} and video content is
+ * paused, developers can resumevideo playback.
+ *
+ * @see <a href="http://developer.android.com/about/versions/12/features/pip-improvements">
+ * Picture in Picture (PiP) improvements</a>
*/
public boolean isStashed() {
return mIsStashed;
diff --git a/core/java/android/app/UiModeManager.java b/core/java/android/app/UiModeManager.java
index 24fd04b..973a8fb 100644
--- a/core/java/android/app/UiModeManager.java
+++ b/core/java/android/app/UiModeManager.java
@@ -79,7 +79,7 @@
* @hide
*/
@SystemApi
- public interface OnProjectionStateChangeListener {
+ public interface OnProjectionStateChangedListener {
/**
* Callback invoked when projection state changes for a {@link ProjectionType} for which
* this listener was added.
@@ -254,10 +254,10 @@
private final Object mLock = new Object();
/**
* Map that stores internally created {@link InnerListener} objects keyed by their corresponding
- * externally provided {@link OnProjectionStateChangeListener} objects.
+ * externally provided callback objects.
*/
@GuardedBy("mLock")
- private final Map<OnProjectionStateChangeListener, InnerListener>
+ private final Map<OnProjectionStateChangedListener, InnerListener>
mProjectionStateListenerMap = new ArrayMap<>();
/**
@@ -265,9 +265,9 @@
* fail to remove listeners.
*/
@GuardedBy("mLock")
- private final OnProjectionStateChangeListenerResourceManager
- mOnProjectionStateChangeListenerResourceManager =
- new OnProjectionStateChangeListenerResourceManager();
+ private final OnProjectionStateChangedListenerResourceManager
+ mOnProjectionStateChangedListenerResourceManager =
+ new OnProjectionStateChangedListenerResourceManager();
@UnsupportedAppUsage
/*package*/ UiModeManager() throws ServiceNotFoundException {
@@ -687,7 +687,7 @@
/**
* Indicates no projection type. Can be used to compare with the {@link ProjectionType} in
- * {@link OnProjectionStateChangeListener#onProjectionStateChanged(int, Set)}.
+ * {@link OnProjectionStateChangedListener#onProjectionStateChanged(int, Set)}.
*
* @hide
*/
@@ -706,7 +706,7 @@
public static final int PROJECTION_TYPE_AUTOMOTIVE = 0x0001;
/**
* Indicates all projection types. For use with
- * {@link #addOnProjectionStateChangeListener(int, Executor, OnProjectionStateChangeListener)}
+ * {@link #addOnProjectionStateChangedListener(int, Executor, OnProjectionStateChangedListener)}
* and {@link #getProjectingPackages(int)}.
*
* @hide
@@ -829,15 +829,15 @@
*
* @param projectionType one or more {@link ProjectionType}s to listen for changes regarding
* @param executor an {@link Executor} on which to invoke the callbacks
- * @param listener the {@link OnProjectionStateChangeListener} to add
+ * @param listener the {@link OnProjectionStateChangedListener} to add
*
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.READ_PROJECTION_STATE)
- public void addOnProjectionStateChangeListener(@ProjectionType int projectionType,
+ public void addOnProjectionStateChangedListener(@ProjectionType int projectionType,
@NonNull @CallbackExecutor Executor executor,
- @NonNull OnProjectionStateChangeListener listener) {
+ @NonNull OnProjectionStateChangedListener listener) {
synchronized (mLock) {
if (mProjectionStateListenerMap.containsKey(listener)) {
Slog.i(TAG, "Attempted to add listener that was already added.");
@@ -845,12 +845,12 @@
}
if (mService != null) {
InnerListener innerListener = new InnerListener(executor, listener,
- mOnProjectionStateChangeListenerResourceManager);
+ mOnProjectionStateChangedListenerResourceManager);
try {
- mService.addOnProjectionStateChangeListener(innerListener, projectionType);
+ mService.addOnProjectionStateChangedListener(innerListener, projectionType);
mProjectionStateListenerMap.put(listener, innerListener);
} catch (RemoteException e) {
- mOnProjectionStateChangeListenerResourceManager.remove(innerListener);
+ mOnProjectionStateChangedListenerResourceManager.remove(innerListener);
throw e.rethrowFromSystemServer();
}
}
@@ -860,14 +860,14 @@
/**
* Removes the listener so it stops receiving updates for all {@link ProjectionType}s.
*
- * @param listener the {@link OnProjectionStateChangeListener} to remove
+ * @param listener the {@link OnProjectionStateChangedListener} to remove
*
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.READ_PROJECTION_STATE)
- public void removeOnProjectionStateChangeListener(
- @NonNull OnProjectionStateChangeListener listener) {
+ public void removeOnProjectionStateChangedListener(
+ @NonNull OnProjectionStateChangedListener listener) {
synchronized (mLock) {
InnerListener innerListener = mProjectionStateListenerMap.get(listener);
if (innerListener == null) {
@@ -876,23 +876,23 @@
}
if (mService != null) {
try {
- mService.removeOnProjectionStateChangeListener(innerListener);
+ mService.removeOnProjectionStateChangedListener(innerListener);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
mProjectionStateListenerMap.remove(listener);
- mOnProjectionStateChangeListenerResourceManager.remove(innerListener);
+ mOnProjectionStateChangedListenerResourceManager.remove(innerListener);
}
}
- private static class InnerListener extends IOnProjectionStateChangeListener.Stub {
- private final WeakReference<OnProjectionStateChangeListenerResourceManager>
+ private static class InnerListener extends IOnProjectionStateChangedListener.Stub {
+ private final WeakReference<OnProjectionStateChangedListenerResourceManager>
mResourceManager;
private InnerListener(@NonNull Executor executor,
- @NonNull OnProjectionStateChangeListener outerListener,
- @NonNull OnProjectionStateChangeListenerResourceManager resourceManager) {
+ @NonNull OnProjectionStateChangedListener outerListener,
+ @NonNull OnProjectionStateChangedListenerResourceManager resourceManager) {
resourceManager.put(this, executor, outerListener);
mResourceManager = new WeakReference<>(resourceManager);
}
@@ -900,13 +900,14 @@
@Override
public void onProjectionStateChanged(int activeProjectionTypes,
List<String> projectingPackages) {
- OnProjectionStateChangeListenerResourceManager resourceManager = mResourceManager.get();
+ OnProjectionStateChangedListenerResourceManager resourceManager =
+ mResourceManager.get();
if (resourceManager == null) {
Slog.w(TAG, "Can't execute onProjectionStateChanged, resource manager is gone.");
return;
}
- OnProjectionStateChangeListener outerListener = resourceManager.getOuterListener(this);
+ OnProjectionStateChangedListener outerListener = resourceManager.getOuterListener(this);
Executor executor = resourceManager.getExecutor(this);
if (outerListener == null || executor == null) {
Slog.w(TAG, "Can't execute onProjectionStatechanged, references are null.");
@@ -914,7 +915,7 @@
}
executor.execute(PooledLambda.obtainRunnable(
- OnProjectionStateChangeListener::onProjectionStateChanged,
+ OnProjectionStateChangedListener::onProjectionStateChanged,
outerListener,
activeProjectionTypes,
new ArraySet<>(projectingPackages)).recycleOnUse());
@@ -924,15 +925,15 @@
/**
* Wrapper class that ensures we don't leak {@link Activity} or other large {@link Context} in
* which this {@link UiModeManager} resides if/when it ends without unregistering associated
- * {@link OnProjectionStateChangeListener}s.
+ * callback objects.
*/
- private static class OnProjectionStateChangeListenerResourceManager {
- private final Map<InnerListener, OnProjectionStateChangeListener> mOuterListenerMap =
+ private static class OnProjectionStateChangedListenerResourceManager {
+ private final Map<InnerListener, OnProjectionStateChangedListener> mOuterListenerMap =
new ArrayMap<>(1);
private final Map<InnerListener, Executor> mExecutorMap = new ArrayMap<>(1);
void put(@NonNull InnerListener innerListener, @NonNull Executor executor,
- OnProjectionStateChangeListener outerListener) {
+ OnProjectionStateChangedListener outerListener) {
mOuterListenerMap.put(innerListener, outerListener);
mExecutorMap.put(innerListener, executor);
}
@@ -942,7 +943,7 @@
mExecutorMap.remove(innerListener);
}
- OnProjectionStateChangeListener getOuterListener(@NonNull InnerListener innerListener) {
+ OnProjectionStateChangedListener getOuterListener(@NonNull InnerListener innerListener) {
return mOuterListenerMap.get(innerListener);
}
diff --git a/core/java/android/app/WallpaperColors.java b/core/java/android/app/WallpaperColors.java
index d640a6f..be62deb7 100644
--- a/core/java/android/app/WallpaperColors.java
+++ b/core/java/android/app/WallpaperColors.java
@@ -95,12 +95,12 @@
private static final float MIN_COLOR_OCCURRENCE = 0.05f;
// Decides when dark theme is optimal for this wallpaper
- private static final float DARK_THEME_MEAN_LUMINANCE = 0.25f;
+ private static final float DARK_THEME_MEAN_LUMINANCE = 0.3f;
// Minimum mean luminosity that an image needs to have to support dark text
- private static final float BRIGHT_IMAGE_MEAN_LUMINANCE = 0.75f;
+ private static final float BRIGHT_IMAGE_MEAN_LUMINANCE = 0.7f;
// We also check if the image has dark pixels in it,
// to avoid bright images with some dark spots.
- private static final float DARK_PIXEL_CONTRAST = 6f;
+ private static final float DARK_PIXEL_CONTRAST = 5.5f;
private static final float MAX_DARK_AREA = 0.025f;
private final List<Color> mMainColors;
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 609c014..02e64b8 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -4573,27 +4573,6 @@
}
/**
- * Determine whether the current profile password the user has set is sufficient
- * to meet the policy requirements (e.g. quality, minimum length) that have been
- * requested by the admins of the parent user and its profiles.
- *
- * @param userHandle the userId of the profile to check the password for.
- * @return Returns true if the password would meet the current requirements, else false.
- * @throws SecurityException if {@code userHandle} is not a managed profile.
- * @hide
- */
- public boolean isProfileActivePasswordSufficientForParent(int userHandle) {
- if (mService != null) {
- try {
- return mService.isProfileActivePasswordSufficientForParent(userHandle);
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
- }
- return false;
- }
-
- /**
* Returns whether the given user's credential will be sufficient for all password policy
* requirement, once the user's profile has switched to unified challenge.
*
diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl
index 370db60..9f76bd1 100644
--- a/core/java/android/app/admin/IDevicePolicyManager.aidl
+++ b/core/java/android/app/admin/IDevicePolicyManager.aidl
@@ -88,7 +88,6 @@
boolean isActivePasswordSufficient(int userHandle, boolean parent);
boolean isActivePasswordSufficientForDeviceRequirement();
- boolean isProfileActivePasswordSufficientForParent(int userHandle);
boolean isPasswordSufficientAfterProfileUnification(int userHandle, int profileUser);
int getPasswordComplexity(boolean parent);
void setRequiredPasswordComplexity(int passwordComplexity, boolean parent);
diff --git a/core/java/android/app/admin/OWNERS b/core/java/android/app/admin/OWNERS
index 8462cbe..6acbef2 100644
--- a/core/java/android/app/admin/OWNERS
+++ b/core/java/android/app/admin/OWNERS
@@ -3,9 +3,9 @@
# Android Enterprise team
rubinxu@google.com
sandness@google.com
-eranm@google.com
alexkershaw@google.com
pgrafov@google.com
# Emeritus
yamasani@google.com
+eranm@google.com
diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java
index 82da4fb..152de44 100644
--- a/core/java/android/appwidget/AppWidgetHostView.java
+++ b/core/java/android/appwidget/AppWidgetHostView.java
@@ -17,6 +17,7 @@
package android.appwidget;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.app.Activity;
import android.app.ActivityOptions;
import android.compat.annotation.UnsupportedAppUsage;
@@ -68,6 +69,7 @@
static final String TAG = "AppWidgetHostView";
private static final String KEY_JAILED_ARRAY = "jail";
+ private static final String KEY_INFLATION_ID = "inflation_id";
static final boolean LOGD = false;
@@ -97,9 +99,12 @@
private RemoteViews.ColorResources mColorResources = null;
// Stores the last remote views last inflated.
private RemoteViews mLastInflatedRemoteViews = null;
+ private long mLastInflatedRemoteViewsId = -1;
private Executor mAsyncExecutor;
private CancellationSignal mLastExecutionSignal;
+ private SparseArray<Parcelable> mDelayedRestoredState;
+ private long mDelayedRestoredInflationId;
/**
* Create a host view. Uses default fade animations.
@@ -226,6 +231,8 @@
Bundle bundle = new Bundle();
bundle.putSparseParcelableArray(KEY_JAILED_ARRAY, jail);
+ bundle.putLong(KEY_INFLATION_ID, mLastInflatedRemoteViewsId);
+ container.put(generateId(), bundle);
container.put(generateId(), bundle);
}
@@ -239,14 +246,30 @@
final Parcelable parcelable = container.get(generateId());
SparseArray<Parcelable> jail = null;
+ long inflationId = -1;
if (parcelable instanceof Bundle) {
- jail = ((Bundle) parcelable).getSparseParcelableArray(KEY_JAILED_ARRAY);
+ Bundle bundle = (Bundle) parcelable;
+ jail = bundle.getSparseParcelableArray(KEY_JAILED_ARRAY);
+ inflationId = bundle.getLong(KEY_INFLATION_ID, -1);
}
if (jail == null) jail = new SparseArray<>();
+ mDelayedRestoredState = jail;
+ mDelayedRestoredInflationId = inflationId;
+ restoreInstanceState();
+ }
+
+ void restoreInstanceState() {
+ long inflationId = mDelayedRestoredInflationId;
+ SparseArray<Parcelable> state = mDelayedRestoredState;
+ if (inflationId == -1 || inflationId != mLastInflatedRemoteViewsId) {
+ return; // We don't restore.
+ }
+ mDelayedRestoredInflationId = -1;
+ mDelayedRestoredState = null;
try {
- super.dispatchRestoreInstanceState(jail);
+ super.dispatchRestoreInstanceState(state);
} catch (Exception e) {
Log.e(TAG, "failed to restoreInstanceState for widget id: " + mAppWidgetId + ", "
+ (mInfo == null ? "null" : mInfo.provider), e);
@@ -476,7 +499,7 @@
* AppWidget provider. Will animate into these new views as needed
*/
public void updateAppWidget(RemoteViews remoteViews) {
- this.mLastInflatedRemoteViews = remoteViews;
+ mLastInflatedRemoteViews = remoteViews;
applyRemoteViews(remoteViews, true);
}
@@ -484,17 +507,23 @@
* Reapply the last inflated remote views, or the default view is none was inflated.
*/
private void reapplyLastRemoteViews() {
+ SparseArray<Parcelable> savedState = new SparseArray<>();
+ saveHierarchyState(savedState);
applyRemoteViews(mLastInflatedRemoteViews, true);
+ restoreHierarchyState(savedState);
}
/**
* @hide
*/
- protected void applyRemoteViews(RemoteViews remoteViews, boolean useAsyncIfPossible) {
+ protected void applyRemoteViews(@Nullable RemoteViews remoteViews, boolean useAsyncIfPossible) {
boolean recycled = false;
View content = null;
Exception exception = null;
+ // Block state restore until the end of the apply.
+ mLastInflatedRemoteViewsId = -1;
+
if (mLastExecutionSignal != null) {
mLastExecutionSignal.cancel();
mLastExecutionSignal = null;
@@ -525,6 +554,7 @@
rvToApply.reapply(mContext, mView, mInteractionHandler, mCurrentSize,
mColorResources);
content = mView;
+ mLastInflatedRemoteViewsId = rvToApply.computeUniqueId(remoteViews);
recycled = true;
if (LOGD) Log.d(TAG, "was able to recycle existing layout");
} catch (RuntimeException e) {
@@ -537,6 +567,7 @@
try {
content = rvToApply.apply(mContext, this, mInteractionHandler,
mCurrentSize, mColorResources);
+ mLastInflatedRemoteViewsId = rvToApply.computeUniqueId(remoteViews);
if (LOGD) Log.d(TAG, "had to inflate new layout");
} catch (RuntimeException e) {
exception = e;
@@ -557,7 +588,7 @@
return ;
}
if (exception != null) {
- Log.w(TAG, "Error inflating RemoteViews : " + exception.toString());
+ Log.w(TAG, "Error inflating RemoteViews", exception);
}
content = getErrorView();
mViewMode = VIEW_MODE_ERROR;
@@ -574,12 +605,16 @@
}
}
- private void inflateAsync(RemoteViews remoteViews) {
+ private void inflateAsync(@NonNull RemoteViews remoteViews) {
// Prepare a local reference to the remote Context so we're ready to
// inflate any requested LayoutParams.
mRemoteContext = getRemoteContext();
int layoutId = remoteViews.getLayoutId();
+ if (mLastExecutionSignal != null) {
+ mLastExecutionSignal.cancel();
+ }
+
// If our stale view has been prepared to match active, and the new
// layout matches, try recycling it
if (layoutId == mLayoutId && mView != null) {
@@ -611,7 +646,10 @@
private final boolean mIsReapply;
private final int mLayoutId;
- public ViewApplyListener(RemoteViews views, int layoutId, boolean isReapply) {
+ ViewApplyListener(
+ RemoteViews views,
+ int layoutId,
+ boolean isReapply) {
mViews = views;
mLayoutId = layoutId;
mIsReapply = isReapply;
@@ -623,6 +661,10 @@
mViewMode = VIEW_MODE_CONTENT;
applyContent(v, mIsReapply, null);
+
+ mLastInflatedRemoteViewsId = mViews.computeUniqueId(mLastInflatedRemoteViews);
+ restoreInstanceState();
+ mLastExecutionSignal = null;
}
@Override
@@ -638,6 +680,7 @@
} else {
applyContent(null, false, e);
}
+ mLastExecutionSignal = null;
}
}
@@ -743,7 +786,7 @@
}
if (exception != null) {
- Log.w(TAG, "Error inflating AppWidget " + mInfo + ": " + exception.toString());
+ Log.w(TAG, "Error inflating AppWidget " + mInfo, exception);
}
if (defaultView == null) {
diff --git a/core/java/android/appwidget/AppWidgetProviderInfo.java b/core/java/android/appwidget/AppWidgetProviderInfo.java
index 3db1885..063ba11 100644
--- a/core/java/android/appwidget/AppWidgetProviderInfo.java
+++ b/core/java/android/appwidget/AppWidgetProviderInfo.java
@@ -455,13 +455,14 @@
@Nullable
public final CharSequence loadDescription(@NonNull Context context) {
if (ResourceId.isValid(descriptionRes)) {
- return context.getPackageManager()
- .getText(
+ CharSequence description =
+ context.getPackageManager().getText(
providerInfo.packageName,
descriptionRes,
- providerInfo.applicationInfo)
- .toString()
- .trim();
+ providerInfo.applicationInfo);
+ if (description != null) {
+ return description.toString().trim();
+ }
}
return null;
}
diff --git a/core/java/android/content/pm/BaseParceledListSlice.java b/core/java/android/content/pm/BaseParceledListSlice.java
index 5c7a548..7bade74 100644
--- a/core/java/android/content/pm/BaseParceledListSlice.java
+++ b/core/java/android/content/pm/BaseParceledListSlice.java
@@ -75,16 +75,7 @@
if (p.readInt() == 0) {
break;
}
-
- final T parcelable = readCreator(creator, p, loader);
- if (listElementClass == null) {
- listElementClass = parcelable.getClass();
- } else {
- verifySameType(listElementClass, parcelable.getClass());
- }
-
- mList.add(parcelable);
-
+ listElementClass = readVerifyAndAddElement(creator, p, loader, listElementClass);
if (DEBUG) Log.d(TAG, "Read inline #" + i + ": " + mList.get(mList.size()-1));
i++;
}
@@ -104,11 +95,8 @@
return;
}
while (i < N && reply.readInt() != 0) {
- final T parcelable = readCreator(creator, reply, loader);
- verifySameType(listElementClass, parcelable.getClass());
-
- mList.add(parcelable);
-
+ listElementClass = readVerifyAndAddElement(creator, reply, loader,
+ listElementClass);
if (DEBUG) Log.d(TAG, "Read extra #" + i + ": " + mList.get(mList.size()-1));
i++;
}
@@ -117,6 +105,18 @@
}
}
+ private Class<?> readVerifyAndAddElement(Parcelable.Creator<?> creator, Parcel p,
+ ClassLoader loader, Class<?> listElementClass) {
+ final T parcelable = readCreator(creator, p, loader);
+ if (listElementClass == null) {
+ listElementClass = parcelable.getClass();
+ } else {
+ verifySameType(listElementClass, parcelable.getClass());
+ }
+ mList.add(parcelable);
+ return listElementClass;
+ }
+
private T readCreator(Parcelable.Creator<?> creator, Parcel p, ClassLoader loader) {
if (creator instanceof Parcelable.ClassLoaderCreator<?>) {
Parcelable.ClassLoaderCreator<?> classLoaderCreator =
diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java
index 51d196d..17116e2 100644
--- a/core/java/android/hardware/input/InputManager.java
+++ b/core/java/android/hardware/input/InputManager.java
@@ -223,14 +223,6 @@
public static final long BLOCK_FLAG_SLIPPERY = android.os.IInputConstants.BLOCK_FLAG_SLIPPERY;
/**
- * Check whether apps are using MotionEvent.getRawX/Y. This is implementation-specific, and
- * thus undefined for most 3p app usages.
- * @hide
- */
- @ChangeId
- public static final long APP_USES_RAW_INPUT_COORDS = 179274888L;
-
- /**
* Input Event Injection Synchronization Mode: None.
* Never blocks. Injection is asynchronous and is assumed always to be successful.
* @hide
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index c8e5e42..c51c506 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -2660,7 +2660,6 @@
private static final class ContentProviderHolder {
private final Object mLock = new Object();
- @GuardedBy("mLock")
private final Uri mUri;
@GuardedBy("mLock")
@UnsupportedAppUsage
diff --git a/core/java/android/util/JsonReader.java b/core/java/android/util/JsonReader.java
index 50f63f8..c75e238 100644
--- a/core/java/android/util/JsonReader.java
+++ b/core/java/android/util/JsonReader.java
@@ -16,7 +16,7 @@
package android.util;
-import libcore.internal.StringPool;
+import com.android.internal.util.StringPool;
import java.io.Closeable;
import java.io.EOFException;
diff --git a/core/java/android/view/MotionEvent.java b/core/java/android/view/MotionEvent.java
index 31ca8e1..0483d0b 100644
--- a/core/java/android/view/MotionEvent.java
+++ b/core/java/android/view/MotionEvent.java
@@ -16,7 +16,6 @@
package android.view;
-import static android.hardware.input.InputManager.APP_USES_RAW_INPUT_COORDS;
import static android.view.Display.DEFAULT_DISPLAY;
import static java.lang.annotation.RetentionPolicy.SOURCE;
@@ -24,7 +23,6 @@
import android.annotation.IntDef;
import android.annotation.Nullable;
import android.annotation.TestApi;
-import android.compat.Compatibility;
import android.compat.annotation.UnsupportedAppUsage;
import android.graphics.Matrix;
import android.os.Build;
@@ -487,6 +485,15 @@
public static final int FLAG_CANCELED = 0x20;
/**
+ * This flag indicates that the event will not cause a focus change if it is directed to an
+ * unfocused window, even if it an {@link #ACTION_DOWN}. This is typically used with pointer
+ * gestures to allow the user to direct gestures to an unfocused window without bringing the
+ * window into focus.
+ * @hide
+ */
+ public static final int FLAG_NO_FOCUS_CHANGE = 0x40;
+
+ /**
* Private flag that indicates when the system has detected that this motion event
* may be inconsistent with respect to the sequence of previously delivered motion events,
* such as when a pointer move event is sent but the pointer is not down.
@@ -1569,6 +1576,8 @@
int axis, int pointerIndex, int historyPos);
@FastNative
private static native void nativeTransform(long nativePtr, Matrix matrix);
+ @FastNative
+ private static native void nativeApplyTransform(long nativePtr, Matrix matrix);
// -------------- @CriticalNative ----------------------
@@ -2674,7 +2683,6 @@
* @see #AXIS_X
*/
public final float getRawX() {
- Compatibility.reportUnconditionalChange(APP_USES_RAW_INPUT_COORDS);
return nativeGetRawAxisValue(mNativePtr, AXIS_X, 0, HISTORY_CURRENT);
}
@@ -2688,7 +2696,6 @@
* @see #AXIS_Y
*/
public final float getRawY() {
- Compatibility.reportUnconditionalChange(APP_USES_RAW_INPUT_COORDS);
return nativeGetRawAxisValue(mNativePtr, AXIS_Y, 0, HISTORY_CURRENT);
}
@@ -2705,7 +2712,6 @@
* @see #AXIS_X
*/
public float getRawX(int pointerIndex) {
- Compatibility.reportUnconditionalChange(APP_USES_RAW_INPUT_COORDS);
return nativeGetRawAxisValue(mNativePtr, AXIS_X, pointerIndex, HISTORY_CURRENT);
}
@@ -2722,7 +2728,6 @@
* @see #AXIS_Y
*/
public float getRawY(int pointerIndex) {
- Compatibility.reportUnconditionalChange(APP_USES_RAW_INPUT_COORDS);
return nativeGetRawAxisValue(mNativePtr, AXIS_Y, pointerIndex, HISTORY_CURRENT);
}
@@ -3266,6 +3271,21 @@
}
/**
+ * Transforms all of the points in the event directly instead of modifying the event's
+ * internal transform.
+ *
+ * @param matrix The transformation matrix to apply.
+ * @hide
+ */
+ public void applyTransform(Matrix matrix) {
+ if (matrix == null) {
+ throw new IllegalArgumentException("matrix must not be null");
+ }
+
+ nativeApplyTransform(mNativePtr, matrix);
+ }
+
+ /**
* Add a new movement to the batch of movements in this event. The event's
* current location, position and size is updated to the new values.
* The current values in the event are added to a list of historical values.
diff --git a/core/java/android/view/SyncRtSurfaceTransactionApplier.java b/core/java/android/view/SyncRtSurfaceTransactionApplier.java
index 162c71b..3e21103 100644
--- a/core/java/android/view/SyncRtSurfaceTransactionApplier.java
+++ b/core/java/android/view/SyncRtSurfaceTransactionApplier.java
@@ -54,20 +54,21 @@
/**
* Schedules applying surface parameters on the next frame.
*
- * @param params The surface parameters to apply. DO NOT MODIFY the list after passing into
- * this method to avoid synchronization issues.
+ * @param params The surface parameters to apply.
*/
public void scheduleApply(final SurfaceParams... params) {
if (mTargetViewRootImpl == null) {
return;
}
mTargetSc = mTargetViewRootImpl.getSurfaceControl();
+ final Transaction t = new Transaction();
+ applyParams(t, params);
+
mTargetViewRootImpl.registerRtFrameCallback(frame -> {
if (mTargetSc == null || !mTargetSc.isValid()) {
return;
}
- Transaction t = new Transaction();
- applyParams(t, frame, params);
+ applyTransaction(t, frame);
});
// Make sure a frame gets scheduled.
@@ -78,15 +79,17 @@
* Applies surface parameters on the next frame.
* @param t transaction to apply all parameters in.
* @param frame frame to synchronize to. Set -1 when sync is not required.
- * @param params The surface parameters to apply. DO NOT MODIFY the list after passing into
- * this method to avoid synchronization issues.
+ * @param params The surface parameters to apply.
*/
- void applyParams(Transaction t, long frame, final SurfaceParams... params) {
+ void applyParams(Transaction t, final SurfaceParams... params) {
for (int i = params.length - 1; i >= 0; i--) {
SurfaceParams surfaceParams = params[i];
SurfaceControl surface = surfaceParams.surface;
applyParams(t, surfaceParams, mTmpFloat9);
}
+ }
+
+ void applyTransaction(Transaction t, long frame) {
if (mTargetViewRootImpl != null) {
mTargetViewRootImpl.mergeWithNextTransaction(t, frame);
} else {
diff --git a/core/java/android/view/ViewRootInsetsControllerHost.java b/core/java/android/view/ViewRootInsetsControllerHost.java
index 514fb29..d8cd605 100644
--- a/core/java/android/view/ViewRootInsetsControllerHost.java
+++ b/core/java/android/view/ViewRootInsetsControllerHost.java
@@ -127,7 +127,9 @@
// Window doesn't support hardware acceleration, no synchronization for now.
// TODO(b/149342281): use mViewRoot.mSurface.getNextFrameNumber() to sync on every
// frame instead.
- mApplier.applyParams(new SurfaceControl.Transaction(), -1 /* frame */, params);
+ final SurfaceControl.Transaction t = new SurfaceControl.Transaction();
+ mApplier.applyParams(t, params);
+ mApplier.applyTransaction(t, -1);
}
}
diff --git a/core/java/android/view/translation/UiTranslationStateCallback.java b/core/java/android/view/translation/UiTranslationStateCallback.java
index 968cbdc..1bae0ef 100644
--- a/core/java/android/view/translation/UiTranslationStateCallback.java
+++ b/core/java/android/view/translation/UiTranslationStateCallback.java
@@ -54,7 +54,9 @@
* The system is requesting that the application restore from the temporarily paused state and
* show the content in translated language.
*/
- void onResumed(@NonNull ULocale sourceLocale, @NonNull ULocale targetLocale);
+ // TODO: Remove the default implementation when clients have implemented this.
+ default void onResumed(@NonNull ULocale sourceLocale, @NonNull ULocale targetLocale) {
+ }
/**
* The UI Translation session has ended.
diff --git a/core/java/android/webkit/WebViewDelegate.java b/core/java/android/webkit/WebViewDelegate.java
index 6b49569..ad123c1 100644
--- a/core/java/android/webkit/WebViewDelegate.java
+++ b/core/java/android/webkit/WebViewDelegate.java
@@ -16,10 +16,10 @@
package android.webkit;
-import android.annotation.ElapsedRealtimeLong;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
+import android.annotation.UptimeMillisLong;
import android.app.ActivityThread;
import android.app.Application;
import android.app.ResourcesManager;
@@ -227,7 +227,7 @@
* WebViewChromiumFactoryProvider#create method was invoked.
*/
@NonNull
- @ElapsedRealtimeLong
+ @UptimeMillisLong
public long[] getTimestamps() {
return WebViewFactory.getTimestamps();
}
diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java
index 5fc5b29..9a38512 100644
--- a/core/java/android/webkit/WebViewFactory.java
+++ b/core/java/android/webkit/WebViewFactory.java
@@ -273,7 +273,7 @@
// us honest and minimize usage of WebView internals when binding the proxy.
if (sProviderInstance != null) return sProviderInstance;
- sTimestamps[WEBVIEW_LOAD_START] = SystemClock.elapsedRealtime();
+ sTimestamps[WEBVIEW_LOAD_START] = SystemClock.uptimeMillis();
final int uid = android.os.Process.myUid();
if (uid == android.os.Process.ROOT_UID || uid == android.os.Process.SYSTEM_UID
|| uid == android.os.Process.PHONE_UID || uid == android.os.Process.NFC_UID
@@ -413,7 +413,7 @@
Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW,
"initialApplication.createApplicationContext");
- sTimestamps[CREATE_CONTEXT_START] = SystemClock.elapsedRealtime();
+ sTimestamps[CREATE_CONTEXT_START] = SystemClock.uptimeMillis();
try {
// Construct an app context to load the Java code into the current app.
Context webViewContext = initialApplication.createApplicationContext(
@@ -422,7 +422,7 @@
sPackageInfo = newPackageInfo;
return webViewContext;
} finally {
- sTimestamps[CREATE_CONTEXT_END] = SystemClock.elapsedRealtime();
+ sTimestamps[CREATE_CONTEXT_END] = SystemClock.uptimeMillis();
Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW);
}
} catch (RemoteException | PackageManager.NameNotFoundException e) {
@@ -448,26 +448,26 @@
Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "WebViewFactory.getChromiumProviderClass()");
try {
- sTimestamps[ADD_ASSETS_START] = SystemClock.elapsedRealtime();
+ sTimestamps[ADD_ASSETS_START] = SystemClock.uptimeMillis();
for (String newAssetPath : webViewContext.getApplicationInfo().getAllApkPaths()) {
initialApplication.getAssets().addAssetPathAsSharedLibrary(newAssetPath);
}
sTimestamps[ADD_ASSETS_END] = sTimestamps[GET_CLASS_LOADER_START] =
- SystemClock.elapsedRealtime();
+ SystemClock.uptimeMillis();
ClassLoader clazzLoader = webViewContext.getClassLoader();
Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "WebViewFactory.loadNativeLibrary()");
sTimestamps[GET_CLASS_LOADER_END] = sTimestamps[NATIVE_LOAD_START] =
- SystemClock.elapsedRealtime();
+ SystemClock.uptimeMillis();
WebViewLibraryLoader.loadNativeLibrary(clazzLoader,
getWebViewLibrary(sPackageInfo.applicationInfo));
Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW);
Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "Class.forName()");
sTimestamps[NATIVE_LOAD_END] = sTimestamps[PROVIDER_CLASS_FOR_NAME_START] =
- SystemClock.elapsedRealtime();
+ SystemClock.uptimeMillis();
try {
return getWebViewProviderClass(clazzLoader);
} finally {
- sTimestamps[PROVIDER_CLASS_FOR_NAME_END] = SystemClock.elapsedRealtime();
+ sTimestamps[PROVIDER_CLASS_FOR_NAME_END] = SystemClock.uptimeMillis();
Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW);
}
} catch (ClassNotFoundException e) {
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 0dbdb8f..ee7818c 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -385,6 +385,11 @@
*/
private int mViewId = View.NO_ID;
+ /**
+ * Id used to uniquely identify a {@link RemoteViews} instance coming from a given provider.
+ */
+ private long mProviderInstanceId = -1;
+
/** Class cookies of the Parcel this instance was read from. */
private Map<Class, Object> mClassCookies;
@@ -3646,6 +3651,7 @@
mApplyFlags = src.mApplyFlags;
mClassCookies = src.mClassCookies;
mIdealSize = src.mIdealSize;
+ mProviderInstanceId = src.mProviderInstanceId;
if (src.hasLandscapeAndPortraitLayouts()) {
mLandscape = new RemoteViews(src.mLandscape);
@@ -3744,6 +3750,7 @@
mLightBackgroundLayoutId = mPortrait.mLightBackgroundLayoutId;
}
mApplyFlags = parcel.readInt();
+ mProviderInstanceId = parcel.readLong();
}
private void readActionsFromParcel(Parcel parcel, int depth) {
@@ -6021,6 +6028,7 @@
mPortrait.writeToParcel(dest, flags | PARCELABLE_ELIDE_DUPLICATES);
}
dest.writeInt(mApplyFlags);
+ dest.writeLong(mProviderInstanceId);
}
private void writeActionsToParcel(Parcel parcel) {
@@ -6711,4 +6719,85 @@
public @IdRes int getViewId() {
return mViewId;
}
+
+ /**
+ * Set the provider instance ID.
+ *
+ * This should only be used by {@link com.android.server.appwidget.AppWidgetService}.
+ * @hide
+ */
+ public void setProviderInstanceId(long id) {
+ mProviderInstanceId = id;
+ }
+
+ /**
+ * Get the provider instance id.
+ *
+ * This should uniquely identifies {@link RemoteViews} coming from a given App Widget
+ * Provider. This changes each time the App Widget provider update the {@link RemoteViews} of
+ * its widget. Returns -1 if the {@link RemoteViews} doesn't come from an App Widget provider.
+ * @hide
+ */
+ public long getProviderInstanceId() {
+ return mProviderInstanceId;
+ }
+
+ /**
+ * Identify the child of this {@link RemoteViews}, or 0 if this is not a child.
+ *
+ * The returned value is always a small integer, currently between 0 and 17.
+ */
+ private int getChildId(@NonNull RemoteViews child) {
+ if (child == this) {
+ return 0;
+ }
+ if (hasSizedRemoteViews()) {
+ for (int i = 0; i < mSizedRemoteViews.size(); i++) {
+ if (mSizedRemoteViews.get(i) == child) {
+ return i + 1;
+ }
+ }
+ }
+ if (hasLandscapeAndPortraitLayouts()) {
+ if (mLandscape == child) {
+ return 1;
+ } else if (mPortrait == child) {
+ return 2;
+ }
+ }
+ // This is not a child of this RemoteViews.
+ return 0;
+ }
+
+ /**
+ * Identify uniquely this RemoteViews, or returns -1 if not possible.
+ *
+ * @param parent If the {@link RemoteViews} is not a root {@link RemoteViews}, this should be
+ * the parent that contains it.
+ *
+ * @hide
+ */
+ public long computeUniqueId(@Nullable RemoteViews parent) {
+ if (mIsRoot) {
+ long viewId = getProviderInstanceId();
+ if (viewId != -1) {
+ viewId <<= 8;
+ }
+ return viewId;
+ }
+ if (parent == null) {
+ return -1;
+ }
+ long viewId = parent.getProviderInstanceId();
+ if (viewId == -1) {
+ return -1;
+ }
+ int childId = parent.getChildId(this);
+ if (childId == -1) {
+ return -1;
+ }
+ viewId <<= 8;
+ viewId |= childId;
+ return viewId;
+ }
}
diff --git a/core/java/android/widget/RemoteViewsAdapter.java b/core/java/android/widget/RemoteViewsAdapter.java
index 9749a68..6b33428 100644
--- a/core/java/android/widget/RemoteViewsAdapter.java
+++ b/core/java/android/widget/RemoteViewsAdapter.java
@@ -86,8 +86,8 @@
// Default height for the default loading view, in case we cannot get inflate the first view
private static final int DEFAULT_LOADING_VIEW_HEIGHT = 50;
- // We cache the FixedSizeRemoteViewsCaches across orientation. These are the related data
- // structures;
+ // We cache the FixedSizeRemoteViewsCaches across orientation and re-inflation due to color
+ // palette changes. These are the related data structures:
private static final HashMap<RemoteViewsCacheKey, FixedSizeRemoteViewsCache>
sCachedRemoteViewsCaches = new HashMap<>();
private static final HashMap<RemoteViewsCacheKey, Runnable>
diff --git a/core/java/android/widget/TextViewOnReceiveContentListener.java b/core/java/android/widget/TextViewOnReceiveContentListener.java
index 0d5bf71..6a966e0 100644
--- a/core/java/android/widget/TextViewOnReceiveContentListener.java
+++ b/core/java/android/widget/TextViewOnReceiveContentListener.java
@@ -19,7 +19,6 @@
import static android.content.ContentResolver.SCHEME_CONTENT;
import static android.view.ContentInfo.FLAG_CONVERT_TO_PLAIN_TEXT;
import static android.view.ContentInfo.SOURCE_AUTOFILL;
-import static android.view.ContentInfo.SOURCE_DRAG_AND_DROP;
import static android.view.ContentInfo.SOURCE_INPUT_METHOD;
import android.annotation.NonNull;
@@ -82,10 +81,6 @@
onReceiveForAutofill((TextView) view, payload);
return null;
}
- if (source == SOURCE_DRAG_AND_DROP) {
- onReceiveForDragAndDrop((TextView) view, payload);
- return null;
- }
// The code here follows the original paste logic from TextView:
// https://cs.android.com/android/_/android/platform/frameworks/base/+/9fefb65aa9e7beae9ca8306b925b9fbfaeffecc9:core/java/android/widget/TextView.java;l=12644
@@ -147,13 +142,6 @@
Selection.setSelection(editable, editable.length());
}
- private static void onReceiveForDragAndDrop(@NonNull TextView view,
- @NonNull ContentInfo payload) {
- final CharSequence text = coerceToText(payload.getClip(), view.getContext(),
- payload.getFlags());
- replaceSelection((Editable) view.getText(), text);
- }
-
private static @NonNull CharSequence coerceToText(@NonNull ClipData clip,
@NonNull Context context, @Flags int flags) {
SpannableStringBuilder ssb = new SpannableStringBuilder();
diff --git a/core/java/com/android/internal/util/StringPool.java b/core/java/com/android/internal/util/StringPool.java
new file mode 100644
index 0000000..c5180a3
--- /dev/null
+++ b/core/java/com/android/internal/util/StringPool.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.util;
+
+/**
+ * A pool of string instances. Unlike the {@link String#intern() VM's
+ * interned strings}, this pool provides no guarantee of reference equality.
+ * It is intended only to save allocations. This class is not thread safe.
+ *
+ * @hide
+ */
+public final class StringPool {
+
+ private final String[] mPool = new String[512];
+
+ /**
+ * Constructs string pool.
+ */
+ public StringPool() {
+ }
+
+ private static boolean contentEquals(String s, char[] chars, int start, int length) {
+ if (s.length() != length) {
+ return false;
+ }
+ for (int i = 0; i < length; i++) {
+ if (chars[start + i] != s.charAt(i)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Returns a string equal to {@code new String(array, start, length)}.
+ *
+ * @param array buffer containing string chars
+ * @param start offset in {@code array} where string starts
+ * @param length length of string
+ * @return string equal to {@code new String(array, start, length)}
+ */
+ public String get(char[] array, int start, int length) {
+ // Compute an arbitrary hash of the content
+ int hashCode = 0;
+ for (int i = start; i < start + length; i++) {
+ hashCode = (hashCode * 31) + array[i];
+ }
+
+ // Pick a bucket using Doug Lea's supplemental secondaryHash function (from HashMap)
+ hashCode ^= (hashCode >>> 20) ^ (hashCode >>> 12);
+ hashCode ^= (hashCode >>> 7) ^ (hashCode >>> 4);
+ int index = hashCode & (mPool.length - 1);
+
+ String pooled = mPool[index];
+ if (pooled != null && contentEquals(pooled, array, start, length)) {
+ return pooled;
+ }
+
+ String result = new String(array, start, length);
+ mPool[index] = result;
+ return result;
+ }
+}
diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java
index 4e96ae7..2c92b91 100644
--- a/core/java/com/android/internal/widget/ConversationLayout.java
+++ b/core/java/com/android/internal/widget/ConversationLayout.java
@@ -116,13 +116,13 @@
private ViewGroup mExpandButtonAndContentContainer;
private NotificationExpandButton mExpandButton;
private MessagingLinearLayout mImageMessageContainer;
- private int mBadgedSideMargins;
+ private int mBadgeProtrusion;
private int mConversationAvatarSize;
private int mConversationAvatarSizeExpanded;
private CachingIconView mIcon;
private CachingIconView mImportanceRingView;
- private int mExpandedGroupSideMargin;
- private int mExpandedGroupSideMarginFacePile;
+ private int mExpandedGroupBadgeProtrusion;
+ private int mExpandedGroupBadgeProtrusionFacePile;
private View mConversationFacePile;
private int mNotificationBackgroundColor;
private CharSequence mFallbackChatName;
@@ -251,8 +251,8 @@
R.dimen.conversation_header_expanded_padding_end);
mContentMarginEnd = getResources().getDimensionPixelSize(
R.dimen.notification_content_margin_end);
- mBadgedSideMargins = getResources().getDimensionPixelSize(
- R.dimen.conversation_badge_side_margin);
+ mBadgeProtrusion = getResources().getDimensionPixelSize(
+ R.dimen.conversation_badge_protrusion);
mConversationAvatarSize = getResources().getDimensionPixelSize(
R.dimen.conversation_avatar_size);
mConversationAvatarSizeExpanded = getResources().getDimensionPixelSize(
@@ -263,10 +263,10 @@
R.dimen.conversation_icon_container_top_padding);
mExpandedGroupMessagePadding = getResources().getDimensionPixelSize(
R.dimen.expanded_group_conversation_message_padding);
- mExpandedGroupSideMargin = getResources().getDimensionPixelSize(
- R.dimen.conversation_badge_side_margin_group_expanded);
- mExpandedGroupSideMarginFacePile = getResources().getDimensionPixelSize(
- R.dimen.conversation_badge_side_margin_group_expanded_face_pile);
+ mExpandedGroupBadgeProtrusion = getResources().getDimensionPixelSize(
+ R.dimen.conversation_badge_protrusion_group_expanded);
+ mExpandedGroupBadgeProtrusionFacePile = getResources().getDimensionPixelSize(
+ R.dimen.conversation_badge_protrusion_group_expanded_face_pile);
mConversationFacePile = findViewById(R.id.conversation_face_pile);
mFacePileAvatarSize = getResources().getDimensionPixelSize(
R.dimen.conversation_face_pile_avatar_size);
@@ -646,7 +646,7 @@
facepileAvatarSize = mFacePileAvatarSizeExpandedGroup;
facePileBackgroundSize = facepileAvatarSize + 2 * mFacePileProtectionWidthExpanded;
}
- LayoutParams layoutParams = (LayoutParams) mConversationIconView.getLayoutParams();
+ LayoutParams layoutParams = (LayoutParams) mConversationFacePile.getLayoutParams();
layoutParams.width = conversationAvatarSize;
layoutParams.height = conversationAvatarSize;
mConversationFacePile.setLayoutParams(layoutParams);
@@ -679,29 +679,35 @@
* update the icon position and sizing
*/
private void updateIconPositionAndSize() {
- int sidemargin;
+ int badgeProtrusion;
int conversationAvatarSize;
if (mIsOneToOne || mIsCollapsed) {
- sidemargin = mBadgedSideMargins;
+ badgeProtrusion = mBadgeProtrusion;
conversationAvatarSize = mConversationAvatarSize;
} else {
- sidemargin = mConversationFacePile.getVisibility() == VISIBLE
- ? mExpandedGroupSideMarginFacePile
- : mExpandedGroupSideMargin;
+ badgeProtrusion = mConversationFacePile.getVisibility() == VISIBLE
+ ? mExpandedGroupBadgeProtrusionFacePile
+ : mExpandedGroupBadgeProtrusion;
conversationAvatarSize = mConversationAvatarSizeExpanded;
}
- LayoutParams layoutParams =
- (LayoutParams) mConversationIconBadge.getLayoutParams();
- layoutParams.topMargin = sidemargin;
- layoutParams.setMarginStart(sidemargin);
- mConversationIconBadge.setLayoutParams(layoutParams);
if (mConversationIconView.getVisibility() == VISIBLE) {
- layoutParams = (LayoutParams) mConversationIconView.getLayoutParams();
+ LayoutParams layoutParams = (LayoutParams) mConversationIconView.getLayoutParams();
layoutParams.width = conversationAvatarSize;
layoutParams.height = conversationAvatarSize;
+ layoutParams.leftMargin = badgeProtrusion;
+ layoutParams.rightMargin = badgeProtrusion;
+ layoutParams.bottomMargin = badgeProtrusion;
mConversationIconView.setLayoutParams(layoutParams);
}
+
+ if (mConversationFacePile.getVisibility() == VISIBLE) {
+ LayoutParams layoutParams = (LayoutParams) mConversationFacePile.getLayoutParams();
+ layoutParams.leftMargin = badgeProtrusion;
+ layoutParams.rightMargin = badgeProtrusion;
+ layoutParams.bottomMargin = badgeProtrusion;
+ mConversationFacePile.setLayoutParams(layoutParams);
+ }
}
private void updatePaddingsBasedOnContentAvailability() {
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index db4e673..498505c 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -854,16 +854,6 @@
&& getDevicePolicyManager().isSeparateProfileChallengeAllowed(userHandle);
}
- /**
- * Retrieves whether the current profile and device locks can be unified.
- * @param userHandle profile user handle.
- */
- public boolean isSeparateProfileChallengeAllowedToUnify(int userHandle) {
- return getDevicePolicyManager().isProfileActivePasswordSufficientForParent(userHandle)
- && !getUserManager().hasUserRestriction(
- UserManager.DISALLOW_UNIFIED_PASSWORD, UserHandle.of(userHandle));
- }
-
private boolean hasSeparateChallenge(int userHandle) {
try {
return getLockSettings().getSeparateProfileChallengeEnabled(userHandle);
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index de4cede..f76cccb 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -638,6 +638,7 @@
char hotstartupsamplesOptsBuf[sizeof("-Xps-hot-startup-method-samples:")-1 + PROPERTY_VALUE_MAX];
char saveResolvedClassesDelayMsOptsBuf[
sizeof("-Xps-save-resolved-classes-delay-ms:")-1 + PROPERTY_VALUE_MAX];
+ char profileMinSavePeriodOptsBuf[sizeof("-Xps-min-save-period-ms:")-1 + PROPERTY_VALUE_MAX];
char madviseRandomOptsBuf[sizeof("-XX:MadviseRandomAccess:")-1 + PROPERTY_VALUE_MAX];
char madviseWillNeedFileSizeVdex[
sizeof("-XMadviseWillNeedVdexFileSize:")-1 + PROPERTY_VALUE_MAX];
@@ -670,6 +671,8 @@
char extraOptsBuf[PROPERTY_VALUE_MAX];
char voldDecryptBuf[PROPERTY_VALUE_MAX];
char perfettoHprofOptBuf[sizeof("-XX:PerfettoHprof=") + PROPERTY_VALUE_MAX];
+ char perfettoJavaHeapStackOptBuf[
+ sizeof("-XX:PerfettoJavaHeapStackProf=") + PROPERTY_VALUE_MAX];
enum {
kEMDefault,
kEMIntPortable,
@@ -784,6 +787,10 @@
parseRuntimeOption("dalvik.vm.perfetto_hprof", perfettoHprofOptBuf, "-XX:PerfettoHprof=",
"true");
+ // Enable PerfettoJavaHeapStackProf in the zygote
+ parseRuntimeOption("dalvik.vm.perfetto_javaheap", perfettoJavaHeapStackOptBuf,
+ "-XX:PerfettoJavaHeapStackProf=", "true");
+
if (primary_zygote) {
addOption("-Xprimaryzygote");
}
@@ -867,6 +874,9 @@
parseRuntimeOption("dalvik.vm.ps-resolved-classes-delay-ms", saveResolvedClassesDelayMsOptsBuf,
"-Xps-save-resolved-classes-delay-ms:");
+ parseRuntimeOption("dalvik.vm.ps-min-save-period-ms", profileMinSavePeriodOptsBuf,
+ "-Xps-min-save-period-ms:");
+
property_get("ro.config.low_ram", propBuf, "");
if (strcmp(propBuf, "true") == 0) {
addOption("-XX:LowMemoryMode");
diff --git a/core/jni/android_view_MotionEvent.cpp b/core/jni/android_view_MotionEvent.cpp
index 5acbd98..6971301 100644
--- a/core/jni/android_view_MotionEvent.cpp
+++ b/core/jni/android_view_MotionEvent.cpp
@@ -578,6 +578,15 @@
event->transform(matrix);
}
+static void android_view_MotionEvent_nativeApplyTransform(JNIEnv* env, jclass clazz,
+ jlong nativePtr, jobject matrixObj) {
+ MotionEvent* event = reinterpret_cast<MotionEvent*>(nativePtr);
+
+ std::array<float, 9> matrix;
+ AMatrix_getContents(env, matrixObj, matrix.data());
+ event->applyTransform(matrix);
+}
+
// ----------------- @CriticalNative ------------------------------
static jlong android_view_MotionEvent_nativeCopy(jlong destNativePtr, jlong sourceNativePtr,
@@ -790,6 +799,8 @@
{"nativeGetAxisValue", "(JIII)F", (void*)android_view_MotionEvent_nativeGetAxisValue},
{"nativeTransform", "(JLandroid/graphics/Matrix;)V",
(void*)android_view_MotionEvent_nativeTransform},
+ {"nativeApplyTransform", "(JLandroid/graphics/Matrix;)V",
+ (void*)android_view_MotionEvent_nativeApplyTransform},
// --------------- @CriticalNative ------------------
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 4b828ba..4e7dd91 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -410,6 +410,8 @@
<protected-broadcast android:name="android.net.wifi.p2p.action.WIFI_P2P_PERSISTENT_GROUPS_CHANGED" />
<protected-broadcast android:name="android.net.conn.TETHER_STATE_CHANGED" />
<protected-broadcast android:name="android.net.conn.INET_CONDITION_ACTION" />
+ <!-- This broadcast is no longer sent in S but it should stay protected to avoid third party
+ apps broadcasting this and confusing old system apps that may not have been updated. -->
<protected-broadcast android:name="android.net.conn.NETWORK_CONDITIONS_MEASURED" />
<protected-broadcast
android:name="android.net.ConnectivityService.action.PKT_CNT_SAMPLE_INTERVAL_ELAPSED" />
diff --git a/core/res/res/layout/notification_template_conversation_icon_container.xml b/core/res/res/layout/notification_template_conversation_icon_container.xml
index a88ff0d..0438dc5 100644
--- a/core/res/res/layout/notification_template_conversation_icon_container.xml
+++ b/core/res/res/layout/notification_template_conversation_icon_container.xml
@@ -36,11 +36,14 @@
android:layout_gravity="top|center_horizontal"
>
- <!-- Big icon: 52x52, 12dp padding left + top, 16dp padding right -->
+ <!-- Big icon: 48x48, 12dp padding top, 16dp padding sides -->
<com.android.internal.widget.CachingIconView
android:id="@+id/conversation_icon"
android:layout_width="@dimen/conversation_avatar_size"
android:layout_height="@dimen/conversation_avatar_size"
+ android:layout_marginLeft="@dimen/conversation_badge_protrusion"
+ android:layout_marginRight="@dimen/conversation_badge_protrusion"
+ android:layout_marginBottom="@dimen/conversation_badge_protrusion"
android:scaleType="centerCrop"
android:importantForAccessibility="no"
/>
@@ -49,6 +52,9 @@
android:layout="@layout/conversation_face_pile_layout"
android:layout_width="@dimen/conversation_avatar_size"
android:layout_height="@dimen/conversation_avatar_size"
+ android:layout_marginLeft="@dimen/conversation_badge_protrusion"
+ android:layout_marginRight="@dimen/conversation_badge_protrusion"
+ android:layout_marginBottom="@dimen/conversation_badge_protrusion"
android:id="@+id/conversation_face_pile"
/>
@@ -56,8 +62,7 @@
android:id="@+id/conversation_icon_badge"
android:layout_width="@dimen/conversation_icon_size_badged"
android:layout_height="@dimen/conversation_icon_size_badged"
- android:layout_marginLeft="@dimen/conversation_badge_side_margin"
- android:layout_marginTop="@dimen/conversation_badge_side_margin"
+ android:layout_gravity="end|bottom"
android:clipChildren="false"
android:clipToPadding="false"
>
diff --git a/core/res/res/layout/notification_template_material_messaging.xml b/core/res/res/layout/notification_template_material_messaging.xml
index 3564f97..eb61ea4 100644
--- a/core/res/res/layout/notification_template_material_messaging.xml
+++ b/core/res/res/layout/notification_template_material_messaging.xml
@@ -199,13 +199,11 @@
android:id="@+id/notification_action_list_margin_target"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="-20dp"
android:clipChildren="false"
android:orientation="vertical">
<include layout="@layout/notification_template_smart_reply_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/notification_content_margin"
android:layout_marginStart="@dimen/notification_content_margin_start"
android:layout_marginEnd="@dimen/notification_content_margin_end" />
<include layout="@layout/notification_material_action_list" />
diff --git a/core/res/res/values-es-rMX/donottranslate-cldr.xml b/core/res/res/values-es-rMX/donottranslate-cldr.xml
new file mode 100755
index 0000000..db438f2
--- /dev/null
+++ b/core/res/res/values-es-rMX/donottranslate-cldr.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="month_day_year">%-e %B %Y</string>
+ <string name="time_of_day">%H:%M:%S</string>
+ <string name="date_and_time">%-e %b %Y, %H:%M:%S</string>
+ <string name="date_time">%1$s, %2$s</string>
+</resources>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 6be6167..4f90a17 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -776,8 +776,8 @@
<dimen name="conversation_expand_button_height">88dp</dimen>
<!-- this is the margin between the Conversation image and the content -->
<dimen name="conversation_image_start_margin">12dp</dimen>
- <!-- Side margins of the conversation badge in relation to the conversation icon -->
- <dimen name="conversation_badge_side_margin">32dp</dimen>
+ <!-- amount the badge sticks out from the conversation avatar -->
+ <dimen name="conversation_badge_protrusion">4dp</dimen>
<!-- size of the notification badge when applied to the conversation icon -->
<dimen name="conversation_icon_size_badged">20dp</dimen>
<!-- size of the conversation avatar in an expanded group -->
@@ -786,10 +786,10 @@
<dimen name="conversation_face_pile_avatar_size">32dp</dimen>
<!-- size of the face pile icons when the group is expanded -->
<dimen name="conversation_face_pile_avatar_size_group_expanded">@dimen/conversation_face_pile_avatar_size</dimen>
- <!-- Side margins of the conversation badge in relation to the conversation icon when the group is expanded-->
- <dimen name="conversation_badge_side_margin_group_expanded">@dimen/conversation_badge_side_margin</dimen>
- <!-- Side margins of the conversation badge in relation to the conversation icon when the group is expanded-->
- <dimen name="conversation_badge_side_margin_group_expanded_face_pile">@dimen/conversation_badge_side_margin</dimen>
+ <!-- amount the badge sticks out from the conversation avatar when the group is expanded -->
+ <dimen name="conversation_badge_protrusion_group_expanded">@dimen/conversation_badge_protrusion</dimen>
+ <!-- amount the badge sticks out from the conversation face pile when the group is expanded -->
+ <dimen name="conversation_badge_protrusion_group_expanded_face_pile">@dimen/conversation_badge_protrusion</dimen>
<!-- The width of the protection of the face pile layout-->
<dimen name="conversation_face_pile_protection_width">2dp</dimen>
<!-- The width of the protection of the face pile layout when expanded-->
@@ -809,8 +809,8 @@
<!-- The top padding of the conversation icon container when the avatar is small-->
<dimen name="conversation_icon_container_top_padding_small_avatar">8dp</dimen>
- <!-- The padding of the conversation header when expanded. This is calculated from the expand button size + notification_content_margin_end -->
- <dimen name="conversation_header_expanded_padding_end">38dp</dimen>
+ <!-- The padding of the conversation header when expanded. This is calculated from the expand button size (56dp) - notification_content_margin_end (16dp) -->
+ <dimen name="conversation_header_expanded_padding_end">40dp</dimen>
<!-- extra padding at the start of the icons when not conversations to keep them horizontally aligned with the notification icon -->
<dimen name="messaging_layout_icon_padding_start">4dp</dimen>
@@ -936,7 +936,7 @@
<dimen name="system_app_widget_background_radius">16dp</dimen>
<!-- System-provided radius for inner views on app widgets. The resolved value of this resource may change at runtime. -->
<dimen name="system_app_widget_inner_radius">8dp</dimen>
- <!-- System-provided padding for inner views on app widgets. The resolved value of this resource may change at runtime. -->
- <dimen name="system_app_widget_internal_padding">16dp</dimen>
+ <!-- System-provided padding for inner views on app widgets. The resolved value of this resource may change at runtime. @removed -->
+ <dimen name="__removed_system_app_widget_internal_padding">16dp</dimen>
</resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 03701c3..500a9da 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -3184,7 +3184,7 @@
<!-- System-provided dimensions for app widgets. -->
<public name="system_app_widget_background_radius" />
<public name="system_app_widget_inner_radius" />
- <public name="system_app_widget_internal_padding" />
+ <public name="__removed_system_app_widget_internal_padding" />
</staging-public-group>
<staging-public-group type="bool" first-id="0x01110007">
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index e86d2ce..b836c4c 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -2836,7 +2836,7 @@
<string name="pasted_from_app"><xliff:g id="pasting_app_name" example="Gmail">%1$s</xliff:g> pasted from <xliff:g id="source_app_name" example="Chrome">%2$s</xliff:g></string>
<!-- Displayed to the user to inform them that an app has accessed clipboard data (pasted as in "copy and paste") [CHAR LIMIT=50] -->
- <string name="pasted_from_clipboard"><xliff:g id="pasting_app_name" example="Gmail">%1$s</xliff:g> pasted from clipboard</string>
+ <string name="pasted_from_clipboard"><xliff:g id="pasting_app_name" example="Gmail">%1$s</xliff:g> pasted from your clipboard</string>
<!-- Displayed to the user to inform them that an app has accessed text from clipboard (pasted as in "copy and paste") [CHAR LIMIT=50] -->
<string name="pasted_text"><xliff:g id="pasting_app_name" example="Gmail">%1$s</xliff:g> pasted text you copied</string>
@@ -3390,6 +3390,23 @@
<!-- [CHAR LIMIT=NONE] Message to show in upgrading dialog when the bulk of the upgrade work is done. -->
<string name="android_upgrading_complete">Finishing boot.</string>
+ <!-- [CHAR LIMIT=40] Title of dialog shown to confirm device going to sleep if the power button
+ is pressed during fingerprint enrollment. -->
+ <string name="fp_enrollment_powerbutton_intent_title">Turn off screen?</string>
+
+ <!-- [CHAR LIMIT=NONE] Message of dialog shown to confirm device going to sleep if the power
+ button is pressed during fingerprint enrollment. -->
+ <string name="fp_enrollment_powerbutton_intent_message">While setting up your fingerprint, you
+ pressed the Power button.\n\nThis usually turns off your screen.</string>
+
+ <!-- [CHAR LIMIT=20] Positive button of dialog shown to confirm device going to sleep if the
+ power button is pressed during fingerprint enrollment. -->
+ <string name="fp_enrollment_powerbutton_intent_positive_button">Turn off</string>
+
+ <!-- [CHAR LIMIT=20] Negative button of dialog shown to confirm device going to sleep if the
+ power button is pressed during fingerprint enrollment. -->
+ <string name="fp_enrollment_powerbutton_intent_negative_button">Cancel</string>
+
<!-- Notification text to tell the user that a heavy-weight application is running. -->
<string name="heavy_weight_notification"><xliff:g id="app">%1$s</xliff:g> running</string>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 3a22efc..d8620a7 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1814,6 +1814,10 @@
<java-symbol type="string" name="bugreport_status" />
<java-symbol type="string" name="bugreport_title" />
<java-symbol type="string" name="faceunlock_multiple_failures" />
+ <java-symbol type="string" name="fp_enrollment_powerbutton_intent_title" />
+ <java-symbol type="string" name="fp_enrollment_powerbutton_intent_message" />
+ <java-symbol type="string" name="fp_enrollment_powerbutton_intent_positive_button" />
+ <java-symbol type="string" name="fp_enrollment_powerbutton_intent_negative_button" />
<java-symbol type="string" name="global_actions" />
<java-symbol type="string" name="global_action_power_off" />
<java-symbol type="string" name="global_action_power_options" />
@@ -4080,15 +4084,15 @@
<java-symbol type="id" name="conversation_image_message_container" />
<java-symbol type="id" name="conversation_icon_container" />
<java-symbol type="dimen" name="messaging_group_singleline_sender_padding_end" />
- <java-symbol type="dimen" name="conversation_badge_side_margin" />
+ <java-symbol type="dimen" name="conversation_badge_protrusion" />
<java-symbol type="dimen" name="conversation_avatar_size" />
<java-symbol type="dimen" name="conversation_avatar_size_group_expanded" />
<java-symbol type="dimen" name="conversation_face_pile_avatar_size" />
<java-symbol type="dimen" name="conversation_face_pile_avatar_size_group_expanded" />
<java-symbol type="dimen" name="conversation_face_pile_protection_width" />
<java-symbol type="dimen" name="conversation_face_pile_protection_width_expanded" />
- <java-symbol type="dimen" name="conversation_badge_side_margin_group_expanded" />
- <java-symbol type="dimen" name="conversation_badge_side_margin_group_expanded_face_pile" />
+ <java-symbol type="dimen" name="conversation_badge_protrusion_group_expanded" />
+ <java-symbol type="dimen" name="conversation_badge_protrusion_group_expanded_face_pile" />
<java-symbol type="dimen" name="conversation_content_start" />
<java-symbol type="dimen" name="expanded_group_conversation_message_padding" />
<java-symbol type="dimen" name="messaging_layout_icon_padding_start" />
diff --git a/core/tests/utiltests/src/com/android/internal/util/StringPoolTest.java b/core/tests/utiltests/src/com/android/internal/util/StringPoolTest.java
new file mode 100644
index 0000000..f67fd51
--- /dev/null
+++ b/core/tests/utiltests/src/com/android/internal/util/StringPoolTest.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.util;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+@SmallTest
+public final class StringPoolTest extends AndroidTestCase {
+
+ public void testStringPool() {
+ StringPool stringPool = new StringPool();
+ String bcd = stringPool.get(new char[] { 'a', 'b', 'c', 'd', 'e' }, 1, 3);
+ assertEquals("bcd", bcd);
+ assertSame(bcd, stringPool.get(new char[] { 'a', 'b', 'c', 'd', 'e' }, 1, 3));
+ }
+
+ public void testHashCollision() {
+ StringPool stringPool = new StringPool();
+ char[] a = { (char) 1, (char) 0 };
+ char[] b = { (char) 0, (char) 31 };
+ assertEquals(new String(a).hashCode(), new String(b).hashCode());
+
+ String aString = stringPool.get(a, 0, 2);
+ assertEquals(new String(a), aString);
+ String bString = stringPool.get(b, 0, 2);
+ assertEquals(new String(b), bString);
+ assertSame(bString, stringPool.get(b, 0, 2));
+ assertNotSame(aString, stringPool.get(a, 0, 2));
+ }
+}
diff --git a/graphics/java/android/graphics/RecordingCanvas.java b/graphics/java/android/graphics/RecordingCanvas.java
index e9e58c6..a5184f2 100644
--- a/graphics/java/android/graphics/RecordingCanvas.java
+++ b/graphics/java/android/graphics/RecordingCanvas.java
@@ -16,6 +16,7 @@
package android.graphics;
+import android.annotation.ColorInt;
import android.annotation.NonNull;
import android.os.SystemProperties;
import android.util.Pools.SynchronizedPool;
@@ -227,11 +228,11 @@
public void drawRipple(CanvasProperty<Float> cx, CanvasProperty<Float> cy,
CanvasProperty<Float> radius, CanvasProperty<Paint> paint,
CanvasProperty<Float> progress, CanvasProperty<Float> turbulencePhase,
- RuntimeShader shader) {
+ @ColorInt int color, RuntimeShader shader) {
nDrawRipple(mNativeCanvasWrapper, cx.getNativeContainer(), cy.getNativeContainer(),
radius.getNativeContainer(), paint.getNativeContainer(),
progress.getNativeContainer(), turbulencePhase.getNativeContainer(),
- shader.getNativeShaderBuilder());
+ color, shader.getNativeShaderBuilder());
}
/**
@@ -292,7 +293,7 @@
long propCy, long propRadius, long propPaint);
@CriticalNative
private static native void nDrawRipple(long renderer, long propCx, long propCy, long propRadius,
- long propPaint, long propProgress, long turbulencePhase, long runtimeEffect);
+ long propPaint, long propProgress, long turbulencePhase, int color, long runtimeEffect);
@CriticalNative
private static native void nDrawRoundRect(long renderer, long propLeft, long propTop,
long propRight, long propBottom, long propRx, long propRy, long propPaint);
diff --git a/graphics/java/android/graphics/drawable/Icon.java b/graphics/java/android/graphics/drawable/Icon.java
index cff7dcc..a03931b 100644
--- a/graphics/java/android/graphics/drawable/Icon.java
+++ b/graphics/java/android/graphics/drawable/Icon.java
@@ -369,7 +369,9 @@
final PackageManager pm = context.getPackageManager();
try {
ApplicationInfo ai = pm.getApplicationInfo(
- resPackage, PackageManager.MATCH_UNINSTALLED_PACKAGES);
+ resPackage,
+ PackageManager.MATCH_UNINSTALLED_PACKAGES
+ | PackageManager.GET_SHARED_LIBRARY_FILES);
if (ai != null) {
mObj1 = pm.getResourcesForApplication(ai);
} else {
diff --git a/graphics/java/android/graphics/drawable/RippleAnimationSession.java b/graphics/java/android/graphics/drawable/RippleAnimationSession.java
index 60f73b5..ee867dd 100644
--- a/graphics/java/android/graphics/drawable/RippleAnimationSession.java
+++ b/graphics/java/android/graphics/drawable/RippleAnimationSession.java
@@ -19,6 +19,7 @@
import android.animation.Animator;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
+import android.annotation.ColorInt;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.graphics.Canvas;
@@ -211,6 +212,7 @@
CanvasProperty.createFloat(mProperties.getNoisePhase()),
CanvasProperty.createPaint(mProperties.getPaint()),
CanvasProperty.createFloat(mProperties.getProgress()),
+ mProperties.getColor(),
mProperties.getShader());
}
return mCanvasProperties;
@@ -250,11 +252,12 @@
private final FloatType mNoisePhase;
private final PaintType mPaint;
private final RippleShader mShader;
+ private final @ColorInt int mColor;
private FloatType mX;
private FloatType mY;
AnimationProperties(FloatType x, FloatType y, FloatType maxRadius, FloatType noisePhase,
- PaintType paint, FloatType progress, RippleShader shader) {
+ PaintType paint, FloatType progress, @ColorInt int color, RippleShader shader) {
mY = y;
mX = x;
mMaxRadius = maxRadius;
@@ -262,6 +265,7 @@
mPaint = paint;
mShader = shader;
mProgress = progress;
+ mColor = color;
}
FloatType getProgress() {
@@ -296,5 +300,9 @@
FloatType getNoisePhase() {
return mNoisePhase;
}
+
+ @ColorInt int getColor() {
+ return mColor;
+ }
}
}
diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java
index 24d7780..518fceb 100644
--- a/graphics/java/android/graphics/drawable/RippleDrawable.java
+++ b/graphics/java/android/graphics/drawable/RippleDrawable.java
@@ -864,6 +864,10 @@
boolean shouldExit = mExitingAnimation;
mRippleActive = false;
mExitingAnimation = false;
+ if (mRunningAnimations.size() > 0 && !shouldAnimate) {
+ // update paint when view is invalidated
+ getRipplePaint();
+ }
drawContent(canvas);
drawPatternedBackground(canvas, cx, cy);
if (shouldAnimate && mRunningAnimations.size() <= MAX_RIPPLES) {
@@ -901,7 +905,7 @@
yProp = p.getY();
}
can.drawRipple(xProp, yProp, p.getMaxRadius(), p.getPaint(),
- p.getProgress(), p.getNoisePhase(), p.getShader());
+ p.getProgress(), p.getNoisePhase(), p.getColor(), p.getShader());
} else {
RippleAnimationSession.AnimationProperties<Float, Paint> p =
s.getProperties();
@@ -974,7 +978,7 @@
shader.setRadius(radius);
shader.setProgress(.0f);
properties = new RippleAnimationSession.AnimationProperties<>(
- cx, cy, radius, 0f, p, 0f, shader);
+ cx, cy, radius, 0f, p, 0f, color, shader);
if (mMaskShader == null) {
shader.setShader(null);
} else {
diff --git a/graphics/java/android/graphics/drawable/RippleShader.java b/graphics/java/android/graphics/drawable/RippleShader.java
index 2b4d5b4..d00492c 100644
--- a/graphics/java/android/graphics/drawable/RippleShader.java
+++ b/graphics/java/android/graphics/drawable/RippleShader.java
@@ -113,10 +113,11 @@
+ " float sparkle = sparkles(densityUv, in_noisePhase) * ring * alpha "
+ "* turbulence;\n"
+ " float fade = min(fadeIn, 1. - fadeOutRipple);\n"
- + " vec4 circle = in_color * (softCircle(p, center, in_maxRadius "
- + " * scaleIn, 0.2) * fade);\n"
+ + " float circleAlpha = softCircle(p, center, in_maxRadius * scaleIn, 0.2) * fade;\n"
+ + " vec3 color = mix(in_color.rgb, in_sparkleColor.rgb, sparkle);\n"
+ " float mask = in_hasMask == 1. ? sample(in_shader, p).a > 0. ? 1. : 0. : 1.;\n"
- + " return mix(circle, in_sparkleColor, sparkle) * mask;\n"
+ + " float a = (in_color.a * circleAlpha + in_sparkleColor.a * sparkle) * mask;\n"
+ + " return vec4(color * a, a);\n"
+ "}";
private static final String SHADER = SHADER_UNIFORMS + SHADER_LIB + SHADER_MAIN;
private static final double PI_ROTATE_RIGHT = Math.PI * 0.0078125;
diff --git a/keystore/java/android/security/keystore/AttestationUtils.java b/keystore/java/android/security/keystore/AttestationUtils.java
index 66d842e..4da2a28 100644
--- a/keystore/java/android/security/keystore/AttestationUtils.java
+++ b/keystore/java/android/security/keystore/AttestationUtils.java
@@ -260,6 +260,11 @@
} catch (SecurityException e) {
throw e;
} catch (Exception e) {
+ // If a DeviceIdAttestationException was previously wrapped with some other type,
+ // let's throw the original exception instead of wrapping it yet again.
+ if (e.getCause() instanceof DeviceIdAttestationException) {
+ throw (DeviceIdAttestationException) e.getCause();
+ }
throw new DeviceIdAttestationException("Unable to perform attestation", e);
}
}
diff --git a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
index 90c4d51..fd13fec 100644
--- a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
@@ -58,7 +58,7 @@
<string name="bubble_accessibility_action_move_bottom_right" msgid="2107626346109206352">"Ubicar abajo a la derecha"</string>
<string name="bubbles_app_settings" msgid="3617224938701566416">"Configuración de <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
<string name="bubble_dismiss_text" msgid="8816558050659478158">"Descartar burbuja"</string>
- <string name="bubbles_dont_bubble_conversation" msgid="310000317885712693">"No mostrar la conversación en burbujas"</string>
+ <string name="bubbles_dont_bubble_conversation" msgid="310000317885712693">"No mostrar la conversación en burbuja"</string>
<string name="bubbles_user_education_title" msgid="2112319053732691899">"Chat con burbujas"</string>
<string name="bubbles_user_education_description" msgid="4215862563054175407">"Las conversaciones nuevas aparecen como elementos flotantes o burbujas. Presiona para abrir la burbuja. Arrástrala para moverla."</string>
<string name="bubbles_user_education_manage_title" msgid="7042699946735628035">"Controla las burbujas"</string>
diff --git a/libs/hwui/CanvasTransform.cpp b/libs/hwui/CanvasTransform.cpp
index 9d03ce5..d0d24a8 100644
--- a/libs/hwui/CanvasTransform.cpp
+++ b/libs/hwui/CanvasTransform.cpp
@@ -31,7 +31,7 @@
namespace android::uirenderer {
-static SkColor makeLight(SkColor color) {
+SkColor makeLight(SkColor color) {
Lab lab = sRGBToLab(color);
float invertedL = std::min(110 - lab.L, 100.0f);
if (invertedL > lab.L) {
@@ -42,7 +42,7 @@
}
}
-static SkColor makeDark(SkColor color) {
+SkColor makeDark(SkColor color) {
Lab lab = sRGBToLab(color);
float invertedL = std::min(110 - lab.L, 100.0f);
if (invertedL < lab.L) {
@@ -53,7 +53,7 @@
}
}
-static SkColor transformColor(ColorTransform transform, SkColor color) {
+SkColor transformColor(ColorTransform transform, SkColor color) {
switch (transform) {
case ColorTransform::Light:
return makeLight(color);
@@ -64,6 +64,17 @@
}
}
+SkColor transformColorInverse(ColorTransform transform, SkColor color) {
+ switch (transform) {
+ case ColorTransform::Dark:
+ return makeLight(color);
+ case ColorTransform::Light:
+ return makeDark(color);
+ default:
+ return color;
+ }
+}
+
static void applyColorTransform(ColorTransform transform, SkPaint& paint) {
if (transform == ColorTransform::None) return;
diff --git a/libs/hwui/CanvasTransform.h b/libs/hwui/CanvasTransform.h
index e723d64..c46a2d3 100644
--- a/libs/hwui/CanvasTransform.h
+++ b/libs/hwui/CanvasTransform.h
@@ -42,4 +42,7 @@
bool transformPaint(ColorTransform transform, SkPaint* paint, BitmapPalette palette);
+SkColor transformColor(ColorTransform transform, SkColor color);
+SkColor transformColorInverse(ColorTransform transform, SkColor color);
+
} // namespace android::uirenderer;
\ No newline at end of file
diff --git a/libs/hwui/DisplayListOps.in b/libs/hwui/DisplayListOps.in
index 1b1be43..fb3e21f 100644
--- a/libs/hwui/DisplayListOps.in
+++ b/libs/hwui/DisplayListOps.in
@@ -49,4 +49,5 @@
X(DrawAtlas)
X(DrawShadowRec)
X(DrawVectorDrawable)
+X(DrawRippleDrawable)
X(DrawWebView)
diff --git a/libs/hwui/RecordingCanvas.cpp b/libs/hwui/RecordingCanvas.cpp
index 170f731..442ae0f 100644
--- a/libs/hwui/RecordingCanvas.cpp
+++ b/libs/hwui/RecordingCanvas.cpp
@@ -36,6 +36,7 @@
#include "SkTextBlob.h"
#include "SkVertices.h"
#include "VectorDrawable.h"
+#include "pipeline/skia/AnimatedDrawables.h"
#include "pipeline/skia/FunctorDrawable.h"
namespace android {
@@ -497,6 +498,18 @@
SkPaint paint;
BitmapPalette palette;
};
+
+struct DrawRippleDrawable final : Op {
+ static const auto kType = Type::DrawRippleDrawable;
+ DrawRippleDrawable(const skiapipeline::RippleDrawableParams& params) : mParams(params) {}
+
+ void draw(SkCanvas* canvas, const SkMatrix&) const {
+ skiapipeline::AnimatedRippleDrawable::draw(canvas, mParams);
+ }
+
+ skiapipeline::RippleDrawableParams mParams;
+};
+
struct DrawWebView final : Op {
static const auto kType = Type::DrawWebView;
DrawWebView(skiapipeline::FunctorDrawable* drawable) : drawable(sk_ref_sp(drawable)) {}
@@ -721,6 +734,10 @@
mHasText = true;
}
+void DisplayListData::drawRippleDrawable(const skiapipeline::RippleDrawableParams& params) {
+ this->push<DrawRippleDrawable>(0, params);
+}
+
void DisplayListData::drawPatch(const SkPoint points[12], const SkColor colors[4],
const SkPoint texs[4], SkBlendMode bmode, const SkPaint& paint) {
this->push<DrawPatch>(0, points, colors, texs, bmode, paint);
@@ -851,6 +868,16 @@
};
}
+template <>
+constexpr color_transform_fn colorTransformForOp<DrawRippleDrawable>() {
+ return [](const void* opRaw, ColorTransform transform) {
+ const DrawRippleDrawable* op = reinterpret_cast<const DrawRippleDrawable*>(opRaw);
+ // Ripple drawable needs to contrast against the background, so we need the inverse color.
+ SkColor color = transformColorInverse(transform, op->mParams.color);
+ const_cast<DrawRippleDrawable*>(op)->mParams.color = color;
+ };
+}
+
#define X(T) colorTransformForOp<T>(),
static const color_transform_fn color_transform_fns[] = {
#include "DisplayListOps.in"
@@ -985,6 +1012,10 @@
fDL->drawTextBlob(blob, x, y, paint);
}
+void RecordingCanvas::drawRippleDrawable(const skiapipeline::RippleDrawableParams& params) {
+ fDL->drawRippleDrawable(params);
+}
+
void RecordingCanvas::drawImage(const sk_sp<SkImage>& image, SkScalar x, SkScalar y,
const SkSamplingOptions& sampling, const SkPaint* paint,
BitmapPalette palette) {
diff --git a/libs/hwui/RecordingCanvas.h b/libs/hwui/RecordingCanvas.h
index a6a7b12..4fae6a1 100644
--- a/libs/hwui/RecordingCanvas.h
+++ b/libs/hwui/RecordingCanvas.h
@@ -29,6 +29,9 @@
#include "SkPath.h"
#include "SkRect.h"
+#include "pipeline/skia/AnimatedDrawables.h"
+
+#include <SkRuntimeEffect.h>
#include <vector>
namespace android {
@@ -125,6 +128,7 @@
void drawVertices(const SkVertices*, SkBlendMode, const SkPaint&);
void drawAtlas(const SkImage*, const SkRSXform[], const SkRect[], const SkColor[], int,
SkBlendMode, const SkSamplingOptions&, const SkRect*, const SkPaint*);
+ void drawRippleDrawable(const skiapipeline::RippleDrawableParams& params);
void drawShadowRec(const SkPath&, const SkDrawShadowRec&);
void drawVectorDrawable(VectorDrawableRoot* tree);
void drawWebView(skiapipeline::FunctorDrawable*);
@@ -184,6 +188,7 @@
void drawImage(const sk_sp<SkImage>&, SkScalar left, SkScalar top, const SkSamplingOptions&,
const SkPaint* paint, BitmapPalette pallete);
+ void drawRippleDrawable(const skiapipeline::RippleDrawableParams& params);
void drawImageRect(const sk_sp<SkImage>& image, const SkRect& src, const SkRect& dst,
const SkSamplingOptions&, const SkPaint*, SrcRectConstraint, BitmapPalette);
diff --git a/libs/hwui/SkiaCanvas.cpp b/libs/hwui/SkiaCanvas.cpp
index 3056e97..d032e2b 100644
--- a/libs/hwui/SkiaCanvas.cpp
+++ b/libs/hwui/SkiaCanvas.cpp
@@ -815,17 +815,8 @@
mCanvas->drawDrawable(drawable.get());
}
-void SkiaCanvas::drawRipple(uirenderer::CanvasPropertyPrimitive* x,
- uirenderer::CanvasPropertyPrimitive* y,
- uirenderer::CanvasPropertyPrimitive* radius,
- uirenderer::CanvasPropertyPaint* paint,
- uirenderer::CanvasPropertyPrimitive* progress,
- uirenderer::CanvasPropertyPrimitive* turbulencePhase,
- const SkRuntimeShaderBuilder& effectBuilder) {
- sk_sp<uirenderer::skiapipeline::AnimatedRipple> drawable(
- new uirenderer::skiapipeline::AnimatedRipple(x, y, radius, paint, progress,
- turbulencePhase, effectBuilder));
- mCanvas->drawDrawable(drawable.get());
+void SkiaCanvas::drawRipple(const uirenderer::skiapipeline::RippleDrawableParams& params) {
+ uirenderer::skiapipeline::AnimatedRippleDrawable::draw(mCanvas, params);
}
void SkiaCanvas::drawPicture(const SkPicture& picture) {
diff --git a/libs/hwui/SkiaCanvas.h b/libs/hwui/SkiaCanvas.h
index 995f00c..438a40c 100644
--- a/libs/hwui/SkiaCanvas.h
+++ b/libs/hwui/SkiaCanvas.h
@@ -25,6 +25,7 @@
#include "hwui/Paint.h"
#include <SkCanvas.h>
+#include "pipeline/skia/AnimatedDrawables.h"
#include "src/core/SkArenaAlloc.h"
#include <cassert>
@@ -148,13 +149,7 @@
uirenderer::CanvasPropertyPrimitive* y,
uirenderer::CanvasPropertyPrimitive* radius,
uirenderer::CanvasPropertyPaint* paint) override;
- virtual void drawRipple(uirenderer::CanvasPropertyPrimitive* x,
- uirenderer::CanvasPropertyPrimitive* y,
- uirenderer::CanvasPropertyPrimitive* radius,
- uirenderer::CanvasPropertyPaint* paint,
- uirenderer::CanvasPropertyPrimitive* progress,
- uirenderer::CanvasPropertyPrimitive* turbulencePhase,
- const SkRuntimeShaderBuilder& effectBuilder) override;
+ virtual void drawRipple(const uirenderer::skiapipeline::RippleDrawableParams& params) override;
virtual void drawLayer(uirenderer::DeferredLayerUpdater* layerHandle) override;
virtual void drawRenderNode(uirenderer::RenderNode* renderNode) override;
diff --git a/libs/hwui/canvas/CanvasOpTypes.h b/libs/hwui/canvas/CanvasOpTypes.h
index b55ef9d..6e18e49 100644
--- a/libs/hwui/canvas/CanvasOpTypes.h
+++ b/libs/hwui/canvas/CanvasOpTypes.h
@@ -43,7 +43,7 @@
DrawRoundRectProperty,
DrawDoubleRoundRect,
DrawCircleProperty,
- DrawRippleProperty,
+ DrawRippleDrawable,
DrawCircle,
DrawOval,
DrawArc,
diff --git a/libs/hwui/canvas/CanvasOps.h b/libs/hwui/canvas/CanvasOps.h
index 173f394..fdc97a4 100644
--- a/libs/hwui/canvas/CanvasOps.h
+++ b/libs/hwui/canvas/CanvasOps.h
@@ -145,73 +145,13 @@
ASSERT_DRAWABLE()
};
-template<>
-struct CanvasOp<CanvasOpType::DrawRippleProperty> {
- sp<uirenderer::CanvasPropertyPrimitive> x;
- sp<uirenderer::CanvasPropertyPrimitive> y;
- sp<uirenderer::CanvasPropertyPrimitive> radius;
- sp<uirenderer::CanvasPropertyPaint> paint;
- sp<uirenderer::CanvasPropertyPrimitive> progress;
- sp<uirenderer::CanvasPropertyPrimitive> turbulencePhase;
- sk_sp<SkRuntimeEffect> effect;
-
- const float PI = 3.1415926535897932384626;
- const float PI_ROTATE_RIGHT = PI * 0.0078125;
- const float PI_ROTATE_LEFT = PI * -0.0078125;
- const float SCALE = 1.5;
- const float CIRCLE_X_1 = 0.01 * cos(SCALE * 0.55);
- const float CIRCLE_Y_1 = 0.01 * sin(SCALE * 0.55);
- const float CIRCLE_X_2 = -0.0066 * cos(SCALE * 0.45);
- const float CIRCLE_Y_2 = -0.0066 * sin(SCALE * 0.45);
- const float CIRCLE_X_3 = -0.0066 * cos(SCALE * 0.35);
- const float CIRCLE_Y_3 = -0.0066 * sin(SCALE * 0.35);
+template <>
+struct CanvasOp<CanvasOpType::DrawRippleDrawable> {
+ skiapipeline::RippleDrawableParams params;
void draw(SkCanvas* canvas) const {
- SkRuntimeShaderBuilder runtimeEffectBuilder(effect);
-
- setUniform2f(runtimeEffectBuilder, "in_origin", x->value, y->value);
- setUniform(runtimeEffectBuilder, "in_radius", radius);
- setUniform(runtimeEffectBuilder, "in_progress", progress);
- setUniform(runtimeEffectBuilder, "in_turbulencePhase", turbulencePhase);
-
- //
- // Keep in sync with:
- // frameworks/base/graphics/java/android/graphics/drawable/RippleShader.java
- //
- const float turbulence = turbulencePhase->value;
- setUniform2f(runtimeEffectBuilder, "in_tCircle1", SCALE * 0.5 + (turbulence * CIRCLE_X_1),
- SCALE * 0.5 + (turbulence * CIRCLE_Y_1));
- setUniform2f(runtimeEffectBuilder, "in_tCircle2", SCALE * 0.2 + (turbulence * CIRCLE_X_2),
- SCALE * 0.2 + (turbulence * CIRCLE_Y_2));
- setUniform2f(runtimeEffectBuilder, "in_tCircle3", SCALE + (turbulence * CIRCLE_X_3),
- SCALE + (turbulence * CIRCLE_Y_3));
- const float rotation1 = turbulence * PI_ROTATE_RIGHT + 1.7 * PI;
- setUniform2f(runtimeEffectBuilder, "in_tRotation1", cos(rotation1), sin(rotation1));
- const float rotation2 = turbulence * PI_ROTATE_LEFT + 2 * PI;
- setUniform2f(runtimeEffectBuilder, "in_tRotation2", cos(rotation2), sin(rotation2));
- const float rotation3 = turbulence * PI_ROTATE_RIGHT + 2.75 * PI;
- setUniform2f(runtimeEffectBuilder, "in_tRotation3", cos(rotation3), sin(rotation3));
-
- SkPaint paintMod = paint->value;
- paintMod.setShader(runtimeEffectBuilder.makeShader(nullptr, false));
- canvas->drawCircle(x->value, y->value, radius->value, paintMod);
+ skiapipeline::AnimatedRippleDrawable::draw(canvas, params);
}
-
- void setUniform(SkRuntimeShaderBuilder& effect, std::string name,
- sp<uirenderer::CanvasPropertyPrimitive> property) const {
- SkRuntimeShaderBuilder::BuilderUniform uniform = effect.uniform(name.c_str());
- if (uniform.fVar != nullptr) {
- uniform = property->value;
- }
- }
-
- void setUniform2f(SkRuntimeShaderBuilder effect, std::string name, float a, float b) const {
- SkRuntimeShaderBuilder::BuilderUniform uniform = effect.uniform(name.c_str());
- if (uniform.fVar != nullptr) {
- uniform = SkV2{a, b};
- }
- }
-
ASSERT_DRAWABLE()
};
diff --git a/libs/hwui/hwui/Canvas.h b/libs/hwui/hwui/Canvas.h
index 837b055..9023613 100644
--- a/libs/hwui/hwui/Canvas.h
+++ b/libs/hwui/hwui/Canvas.h
@@ -22,6 +22,7 @@
#include <androidfw/ResourceTypes.h>
#include "Properties.h"
+#include "pipeline/skia/AnimatedDrawables.h"
#include "utils/Macros.h"
#include <SkBitmap.h>
@@ -141,13 +142,7 @@
uirenderer::CanvasPropertyPrimitive* y,
uirenderer::CanvasPropertyPrimitive* radius,
uirenderer::CanvasPropertyPaint* paint) = 0;
- virtual void drawRipple(uirenderer::CanvasPropertyPrimitive* x,
- uirenderer::CanvasPropertyPrimitive* y,
- uirenderer::CanvasPropertyPrimitive* radius,
- uirenderer::CanvasPropertyPaint* paint,
- uirenderer::CanvasPropertyPrimitive* progress,
- uirenderer::CanvasPropertyPrimitive* turbulencePhase,
- const SkRuntimeShaderBuilder& effectBuilder) = 0;
+ virtual void drawRipple(const uirenderer::skiapipeline::RippleDrawableParams& params) = 0;
virtual void drawLayer(uirenderer::DeferredLayerUpdater* layerHandle) = 0;
virtual void drawRenderNode(uirenderer::RenderNode* renderNode) = 0;
diff --git a/libs/hwui/jni/android_graphics_DisplayListCanvas.cpp b/libs/hwui/jni/android_graphics_DisplayListCanvas.cpp
index eb5a88a..f060bb3 100644
--- a/libs/hwui/jni/android_graphics_DisplayListCanvas.cpp
+++ b/libs/hwui/jni/android_graphics_DisplayListCanvas.cpp
@@ -144,7 +144,7 @@
static void android_view_DisplayListCanvas_drawRippleProps(
CRITICAL_JNI_PARAMS_COMMA jlong canvasPtr, jlong xPropPtr, jlong yPropPtr,
jlong radiusPropPtr, jlong paintPropPtr, jlong progressPropPtr, jlong turbulencePhasePtr,
- jlong builderPtr) {
+ jint color, jlong builderPtr) {
Canvas* canvas = reinterpret_cast<Canvas*>(canvasPtr);
CanvasPropertyPrimitive* xProp = reinterpret_cast<CanvasPropertyPrimitive*>(xPropPtr);
CanvasPropertyPrimitive* yProp = reinterpret_cast<CanvasPropertyPrimitive*>(yPropPtr);
@@ -155,8 +155,12 @@
CanvasPropertyPrimitive* progressProp =
reinterpret_cast<CanvasPropertyPrimitive*>(progressPropPtr);
SkRuntimeShaderBuilder* builder = reinterpret_cast<SkRuntimeShaderBuilder*>(builderPtr);
- canvas->drawRipple(xProp, yProp, radiusProp, paintProp, progressProp, turbulencePhaseProp,
- *builder);
+
+ const uirenderer::skiapipeline::RippleDrawableParams params =
+ uirenderer::skiapipeline::RippleDrawableParams{
+ xProp, yProp, radiusProp, progressProp, turbulencePhaseProp,
+ (SkColor)color, paintProp, *builder};
+ canvas->drawRipple(params);
}
static void android_view_DisplayListCanvas_drawWebViewFunctor(CRITICAL_JNI_PARAMS_COMMA jlong canvasPtr, jint functor) {
@@ -186,7 +190,7 @@
{"nDrawCircle", "(JJJJJ)V", (void*)android_view_DisplayListCanvas_drawCircleProps},
{"nDrawRoundRect", "(JJJJJJJJ)V", (void*)android_view_DisplayListCanvas_drawRoundRectProps},
{"nDrawWebViewFunctor", "(JI)V", (void*)android_view_DisplayListCanvas_drawWebViewFunctor},
- {"nDrawRipple", "(JJJJJJJJ)V", (void*)android_view_DisplayListCanvas_drawRippleProps},
+ {"nDrawRipple", "(JJJJJJJIJ)V", (void*)android_view_DisplayListCanvas_drawRippleProps},
};
int register_android_view_DisplayListCanvas(JNIEnv* env) {
diff --git a/libs/hwui/pipeline/skia/AnimatedDrawables.h b/libs/hwui/pipeline/skia/AnimatedDrawables.h
index 7d65be1..10889e7 100644
--- a/libs/hwui/pipeline/skia/AnimatedDrawables.h
+++ b/libs/hwui/pipeline/skia/AnimatedDrawables.h
@@ -22,6 +22,7 @@
#include <math.h>
#include <utils/RefBase.h>
#include "CanvasProperty.h"
+#include "CanvasTransform.h"
namespace android {
namespace uirenderer {
@@ -56,89 +57,80 @@
sp<uirenderer::CanvasPropertyPaint> mPaint;
};
-class AnimatedRipple : public SkDrawable {
-public:
- AnimatedRipple(uirenderer::CanvasPropertyPrimitive* x, uirenderer::CanvasPropertyPrimitive* y,
- uirenderer::CanvasPropertyPrimitive* radius,
- uirenderer::CanvasPropertyPaint* paint,
- uirenderer::CanvasPropertyPrimitive* progress,
- uirenderer::CanvasPropertyPrimitive* turbulencePhase,
- const SkRuntimeShaderBuilder& effectBuilder)
- : mX(x)
- , mY(y)
- , mRadius(radius)
- , mPaint(paint)
- , mProgress(progress)
- , mTurbulencePhase(turbulencePhase)
- , mRuntimeEffectBuilder(effectBuilder) {}
+struct RippleDrawableParams {
+ sp<uirenderer::CanvasPropertyPrimitive> x;
+ sp<uirenderer::CanvasPropertyPrimitive> y;
+ sp<uirenderer::CanvasPropertyPrimitive> radius;
+ sp<uirenderer::CanvasPropertyPrimitive> progress;
+ sp<uirenderer::CanvasPropertyPrimitive> turbulencePhase;
+ SkColor color;
+ sp<uirenderer::CanvasPropertyPaint> paint;
+ SkRuntimeShaderBuilder effectBuilder;
+};
-protected:
- virtual SkRect onGetBounds() override {
- const float x = mX->value;
- const float y = mY->value;
- const float radius = mRadius->value;
- return SkRect::MakeLTRB(x - radius, y - radius, x + radius, y + radius);
- }
- virtual void onDraw(SkCanvas* canvas) override {
- setUniform2f("in_origin", mX->value, mY->value);
- setUniform("in_radius", mRadius);
- setUniform("in_progress", mProgress);
- setUniform("in_turbulencePhase", mTurbulencePhase);
+class AnimatedRippleDrawable {
+public:
+ static void draw(SkCanvas* canvas, const RippleDrawableParams& params) {
+ auto& effectBuilder = const_cast<SkRuntimeShaderBuilder&>(params.effectBuilder);
+
+ setUniform2f(effectBuilder, "in_origin", params.x->value, params.y->value);
+ setUniform(effectBuilder, "in_radius", params.radius);
+ setUniform(effectBuilder, "in_progress", params.progress);
+ setUniform(effectBuilder, "in_turbulencePhase", params.turbulencePhase);
+
+ SkRuntimeShaderBuilder::BuilderUniform uniform = effectBuilder.uniform("in_color");
+ if (uniform.fVar != nullptr) {
+ uniform = SkV4{SkColorGetR(params.color) / 255.0f, SkColorGetG(params.color) / 255.0f,
+ SkColorGetB(params.color) / 255.0f, SkColorGetA(params.color) / 255.0f};
+ }
+
+ const float CIRCLE_X_1 = 0.01 * cos(SCALE * 0.55);
+ const float CIRCLE_Y_1 = 0.01 * sin(SCALE * 0.55);
+ const float CIRCLE_X_2 = -0.0066 * cos(SCALE * 0.45);
+ const float CIRCLE_Y_2 = -0.0066 * sin(SCALE * 0.45);
+ const float CIRCLE_X_3 = -0.0066 * cos(SCALE * 0.35);
+ const float CIRCLE_Y_3 = -0.0066 * sin(SCALE * 0.35);
//
// Keep in sync with:
// frameworks/base/graphics/java/android/graphics/drawable/RippleShader.java
//
- const float turbulencePhase = mTurbulencePhase->value;
- setUniform2f("in_tCircle1", SCALE * 0.5 + (turbulencePhase * CIRCLE_X_1),
+ const float turbulencePhase = params.turbulencePhase->value;
+ setUniform2f(effectBuilder, "in_tCircle1", SCALE * 0.5 + (turbulencePhase * CIRCLE_X_1),
SCALE * 0.5 + (turbulencePhase * CIRCLE_Y_1));
- setUniform2f("in_tCircle2", SCALE * 0.2 + (turbulencePhase * CIRCLE_X_2),
+ setUniform2f(effectBuilder, "in_tCircle2", SCALE * 0.2 + (turbulencePhase * CIRCLE_X_2),
SCALE * 0.2 + (turbulencePhase * CIRCLE_Y_2));
- setUniform2f("in_tCircle3", SCALE + (turbulencePhase * CIRCLE_X_3),
+ setUniform2f(effectBuilder, "in_tCircle3", SCALE + (turbulencePhase * CIRCLE_X_3),
SCALE + (turbulencePhase * CIRCLE_Y_3));
const float rotation1 = turbulencePhase * PI_ROTATE_RIGHT + 1.7 * PI;
- setUniform2f("in_tRotation1", cos(rotation1), sin(rotation1));
+ setUniform2f(effectBuilder, "in_tRotation1", cos(rotation1), sin(rotation1));
const float rotation2 = turbulencePhase * PI_ROTATE_LEFT + 2 * PI;
- setUniform2f("in_tRotation2", cos(rotation2), sin(rotation2));
+ setUniform2f(effectBuilder, "in_tRotation2", cos(rotation2), sin(rotation2));
const float rotation3 = turbulencePhase * PI_ROTATE_RIGHT + 2.75 * PI;
- setUniform2f("in_tRotation3", cos(rotation3), sin(rotation3));
+ setUniform2f(effectBuilder, "in_tRotation3", cos(rotation3), sin(rotation3));
- SkPaint paint = mPaint->value;
- paint.setShader(mRuntimeEffectBuilder.makeShader(nullptr, false));
- canvas->drawCircle(mX->value, mY->value, mRadius->value, paint);
+ params.paint->value.setShader(effectBuilder.makeShader(nullptr, false));
+ canvas->drawCircle(params.x->value, params.y->value, params.radius->value,
+ params.paint->value);
}
private:
- sp<uirenderer::CanvasPropertyPrimitive> mX;
- sp<uirenderer::CanvasPropertyPrimitive> mY;
- sp<uirenderer::CanvasPropertyPrimitive> mRadius;
- sp<uirenderer::CanvasPropertyPaint> mPaint;
- sp<uirenderer::CanvasPropertyPrimitive> mProgress;
- sp<uirenderer::CanvasPropertyPrimitive> mTurbulencePhase;
- SkRuntimeShaderBuilder mRuntimeEffectBuilder;
+ static constexpr float PI = 3.1415926535897932384626;
+ static constexpr float PI_ROTATE_RIGHT = PI * 0.0078125;
+ static constexpr float PI_ROTATE_LEFT = PI * -0.0078125;
+ static constexpr float SCALE = 1.5;
- const float PI = 3.1415926535897932384626;
- const float PI_ROTATE_RIGHT = PI * 0.0078125;
- const float PI_ROTATE_LEFT = PI * -0.0078125;
- const float SCALE = 1.5;
- const float CIRCLE_X_1 = 0.01 * cos(SCALE * 0.55);
- const float CIRCLE_Y_1 = 0.01 * sin(SCALE * 0.55);
- const float CIRCLE_X_2 = -0.0066 * cos(SCALE * 0.45);
- const float CIRCLE_Y_2 = -0.0066 * sin(SCALE * 0.45);
- const float CIRCLE_X_3 = -0.0066 * cos(SCALE * 0.35);
- const float CIRCLE_Y_3 = -0.0066 * sin(SCALE * 0.35);
-
- virtual void setUniform(std::string name, sp<uirenderer::CanvasPropertyPrimitive> property) {
- SkRuntimeShaderBuilder::BuilderUniform uniform =
- mRuntimeEffectBuilder.uniform(name.c_str());
+ static void setUniform(SkRuntimeShaderBuilder& effectBuilder, std::string name,
+ sp<uirenderer::CanvasPropertyPrimitive> property) {
+ SkRuntimeShaderBuilder::BuilderUniform uniform = effectBuilder.uniform(name.c_str());
if (uniform.fVar != nullptr) {
uniform = property->value;
}
}
- virtual void setUniform2f(std::string name, float a, float b) {
- SkRuntimeShaderBuilder::BuilderUniform uniform =
- mRuntimeEffectBuilder.uniform(name.c_str());
+ static void setUniform2f(SkRuntimeShaderBuilder& effectBuilder, std::string name, float a,
+ float b) {
+ SkRuntimeShaderBuilder::BuilderUniform uniform = effectBuilder.uniform(name.c_str());
if (uniform.fVar != nullptr) {
uniform = SkV2{a, b};
}
diff --git a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
index 9e73f04..76c4a03 100644
--- a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
+++ b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp
@@ -109,15 +109,8 @@
drawDrawable(mDisplayList->allocateDrawable<AnimatedCircle>(x, y, radius, paint));
}
-void SkiaRecordingCanvas::drawRipple(uirenderer::CanvasPropertyPrimitive* x,
- uirenderer::CanvasPropertyPrimitive* y,
- uirenderer::CanvasPropertyPrimitive* radius,
- uirenderer::CanvasPropertyPaint* paint,
- uirenderer::CanvasPropertyPrimitive* progress,
- uirenderer::CanvasPropertyPrimitive* turbulencePhase,
- const SkRuntimeShaderBuilder& effectBuilder) {
- drawDrawable(mDisplayList->allocateDrawable<AnimatedRipple>(x, y, radius, paint, progress,
- turbulencePhase, effectBuilder));
+void SkiaRecordingCanvas::drawRipple(const skiapipeline::RippleDrawableParams& params) {
+ mRecorder.drawRippleDrawable(params);
}
void SkiaRecordingCanvas::enableZ(bool enableZ) {
diff --git a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.h b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.h
index 4deb3b9..1445a27 100644
--- a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.h
+++ b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.h
@@ -20,6 +20,7 @@
#include "ReorderBarrierDrawables.h"
#include "SkiaCanvas.h"
#include "SkiaDisplayList.h"
+#include "pipeline/skia/AnimatedDrawables.h"
namespace android {
namespace uirenderer {
@@ -70,13 +71,7 @@
uirenderer::CanvasPropertyPrimitive* y,
uirenderer::CanvasPropertyPrimitive* radius,
uirenderer::CanvasPropertyPaint* paint) override;
- virtual void drawRipple(uirenderer::CanvasPropertyPrimitive* x,
- uirenderer::CanvasPropertyPrimitive* y,
- uirenderer::CanvasPropertyPrimitive* radius,
- uirenderer::CanvasPropertyPaint* paint,
- uirenderer::CanvasPropertyPrimitive* progress,
- uirenderer::CanvasPropertyPrimitive* turbulencePhase,
- const SkRuntimeShaderBuilder& effectBuilder) override;
+ virtual void drawRipple(const RippleDrawableParams& params) override;
virtual void drawVectorDrawable(VectorDrawableRoot* vectorDrawable) override;
diff --git a/libs/hwui/tests/unit/CanvasOpTests.cpp b/libs/hwui/tests/unit/CanvasOpTests.cpp
index a718d46..2cf3456 100644
--- a/libs/hwui/tests/unit/CanvasOpTests.cpp
+++ b/libs/hwui/tests/unit/CanvasOpTests.cpp
@@ -31,6 +31,7 @@
using namespace android;
using namespace android::uirenderer;
+using namespace android::uirenderer::skiapipeline;
using namespace android::uirenderer::test;
// We lazy
@@ -569,6 +570,33 @@
EXPECT_EQ(2, canvas.sumTotalDrawCalls());
}
+TEST(CanvasOp, simpleDrawRipple) {
+ CanvasOpBuffer buffer;
+ EXPECT_EQ(buffer.size(), 0);
+
+ const char* sksl =
+ "half4 main(float2 coord) {"
+ " return half4(1.);"
+ "}";
+ auto [effect, error] = SkRuntimeEffect::MakeForShader(SkString(sksl));
+ auto params = RippleDrawableParams{
+ .x = sp<CanvasPropertyPrimitive>(new CanvasPropertyPrimitive(100)),
+ .y = sp<CanvasPropertyPrimitive>(new CanvasPropertyPrimitive(200)),
+ .radius = sp<CanvasPropertyPrimitive>(new CanvasPropertyPrimitive(50)),
+ .progress = sp<CanvasPropertyPrimitive>(new CanvasPropertyPrimitive(0.5)),
+ .turbulencePhase = sp<CanvasPropertyPrimitive>(new CanvasPropertyPrimitive(1)),
+ .color = 0xff00ff,
+ .paint = sp<CanvasPropertyPaint>(new CanvasPropertyPaint(SkPaint{})),
+ .effectBuilder = SkRuntimeShaderBuilder(effect)};
+ buffer.push<Op::DrawRippleDrawable>({.params = params});
+
+ CallCountingCanvas canvas;
+ EXPECT_EQ(0, canvas.sumTotalDrawCalls());
+ rasterizeCanvasBuffer(buffer, &canvas);
+ EXPECT_EQ(1, canvas.drawOvalCount);
+ EXPECT_EQ(1, canvas.sumTotalDrawCalls());
+}
+
TEST(CanvasOp, immediateRendering) {
auto canvas = std::make_shared<CallCountingCanvas>();
diff --git a/media/java/android/media/AudioPlaybackConfiguration.java b/media/java/android/media/AudioPlaybackConfiguration.java
index ede1dbf..d18d7e4 100644
--- a/media/java/android/media/AudioPlaybackConfiguration.java
+++ b/media/java/android/media/AudioPlaybackConfiguration.java
@@ -267,14 +267,18 @@
final AudioPlaybackConfiguration anonymCopy = new AudioPlaybackConfiguration(in.mPlayerIId);
anonymCopy.mPlayerState = in.mPlayerState;
// do not reuse the full attributes: only usage, content type and public flags are allowed
- anonymCopy.mPlayerAttr = new AudioAttributes.Builder()
- .setUsage(in.mPlayerAttr.getUsage())
+ AudioAttributes.Builder builder = new AudioAttributes.Builder()
.setContentType(in.mPlayerAttr.getContentType())
.setFlags(in.mPlayerAttr.getFlags())
.setAllowedCapturePolicy(
in.mPlayerAttr.getAllowedCapturePolicy() == ALLOW_CAPTURE_BY_ALL
- ? ALLOW_CAPTURE_BY_ALL : ALLOW_CAPTURE_BY_NONE)
- .build();
+ ? ALLOW_CAPTURE_BY_ALL : ALLOW_CAPTURE_BY_NONE);
+ if (AudioAttributes.isSystemUsage(in.mPlayerAttr.getSystemUsage())) {
+ builder.setSystemUsage(in.mPlayerAttr.getSystemUsage());
+ } else {
+ builder.setUsage(in.mPlayerAttr.getUsage());
+ }
+ anonymCopy.mPlayerAttr = builder.build();
anonymCopy.mDeviceId = in.mDeviceId;
// anonymized data
anonymCopy.mPlayerType = PLAYER_TYPE_UNKNOWN;
diff --git a/media/java/android/media/EncoderProfiles.java b/media/java/android/media/EncoderProfiles.java
index ec8ce29..ac8c65e 100644
--- a/media/java/android/media/EncoderProfiles.java
+++ b/media/java/android/media/EncoderProfiles.java
@@ -304,7 +304,7 @@
} else if (codec == MediaRecorder.AudioEncoder.AAC_ELD) {
return MediaCodecInfo.CodecProfileLevel.AACObjectELD;
}
- return 0;
+ return profile;
}
@@ -313,17 +313,20 @@
int codec,
int channels,
int sampleRate,
- int bitrate) {
+ int bitrate,
+ int profile) {
this.codec = codec;
this.channels = channels;
this.sampleRate = sampleRate;
this.bitrate = bitrate;
+ this.profile = profile;
}
private int codec;
private int channels;
private int sampleRate;
private int bitrate;
+ private int profile; // this contains the profile if codec itself does not
}
private int durationSecs;
diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java
index 480e2ea..4c8a8fa 100644
--- a/media/java/android/media/MediaRouter.java
+++ b/media/java/android/media/MediaRouter.java
@@ -78,6 +78,7 @@
public class MediaRouter {
private static final String TAG = "MediaRouter";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
+ private static final boolean DEBUG_RESTORE_ROUTE = true;
static class Static implements DisplayManager.DisplayListener {
final String mPackageName;
@@ -261,8 +262,8 @@
if (audioRoutesChanged) {
Log.v(TAG, "Audio routes updated: " + newRoutes + ", a2dp=" + isBluetoothA2dpOn());
- if (mSelectedRoute == null || mSelectedRoute == mDefaultAudioVideo
- || mSelectedRoute == mBluetoothA2dpRoute) {
+ if (mSelectedRoute == null || mSelectedRoute.isDefault()
+ || mSelectedRoute.isBluetooth()) {
if (forceUseDefaultRoute || mBluetoothA2dpRoute == null) {
selectRouteStatic(ROUTE_TYPE_LIVE_AUDIO, mDefaultAudioVideo, false);
} else {
@@ -665,12 +666,16 @@
// Skip restoring route if the selected route is not a system audio route,
// MediaRouter is initializing, or mClient was changed.
if (Client.this != mClient || mSelectedRoute == null
- || (mSelectedRoute != mDefaultAudioVideo
- && mSelectedRoute != mBluetoothA2dpRoute)) {
+ || (!mSelectedRoute.isDefault() && !mSelectedRoute.isBluetooth())) {
return;
}
- if (DEBUG) {
- Log.d(TAG, "onRestoreRoute() : route=" + mSelectedRoute);
+ if (DEBUG_RESTORE_ROUTE) {
+ if (mSelectedRoute.isDefault() && mBluetoothA2dpRoute != null) {
+ Log.d(TAG, "onRestoreRoute() : selectedRoute=" + mSelectedRoute
+ + ", a2dpRoute=" + mBluetoothA2dpRoute);
+ } else {
+ Log.d(TAG, "onRestoreRoute() : route=" + mSelectedRoute);
+ }
}
mSelectedRoute.select();
});
@@ -690,9 +695,12 @@
@Override
public void onGlobalA2dpChanged(boolean a2dpOn) {
mHandler.post(() -> {
- if (mSelectedRoute == mDefaultAudioVideo && a2dpOn) {
+ if (mSelectedRoute == null) {
+ return;
+ }
+ if (mSelectedRoute.isDefault() && a2dpOn) {
setSelectedRoute(mBluetoothA2dpRoute, /*explicit=*/false);
- } else if (mSelectedRoute == mBluetoothA2dpRoute && !a2dpOn) {
+ } else if (mSelectedRoute.isBluetooth() && !a2dpOn) {
setSelectedRoute(mDefaultAudioVideo, /*explicit=*/false);
}
});
@@ -1057,8 +1065,8 @@
final RouteInfo oldRoute = sStatic.mSelectedRoute;
final RouteInfo currentSystemRoute = sStatic.isBluetoothA2dpOn()
? sStatic.mBluetoothA2dpRoute : sStatic.mDefaultAudioVideo;
- boolean wasDefaultOrBluetoothRoute = (oldRoute == sStatic.mDefaultAudioVideo
- || oldRoute == sStatic.mBluetoothA2dpRoute);
+ boolean wasDefaultOrBluetoothRoute = (oldRoute != null)
+ && (oldRoute.isDefault() || oldRoute.isBluetooth());
if (oldRoute == route
&& (!wasDefaultOrBluetoothRoute || route == currentSystemRoute)) {
return;
@@ -1070,14 +1078,17 @@
return;
}
- final RouteInfo btRoute = sStatic.mBluetoothA2dpRoute;
- if (sStatic.isPlaybackActive() && btRoute != null && (types & ROUTE_TYPE_LIVE_AUDIO) != 0
- && (route == btRoute || route == sStatic.mDefaultAudioVideo)) {
+ if (sStatic.isPlaybackActive() && sStatic.mBluetoothA2dpRoute != null
+ && (types & ROUTE_TYPE_LIVE_AUDIO) != 0
+ && (route.isBluetooth() || route.isDefault())) {
try {
- sStatic.mAudioService.setBluetoothA2dpOn(route == btRoute);
+ sStatic.mAudioService.setBluetoothA2dpOn(route.isBluetooth());
} catch (RemoteException e) {
Log.e(TAG, "Error changing Bluetooth A2DP state", e);
}
+ } else if (DEBUG_RESTORE_ROUTE) {
+ Log.i(TAG, "Skip setBluetoothA2dpOn(): types=" + types + ", isPlaybackActive()="
+ + sStatic.isPlaybackActive() + ", BT route=" + sStatic.mBluetoothA2dpRoute);
}
final WifiDisplay activeDisplay =
@@ -1118,7 +1129,8 @@
static void selectDefaultRouteStatic() {
// TODO: Be smarter about the route types here; this selects for all valid.
- if (sStatic.mSelectedRoute != sStatic.mBluetoothA2dpRoute && sStatic.isBluetoothA2dpOn()) {
+ if (sStatic.isBluetoothA2dpOn() && sStatic.mSelectedRoute != null
+ && !sStatic.mSelectedRoute.isBluetooth()) {
selectRouteStatic(ROUTE_TYPE_ANY, sStatic.mBluetoothA2dpRoute, false);
} else {
selectRouteStatic(ROUTE_TYPE_ANY, sStatic.mDefaultAudioVideo, false);
@@ -1452,8 +1464,7 @@
final RouteInfo selectedRoute = sStatic.mSelectedRoute;
if (selectedRoute == null) return;
- if (selectedRoute == sStatic.mBluetoothA2dpRoute ||
- selectedRoute == sStatic.mDefaultAudioVideo) {
+ if (selectedRoute.isBluetooth() || selectedRoute.isDefault()) {
dispatchRouteVolumeChanged(selectedRoute);
} else if (sStatic.mBluetoothA2dpRoute != null) {
dispatchRouteVolumeChanged(sStatic.mIsBluetoothA2dpOn
@@ -2225,7 +2236,7 @@
/** @hide */
public boolean isBluetooth() {
- return this == sStatic.mBluetoothA2dpRoute;
+ return mDeviceType == RouteInfo.DEVICE_TYPE_BLUETOOTH;
}
/** @hide */
diff --git a/media/java/android/media/audiopolicy/AudioMixingRule.java b/media/java/android/media/audiopolicy/AudioMixingRule.java
index cb47ba2..abbcc66 100644
--- a/media/java/android/media/audiopolicy/AudioMixingRule.java
+++ b/media/java/android/media/audiopolicy/AudioMixingRule.java
@@ -140,7 +140,7 @@
final int match_rule = mRule & ~RULE_EXCLUSION_MASK;
switch (match_rule) {
case RULE_MATCH_ATTRIBUTE_USAGE:
- dest.writeInt(mAttr.getUsage());
+ dest.writeInt(mAttr.getSystemUsage());
break;
case RULE_MATCH_ATTRIBUTE_CAPTURE_PRESET:
dest.writeInt(mAttr.getCapturePreset());
@@ -165,7 +165,7 @@
for (AudioMixMatchCriterion criterion : mCriteria) {
if ((criterion.mRule & RULE_MATCH_ATTRIBUTE_USAGE) != 0
&& criterion.mAttr != null
- && criterion.mAttr.getUsage() == usage) {
+ && criterion.mAttr.getSystemUsage() == usage) {
return true;
}
}
@@ -182,7 +182,7 @@
for (AudioMixMatchCriterion criterion : mCriteria) {
if (criterion.mRule == RULE_MATCH_ATTRIBUTE_USAGE
&& criterion.mAttr != null
- && criterion.mAttr.getUsage() == usage) {
+ && criterion.mAttr.getSystemUsage() == usage) {
return true;
}
}
@@ -565,7 +565,7 @@
switch (match_rule) {
case RULE_MATCH_ATTRIBUTE_USAGE:
// "usage"-based rule
- if (criterion.mAttr.getUsage() == attrToMatch.getUsage()) {
+ if (criterion.mAttr.getSystemUsage() == attrToMatch.getSystemUsage()) {
if (criterion.mRule == rule) {
// rule already exists, we're done
return this;
@@ -646,8 +646,13 @@
switch (match_rule) {
case RULE_MATCH_ATTRIBUTE_USAGE:
int usage = in.readInt();
- attr = new AudioAttributes.Builder()
- .setUsage(usage).build();
+ if (AudioAttributes.isSystemUsage(usage)) {
+ attr = new AudioAttributes.Builder()
+ .setSystemUsage(usage).build();
+ } else {
+ attr = new AudioAttributes.Builder()
+ .setUsage(usage).build();
+ }
break;
case RULE_MATCH_ATTRIBUTE_CAPTURE_PRESET:
int preset = in.readInt();
diff --git a/media/jni/android_media_MediaProfiles.cpp b/media/jni/android_media_MediaProfiles.cpp
index 7e9b6c7..90325e7 100644
--- a/media/jni/android_media_MediaProfiles.cpp
+++ b/media/jni/android_media_MediaProfiles.cpp
@@ -255,7 +255,7 @@
jclass audioProfileClazz = env->FindClass("android/media/EncoderProfiles$AudioProfile");
jmethodID audioProfileConstructorMethodID =
- env->GetMethodID(audioProfileClazz, "<init>", "(IIII)V");
+ env->GetMethodID(audioProfileClazz, "<init>", "(IIIII)V");
jobjectArray videoCodecs = (jobjectArray)env->NewObjectArray(
cp->getVideoCodecs().size(), videoProfileClazz, nullptr);
@@ -269,7 +269,7 @@
vc->getFrameHeight(),
vc->getFrameRate(),
vc->getBitrate(),
- -1 /* profile */);
+ vc->getProfile());
env->SetObjectArrayElement(videoCodecs, i++, videoCodec);
}
}
@@ -289,7 +289,8 @@
ac->getCodec(),
ac->getChannels(),
ac->getSampleRate(),
- ac->getBitrate());
+ ac->getBitrate(),
+ ac->getProfile());
env->SetObjectArrayElement(audioCodecs, i++, audioCodec);
}
diff --git a/native/android/native_window_jni.cpp b/native/android/native_window_jni.cpp
index 859c550..901b4de 100644
--- a/native/android/native_window_jni.cpp
+++ b/native/android/native_window_jni.cpp
@@ -30,7 +30,7 @@
ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface) {
sp<ANativeWindow> win = android_view_Surface_getNativeWindow(env, surface);
if (win != NULL) {
- win->incStrong((void*)ANativeWindow_fromSurface);
+ ANativeWindow_acquire(win.get());
}
return win.get();
}
diff --git a/native/graphics/jni/imagedecoder.cpp b/native/graphics/jni/imagedecoder.cpp
index b0c8c61..a0f3098 100644
--- a/native/graphics/jni/imagedecoder.cpp
+++ b/native/graphics/jni/imagedecoder.cpp
@@ -506,7 +506,7 @@
}
int64_t AImageDecoderFrameInfo_getDuration(const AImageDecoderFrameInfo* info) {
- if (!info) return 0;
+ if (!info) return ANDROID_IMAGE_DECODER_BAD_PARAMETER;
return toFrameInfo(info)->fDuration * 1'000'000;
}
diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
index 95f180a..0210079 100644
--- a/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
+++ b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
@@ -23,6 +23,7 @@
import android.Manifest;
import android.annotation.NonNull;
import android.annotation.StringRes;
+import android.app.Activity;
import android.app.AlertDialog;
import android.app.AppGlobals;
import android.app.AppOpsManager;
@@ -632,6 +633,12 @@
.setPositiveButton(R.string.ok, (dialog, which) -> getActivity().finish())
.create();
}
+
+ @Override
+ public void onCancel(DialogInterface dialog) {
+ getActivity().setResult(Activity.RESULT_CANCELED);
+ getActivity().finish();
+ }
}
/**
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/collapsing_toolbar_base_layout.xml b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/collapsing_toolbar_base_layout.xml
index d8b49ab..7d9b4d7 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/collapsing_toolbar_base_layout.xml
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/res/layout-v31/collapsing_toolbar_base_layout.xml
@@ -43,7 +43,7 @@
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
app:scrimAnimationDuration="50"
app:scrimVisibleHeightTrigger="@dimen/scrim_visible_height_trigger"
- app:statusBarScrim="@empty"
+ app:statusBarScrim="@null"
app:titleCollapseMode="fade"
app:collapsedTitleTextAppearance="@style/CollapsingToolbarTitle.Collapsed"
app:expandedTitleTextAppearance="@style/CollapsingToolbarTitle.Expanded"
diff --git a/packages/SettingsLib/FooterPreference/res/layout-v31/preference_footer.xml b/packages/SettingsLib/FooterPreference/res/layout-v31/preference_footer.xml
new file mode 100644
index 0000000..7a550ae
--- /dev/null
+++ b/packages/SettingsLib/FooterPreference/res/layout-v31/preference_footer.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2021 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:background="?android:attr/selectableItemBackground"
+ android:orientation="vertical"
+ android:clipToPadding="false">
+
+ <LinearLayout
+ android:id="@+id/icon_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:minWidth="56dp"
+ android:gravity="start|top"
+ android:orientation="horizontal"
+ android:paddingEnd="12dp"
+ android:paddingTop="16dp"
+ android:paddingBottom="4dp">
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
+ </LinearLayout>
+
+ <com.android.settingslib.widget.LinkTextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingBottom="16dp"
+ android:paddingTop="16dp"
+ android:maxLines="10"
+ android:textColor="?android:attr/textColorSecondary"
+ android:ellipsize="marquee" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/packages/SettingsLib/FooterPreference/res/layout/preference_footer.xml b/packages/SettingsLib/FooterPreference/res/layout/preference_footer.xml
index 7a550ae..5496a01 100644
--- a/packages/SettingsLib/FooterPreference/res/layout/preference_footer.xml
+++ b/packages/SettingsLib/FooterPreference/res/layout/preference_footer.xml
@@ -23,7 +23,6 @@
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:background="?android:attr/selectableItemBackground"
- android:orientation="vertical"
android:clipToPadding="false">
<LinearLayout
diff --git a/packages/SettingsLib/SettingsTheme/res/layout/settings_dropdown_preference.xml b/packages/SettingsLib/SettingsTheme/res/layout-v31/settingslib_dropdown_preference.xml
similarity index 95%
rename from packages/SettingsLib/SettingsTheme/res/layout/settings_dropdown_preference.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v31/settingslib_dropdown_preference.xml
index 87977bd..60088bd 100644
--- a/packages/SettingsLib/SettingsTheme/res/layout/settings_dropdown_preference.xml
+++ b/packages/SettingsLib/SettingsTheme/res/layout-v31/settingslib_dropdown_preference.xml
@@ -30,6 +30,6 @@
android:layout_marginLeft="@dimen/preference_dropdown_padding_start"
android:visibility="invisible" />
- <include layout="@layout/settings_preference" />
+ <include layout="@layout/settingslib_preference" />
</FrameLayout>
\ No newline at end of file
diff --git a/packages/SettingsLib/SettingsTheme/res/layout/settings_icon.xml b/packages/SettingsLib/SettingsTheme/res/layout-v31/settingslib_icon_frame.xml
similarity index 96%
rename from packages/SettingsLib/SettingsTheme/res/layout/settings_icon.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v31/settingslib_icon_frame.xml
index 5567790..f7e0151 100644
--- a/packages/SettingsLib/SettingsTheme/res/layout/settings_icon.xml
+++ b/packages/SettingsLib/SettingsTheme/res/layout-v31/settingslib_icon_frame.xml
@@ -20,7 +20,7 @@
android:id="@+id/icon_frame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:minWidth="@dimen/icon_min_width"
+ android:minWidth="48dp"
android:gravity="start|center_vertical"
android:orientation="horizontal"
android:paddingLeft="0dp"
diff --git a/packages/SettingsLib/SettingsTheme/res/layout/settings_preference.xml b/packages/SettingsLib/SettingsTheme/res/layout-v31/settingslib_preference.xml
similarity index 97%
rename from packages/SettingsLib/SettingsTheme/res/layout/settings_preference.xml
rename to packages/SettingsLib/SettingsTheme/res/layout-v31/settingslib_preference.xml
index d2b3169..579abbd5 100644
--- a/packages/SettingsLib/SettingsTheme/res/layout/settings_preference.xml
+++ b/packages/SettingsLib/SettingsTheme/res/layout-v31/settingslib_preference.xml
@@ -29,7 +29,7 @@
android:clipToPadding="false"
android:baselineAligned="false">
- <include layout="@layout/settings_icon"/>
+ <include layout="@layout/settingslib_icon_frame"/>
<RelativeLayout
android:layout_width="0dp"
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v31/config.xml b/packages/SettingsLib/SettingsTheme/res/values-v31/config.xml
index acf06c4..8993d0f 100644
--- a/packages/SettingsLib/SettingsTheme/res/values-v31/config.xml
+++ b/packages/SettingsLib/SettingsTheme/res/values-v31/config.xml
@@ -15,6 +15,6 @@
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <bool name="config_icon_space_reserved">false</bool>
- <bool name="config_allow_divider">false</bool>
+ <bool name="settingslib_config_icon_space_reserved">false</bool>
+ <bool name="settingslib_config_allow_divider">false</bool>
</resources>
\ No newline at end of file
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v31/dimens.xml b/packages/SettingsLib/SettingsTheme/res/values-v31/dimens.xml
index d092666..acbf359 100644
--- a/packages/SettingsLib/SettingsTheme/res/values-v31/dimens.xml
+++ b/packages/SettingsLib/SettingsTheme/res/values-v31/dimens.xml
@@ -16,10 +16,6 @@
-->
<resources>
- <dimen name="preference_title_font_size">20sp</dimen>
- <dimen name="icon_min_width">48dp</dimen>
- <dimen name="preference_padding_start">24dp</dimen>
- <dimen name="preference_padding_end">16dp</dimen>
<dimen name="app_preference_padding_start">20dp</dimen>
<dimen name="app_icon_min_width">52dp</dimen>
</resources>
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v31/style_preference.xml b/packages/SettingsLib/SettingsTheme/res/values-v31/style_preference.xml
new file mode 100644
index 0000000..e61d553
--- /dev/null
+++ b/packages/SettingsLib/SettingsTheme/res/values-v31/style_preference.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2021 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<resources>
+ <style name="PreferenceTheme.SettingsLib" parent="@style/PreferenceThemeOverlay">
+ <item name="preferenceCategoryTitleTextAppearance">@style/TextAppearance.CategoryTitle.SettingsLib</item>
+ <item name="preferenceCategoryStyle">@style/SettingsCategoryPreference.SettingsLib</item>
+ <item name="preferenceStyle">@style/SettingsPreference.SettingsLib</item>
+ <item name="checkBoxPreferenceStyle">@style/SettingsCheckBoxPreference.SettingsLib</item>
+ <item name="dialogPreferenceStyle">@style/SettingsPreference.SettingsLib</item>
+ <item name="editTextPreferenceStyle">@style/SettingsEditTextPreference.SettingsLib</item>
+ <item name="dropdownPreferenceStyle">@style/SettingsDropdownPreference.SettingsLib</item>
+ <item name="switchPreferenceStyle">@style/SettingsSwitchPreference.SettingsLib</item>
+ <item name="seekBarPreferenceStyle">@style/SettingsSeekbarPreference.SettingsLib</item>
+ <item name="footerPreferenceStyle">@style/Preference.Material</item>
+ </style>
+
+ <style name="SettingsCategoryPreference.SettingsLib" parent="@style/Preference.Category.Material">
+ <item name="iconSpaceReserved">@bool/settingslib_config_icon_space_reserved</item>
+ <item name="allowDividerAbove">@bool/settingslib_config_allow_divider</item>
+ <item name="allowDividerBelow">@bool/settingslib_config_allow_divider</item>
+ </style>
+
+ <style name="SettingsPreference.SettingsLib" parent="@style/Preference.Material">
+ <item name="layout">@layout/settingslib_preference</item>
+ <item name="iconSpaceReserved">@bool/settingslib_config_icon_space_reserved</item>
+ </style>
+
+ <style name="SettingsCheckBoxPreference.SettingsLib" parent="@style/Preference.CheckBoxPreference.Material">
+ <item name="layout">@layout/settingslib_preference</item>
+ <item name="iconSpaceReserved">@bool/settingslib_config_icon_space_reserved</item>
+ </style>
+
+ <style name="SettingsEditTextPreference.SettingsLib"
+ parent="@style/Preference.DialogPreference.EditTextPreference.Material">
+ <item name="layout">@layout/settingslib_preference</item>
+ <item name="iconSpaceReserved">@bool/settingslib_config_icon_space_reserved</item>
+ </style>
+
+ <style name="SettingsDropdownPreference.SettingsLib" parent="@style/Preference.DropDown.Material">
+ <item name="layout">@layout/settingslib_dropdown_preference</item>
+ <item name="iconSpaceReserved">@bool/settingslib_config_icon_space_reserved</item>
+ </style>
+
+ <style name="SettingsSwitchPreference.SettingsLib" parent="@style/Preference.SwitchPreference.Material">
+ <item name="layout">@layout/settingslib_preference</item>
+ <item name="iconSpaceReserved">@bool/settingslib_config_icon_space_reserved</item>
+ </style>
+
+ <style name="SettingsSeekbarPreference.SettingsLib" parent="@style/Preference.SeekBarPreference.Material">
+ <item name="iconSpaceReserved">@bool/settingslib_config_icon_space_reserved</item>
+ </style>
+</resources>
diff --git a/packages/SettingsLib/SettingsTheme/res/values/styles.xml b/packages/SettingsLib/SettingsTheme/res/values-v31/styles.xml
similarity index 75%
rename from packages/SettingsLib/SettingsTheme/res/values/styles.xml
rename to packages/SettingsLib/SettingsTheme/res/values-v31/styles.xml
index f24e008..83a259e 100644
--- a/packages/SettingsLib/SettingsTheme/res/values/styles.xml
+++ b/packages/SettingsLib/SettingsTheme/res/values-v31/styles.xml
@@ -15,8 +15,11 @@
limitations under the License.
-->
<resources>
- <style name="TextAppearance.PreferenceTitle"
+ <style name="TextAppearance.PreferenceTitle.SettingsLib"
parent="@*android:style/TextAppearance.DeviceDefault.ListItem">
- <item name="android:textSize">@dimen/preference_title_font_size</item>
+ <item name="android:textSize">20sp</item>
</style>
+
+ <style name="TextAppearance.CategoryTitle.SettingsLib"
+ parent="@*android:style/TextAppearance.DeviceDefault.Body2" />
</resources>
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v31/themes.xml b/packages/SettingsLib/SettingsTheme/res/values-v31/themes.xml
new file mode 100644
index 0000000..69649e0
--- /dev/null
+++ b/packages/SettingsLib/SettingsTheme/res/values-v31/themes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2021 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources>
+ <!-- Only using in Settings application -->
+ <style name="Theme.SettingsBase" parent="@android:style/Theme.DeviceDefault.Settings" >
+ <item name="android:textAppearanceListItem">@style/TextAppearance.PreferenceTitle.SettingsLib</item>
+ <item name="android:listPreferredItemPaddingStart">24dp</item>
+ <item name="android:listPreferredItemPaddingEnd">16dp</item>
+ <item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item>
+ </style>
+
+ <!-- Using in SubSettings page including injected settings page -->
+ <style name="Theme.SubSettingsBase" parent="Theme.SettingsBase">
+ <!-- Suppress the built-in action bar -->
+ <item name="android:windowActionBar">false</item>
+ <item name="android:windowNoTitle">true</item>
+ <!-- Set up edge-to-edge configuration for top app bar -->
+ <item name="android:navigationBarColor">@android:color/transparent</item>
+ <item name="android:statusBarColor">@android:color/transparent</item>
+ </style>
+</resources>
\ No newline at end of file
diff --git a/packages/SettingsLib/SettingsTheme/res/values/config.xml b/packages/SettingsLib/SettingsTheme/res/values/config.xml
deleted file mode 100644
index a3bb1da..0000000
--- a/packages/SettingsLib/SettingsTheme/res/values/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <bool name="config_icon_space_reserved">true</bool>
- <bool name="config_allow_divider">true</bool>
-</resources>
\ No newline at end of file
diff --git a/packages/SettingsLib/SettingsTheme/res/values/dimens.xml b/packages/SettingsLib/SettingsTheme/res/values/dimens.xml
index 009ae6b..3f473a3 100644
--- a/packages/SettingsLib/SettingsTheme/res/values/dimens.xml
+++ b/packages/SettingsLib/SettingsTheme/res/values/dimens.xml
@@ -17,10 +17,6 @@
<resources>
<dimen name="secondary_app_icon_size">32dp</dimen>
- <dimen name="preference_title_font_size">16sp</dimen>
- <dimen name="icon_min_width">56dp</dimen>
- <dimen name="preference_padding_start">?android:attr/dialogPreferredPadding</dimen>
- <dimen name="preference_padding_end">?android:attr/dialogPreferredPadding</dimen>
<dimen name="app_preference_padding_start">?android:attr/listPreferredItemPaddingStart</dimen>
<dimen name="app_icon_min_width">56dp</dimen>
</resources>
diff --git a/packages/SettingsLib/SettingsTheme/res/values/styles_preference.xml b/packages/SettingsLib/SettingsTheme/res/values/styles_preference.xml
deleted file mode 100644
index cec8b32..0000000
--- a/packages/SettingsLib/SettingsTheme/res/values/styles_preference.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2021 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-<resources>
- <!--DEPRECATED. It will be removed after all of client teams migrated to new style. -->
- <style name="PreferenceTheme" parent="@style/PreferenceThemeOverlay">
- <item name="preferenceCategoryStyle">@style/SettingsCategoryPreference</item>
- <item name="preferenceStyle">@style/SettingsPreference</item>
- <item name="checkBoxPreferenceStyle">@style/SettingsCheckBoxPreference</item>
- <item name="dialogPreferenceStyle">@style/SettingsPreference</item>
- <item name="editTextPreferenceStyle">@style/SettingsEditTextPreference</item>
- <item name="dropdownPreferenceStyle">@style/SettingsDropdownPreference</item>
- <item name="switchPreferenceStyle">@style/SettingsSwitchPreference</item>
- <item name="seekBarPreferenceStyle">@style/SettingsSeekbarPreference</item>
- <item name="footerPreferenceStyle">@style/Preference.Material</item>
- </style>
-
- <style name="PreferenceTheme.SettingsBase" parent="@style/PreferenceThemeOverlay">
- <item name="preferenceCategoryStyle">@style/SettingsCategoryPreference</item>
- <item name="preferenceStyle">@style/SettingsPreference</item>
- <item name="checkBoxPreferenceStyle">@style/SettingsCheckBoxPreference</item>
- <item name="dialogPreferenceStyle">@style/SettingsPreference</item>
- <item name="editTextPreferenceStyle">@style/SettingsEditTextPreference</item>
- <item name="dropdownPreferenceStyle">@style/SettingsDropdownPreference</item>
- <item name="switchPreferenceStyle">@style/SettingsSwitchPreference</item>
- <item name="seekBarPreferenceStyle">@style/SettingsSeekbarPreference</item>
- <item name="footerPreferenceStyle">@style/Preference.Material</item>
- </style>
-
- <style name="SettingsCategoryPreference" parent="@style/Preference.Category.Material">
- <item name="iconSpaceReserved">@bool/config_icon_space_reserved</item>
- <item name="allowDividerAbove">@bool/config_allow_divider</item>
- <item name="allowDividerBelow">@bool/config_allow_divider</item>
- </style>
-
- <style name="SettingsPreference" parent="@style/Preference.Material">
- <item name="layout">@layout/settings_preference</item>
- <item name="iconSpaceReserved">@bool/config_icon_space_reserved</item>
- </style>
-
- <style name="SettingsCheckBoxPreference" parent="@style/Preference.CheckBoxPreference.Material">
- <item name="layout">@layout/settings_preference</item>
- <item name="iconSpaceReserved">@bool/config_icon_space_reserved</item>
- </style>
-
- <style name="SettingsEditTextPreference"
- parent="@style/Preference.DialogPreference.EditTextPreference.Material">
- <item name="layout">@layout/settings_preference</item>
- <item name="iconSpaceReserved">@bool/config_icon_space_reserved</item>
- </style>
-
- <style name="SettingsDropdownPreference" parent="@style/Preference.DropDown.Material">
- <item name="layout">@layout/settings_dropdown_preference</item>
- <item name="iconSpaceReserved">@bool/config_icon_space_reserved</item>
- </style>
-
- <style name="SettingsSwitchPreference" parent="@style/Preference.SwitchPreference.Material">
- <item name="layout">@layout/settings_preference</item>
- <item name="iconSpaceReserved">@bool/config_icon_space_reserved</item>
- </style>
-
- <style name="SettingsSeekbarPreference" parent="@style/Preference.SeekBarPreference.Material">
- <item name="iconSpaceReserved">@bool/config_icon_space_reserved</item>
- </style>
-
- <style name="SettingFooterPreference" parent="@style/Preference.Material">
- <item name="allowDividerAbove">@bool/config_allow_divider</item>
- </style>
-</resources>
diff --git a/packages/SettingsLib/SettingsTheme/res/values/themes.xml b/packages/SettingsLib/SettingsTheme/res/values/themes.xml
index 771fbc2..524892d 100644
--- a/packages/SettingsLib/SettingsTheme/res/values/themes.xml
+++ b/packages/SettingsLib/SettingsTheme/res/values/themes.xml
@@ -17,20 +17,12 @@
<resources>
<!-- Only using in Settings application -->
- <style name="Theme.SettingsBase" parent="@android:style/Theme.DeviceDefault.Settings" >
- <item name="android:textAppearanceListItem">@style/TextAppearance.PreferenceTitle</item>
- <item name="android:listPreferredItemPaddingStart">@dimen/preference_padding_start</item>
- <item name="android:listPreferredItemPaddingEnd">@dimen/preference_padding_end</item>
- <item name="preferenceTheme">@style/PreferenceTheme.SettingsBase</item>
- </style>
+ <style name="Theme.SettingsBase" parent="@android:style/Theme.DeviceDefault.Settings" />
<!-- Using in SubSettings page including injected settings page -->
<style name="Theme.SubSettingsBase" parent="Theme.SettingsBase">
<!-- Suppress the built-in action bar -->
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
- <!-- Set up edge-to-edge configuration for top app bar -->
- <item name="android:navigationBarColor">@android:color/transparent</item>
- <item name="android:statusBarColor">@android:color/transparent</item>
</style>
</resources>
\ No newline at end of file
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index 49152e4..11f7db7 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -451,10 +451,8 @@
<string name="power_remaining_duration_shutdown_imminent" product="tablet" msgid="7703677921000858479">"La tablette va bientôt s\'éteindre (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_remaining_duration_shutdown_imminent" product="device" msgid="4374784375644214578">"L\'appareil va bientôt s\'éteindre (<xliff:g id="LEVEL">%1$s</xliff:g>)"</string>
<string name="power_charging" msgid="6727132649743436802">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATE">%2$s</xliff:g>"</string>
- <!-- no translation found for power_remaining_charging_duration_only (8085099012811384899) -->
- <skip />
- <!-- no translation found for power_charging_duration (6127154952524919719) -->
- <skip />
+ <string name="power_remaining_charging_duration_only" msgid="8085099012811384899">"Chargée à 100 %% dans <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="power_charging_duration" msgid="6127154952524919719">"<xliff:g id="LEVEL">%1$s</xliff:g> - chargée à 100 %% dans <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="power_charging_limited" msgid="1956874810658999681">"<xliff:g id="LEVEL">%1$s</xliff:g> - Optimisation pour préserver batterie"</string>
<string name="battery_info_status_unknown" msgid="268625384868401114">"Inconnu"</string>
<string name="battery_info_status_charging" msgid="4279958015430387405">"Batterie en charge"</string>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index 24b2cb8..edf653f 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -576,8 +576,8 @@
<string name="cached_apps_freezer_enabled" msgid="8866703500183051546">"Activado"</string>
<string name="cached_apps_freezer_reboot_dialog_text" msgid="695330563489230096">"É necesario reiniciar o teu dispositivo para aplicar este cambio. Reiníciao agora ou cancela o cambio."</string>
<string name="media_transfer_wired_usb_device_name" msgid="7699141088423210903">"Auriculares con cable"</string>
- <string name="wifi_hotspot_switch_on_text" msgid="9212273118217786155">"Activado"</string>
- <string name="wifi_hotspot_switch_off_text" msgid="7245567251496959764">"Desactivado"</string>
+ <string name="wifi_hotspot_switch_on_text" msgid="9212273118217786155">"Activada"</string>
+ <string name="wifi_hotspot_switch_off_text" msgid="7245567251496959764">"Desactivada"</string>
<string name="carrier_network_change_mode" msgid="4257621815706644026">"Cambio de rede do operador"</string>
<string name="data_connection_3g" msgid="931852552688157407">"3G"</string>
<string name="data_connection_edge" msgid="4625509456544797637">"EDGE"</string>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index c07af12..c312456 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -548,7 +548,7 @@
<string name="user_add_profile_item_title" msgid="3111051717414643029">"प्रतिबंधित प्रोफ़ाइल"</string>
<string name="user_add_user_title" msgid="5457079143694924885">"नया उपयोगकर्ता जोड़ें?"</string>
<string name="user_add_user_message_long" msgid="1527434966294733380">"आप और ज़्यादा उपयोगकर्ता बनाकर इस डिवाइस को दूसरे लोगों के साथ शेयर कर सकते हैं. हर उपयोगकर्ता के पास अपनी जगह होती है, जिसमें वह मनपसंद तरीके से ऐप्लिकेशन, वॉलपेपर और दूसरी चीज़ों में बदलाव कर सकते हैं. उपयोगकर्ता वाई-फ़ाई जैसी डिवाइस सेटिंग में भी बदलाव कर सकते हैं, जिसका असर हर किसी पर पड़ेगा.\n\nजब आप कोई नया उपयोगकर्ता जोड़ते हैं तो उन्हें अपनी जगह सेट करनी होगी.\n\nकोई भी उपयोगकर्ता दूसरे सभी उपयोगकर्ताओं के लिए ऐप्लिकेशन अपडेट कर सकता है. ऐसा भी हो सकता है कि सुलभता सेटिंग और सेवाएं नए उपयोगकर्ता को ट्रांसफ़र न हो पाएं."</string>
- <string name="user_add_user_message_short" msgid="3295959985795716166">"जब आप कोई नया उपयोगकर्ता जोड़ते हैं तो उसे अपनी जगह सेट करनी होती है.\n\nकोई भी उपयोगकर्ता बाकी सभी उपयोगकर्ताओं के लिए ऐप अपडेट कर सकता है."</string>
+ <string name="user_add_user_message_short" msgid="3295959985795716166">"जब आप कोई नया उपयोगकर्ता जोड़ते हैं, तो उसे अपनी जगह सेट करनी होती है.\n\nकोई भी उपयोगकर्ता बाकी सभी उपयोगकर्ताओं के लिए ऐप्लिकेशन अपडेट कर सकता है."</string>
<string name="user_setup_dialog_title" msgid="8037342066381939995">"उपयोगकर्ता को अभी सेट करें?"</string>
<string name="user_setup_dialog_message" msgid="269931619868102841">"पक्का करें कि व्यक्ति डिवाइस का इस्तेमाल करने और अपनी जगह सेट करने के लिए मौजूद है"</string>
<string name="user_setup_profile_dialog_message" msgid="4788197052296962620">"प्रोफ़ाइल अभी सेट करें?"</string>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index a29462a..798531a 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -565,8 +565,8 @@
<string name="creating_new_user_dialog_message" msgid="7232880257538970375">"กำลังสร้างผู้ใช้ใหม่…"</string>
<string name="add_user_failed" msgid="4809887794313944872">"สร้างผู้ใช้ใหม่ไม่ได้"</string>
<string name="user_nickname" msgid="262624187455825083">"ชื่อเล่น"</string>
- <string name="guest_new_guest" msgid="3482026122932643557">"เพิ่มผู้เข้าร่วม"</string>
- <string name="guest_exit_guest" msgid="5908239569510734136">"นำผู้เข้าร่วมออก"</string>
+ <string name="guest_new_guest" msgid="3482026122932643557">"เพิ่มผู้ใช้ชั่วคราว"</string>
+ <string name="guest_exit_guest" msgid="5908239569510734136">"นำผู้ใช้ชั่วคราวออก"</string>
<string name="guest_nickname" msgid="6332276931583337261">"ผู้ใช้ชั่วคราว"</string>
<string name="user_image_take_photo" msgid="467512954561638530">"ถ่ายรูป"</string>
<string name="user_image_choose_photo" msgid="1363820919146782908">"เลือกรูปภาพ"</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/core/lifecycle/HideNonSystemOverlayMixin.java b/packages/SettingsLib/src/com/android/settingslib/core/lifecycle/HideNonSystemOverlayMixin.java
new file mode 100644
index 0000000..d7e9dc6
--- /dev/null
+++ b/packages/SettingsLib/src/com/android/settingslib/core/lifecycle/HideNonSystemOverlayMixin.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settingslib.core.lifecycle;
+
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
+import static androidx.lifecycle.Lifecycle.Event.ON_START;
+import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
+
+import android.app.Activity;
+import android.provider.Settings;
+import android.view.Window;
+import android.view.WindowManager;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
+
+/**
+ * A mixin that adds window flag to prevent non-system overlays showing on top of Settings
+ * activities.
+ */
+public class HideNonSystemOverlayMixin implements LifecycleObserver {
+
+ public static final String SECURE_OVERLAY_SETTINGS = "secure_overlay_settings";
+
+ private final Activity mActivity;
+
+ public HideNonSystemOverlayMixin(Activity activity) {
+ mActivity = activity;
+ }
+
+ @VisibleForTesting
+ boolean isEnabled() {
+ return Settings.Secure.getInt(mActivity.getContentResolver(),
+ SECURE_OVERLAY_SETTINGS, 0 /* defValue */) == 0;
+ }
+
+ /**
+ * Start Lifecycle event
+ */
+ @OnLifecycleEvent(ON_START)
+ public void onStart() {
+ if (mActivity == null || !isEnabled()) {
+ return;
+ }
+ mActivity.getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ android.util.EventLog.writeEvent(0x534e4554, "120484087", -1, "");
+ }
+
+ /**
+ * Stop Lifecycle event
+ */
+ @OnLifecycleEvent(ON_STOP)
+ public void onStop() {
+ if (mActivity == null || !isEnabled()) {
+ return;
+ }
+ final Window window = mActivity.getWindow();
+ final WindowManager.LayoutParams attrs = window.getAttributes();
+ attrs.privateFlags &= ~SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+ window.setAttributes(attrs);
+ }
+}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/HideNonSystemOverlayMixinTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/HideNonSystemOverlayMixinTest.java
new file mode 100644
index 0000000..cf702b53
--- /dev/null
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/HideNonSystemOverlayMixinTest.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settingslib.core.lifecycle;
+
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
+import static com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin.SECURE_OVERLAY_SETTINGS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.os.Bundle;
+import android.provider.Settings;
+import android.view.WindowManager;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.android.settingslib.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.android.controller.ActivityController;
+
+@RunWith(RobolectricTestRunner.class)
+public class HideNonSystemOverlayMixinTest {
+
+ private ActivityController<TestActivity> mActivityController;
+
+ @Before
+ public void setUp() {
+ mActivityController = Robolectric.buildActivity(TestActivity.class);
+ }
+
+ @Test
+ public void startActivity_shouldHideNonSystemOverlay() {
+ mActivityController.setup();
+ TestActivity activity = mActivityController.get();
+
+ // Activity start: HIDE_NON_SYSTEM_OVERLAY should be set.
+ final WindowManager.LayoutParams attrs = activity.getWindow().getAttributes();
+ assertThat(attrs.privateFlags & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS)
+ .isNotEqualTo(0);
+ }
+
+ @Test
+ public void stopActivity_shouldUnhideNonSystemOverlay() {
+ mActivityController.setup().stop();
+ TestActivity activity = mActivityController.get();
+
+ final WindowManager.LayoutParams attrs = activity.getWindow().getAttributes();
+ assertThat(attrs.privateFlags & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS)
+ .isEqualTo(0);
+ }
+
+ @Test
+ public void isEnabled_isAllowedOverlaySettings_returnFalse() {
+ mActivityController.setup();
+ final TestActivity activity = mActivityController.get();
+ Settings.Secure.putInt(activity.getContentResolver(),
+ SECURE_OVERLAY_SETTINGS, 1);
+
+ assertThat(new HideNonSystemOverlayMixin(activity).isEnabled()).isFalse();
+ }
+
+ @Test
+ public void isEnabled_isNotAllowedOverlaySettings_returnTrue() {
+ mActivityController.setup();
+ TestActivity activity = mActivityController.get();
+ Settings.Secure.putInt(activity.getContentResolver(),
+ SECURE_OVERLAY_SETTINGS, 0);
+
+ assertThat(new HideNonSystemOverlayMixin(activity).isEnabled()).isTrue();
+ }
+
+ public static class TestActivity extends AppCompatActivity {
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setTheme(R.style.Theme_AppCompat);
+ getLifecycle().addObserver(new HideNonSystemOverlayMixin(this));
+ }
+ }
+}
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
index e7f1ad7..f04acd0 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
@@ -808,14 +808,14 @@
for (int i = 0; i < settingCount; i++) {
Setting setting = settings.valueAt(i);
- writeSingleSetting(mVersion, serializer, setting.getId(), setting.getName(),
+ if (writeSingleSetting(mVersion, serializer, setting.getId(), setting.getName(),
setting.getValue(), setting.getDefaultValue(), setting.getPackageName(),
setting.getTag(), setting.isDefaultFromSystem(),
- setting.isValuePreservedInRestore());
-
- if (DEBUG_PERSISTENCE) {
- Slog.i(LOG_TAG, "[PERSISTED]" + setting.getName() + "="
- + setting.getValue());
+ setting.isValuePreservedInRestore())) {
+ if (DEBUG_PERSISTENCE) {
+ Slog.i(LOG_TAG, "[PERSISTED]" + setting.getName() + "="
+ + setting.getValue());
+ }
}
}
serializer.endTag(null, TAG_SETTINGS);
@@ -824,10 +824,11 @@
for (int i = 0; i < namespaceBannedHashes.size(); i++) {
String namespace = namespaceBannedHashes.keyAt(i);
String bannedHash = namespaceBannedHashes.get(namespace);
- writeSingleNamespaceHash(serializer, namespace, bannedHash);
- if (DEBUG_PERSISTENCE) {
- Slog.i(LOG_TAG, "[PERSISTED] namespace=" + namespace
- + ", bannedHash=" + bannedHash);
+ if (writeSingleNamespaceHash(serializer, namespace, bannedHash)) {
+ if (DEBUG_PERSISTENCE) {
+ Slog.i(LOG_TAG, "[PERSISTED] namespace=" + namespace
+ + ", bannedHash=" + bannedHash);
+ }
}
}
serializer.endTag(null, TAG_NAMESPACE_HASHES);
@@ -898,14 +899,20 @@
}
}
- static void writeSingleSetting(int version, TypedXmlSerializer serializer, String id,
+ static boolean writeSingleSetting(int version, TypedXmlSerializer serializer, String id,
String name, String value, String defaultValue, String packageName,
String tag, boolean defaultSysSet, boolean isValuePreservedInRestore)
throws IOException {
if (id == null || isBinary(id) || name == null || isBinary(name)
|| packageName == null || isBinary(packageName)) {
- // This shouldn't happen.
- return;
+ if (DEBUG_PERSISTENCE) {
+ Slog.w(LOG_TAG, "Invalid arguments for writeSingleSetting: version=" + version
+ + ", id=" + id + ", name=" + name + ", value=" + value
+ + ", defaultValue=" + defaultValue + ", packageName=" + packageName
+ + ", tag=" + tag + ", defaultSysSet=" + defaultSysSet
+ + ", isValuePreservedInRestore=" + isValuePreservedInRestore);
+ }
+ return false;
}
serializer.startTag(null, TAG_SETTING);
serializer.attribute(null, ATTR_ID, id);
@@ -924,6 +931,7 @@
serializer.attributeBoolean(null, ATTR_PRESERVE_IN_RESTORE, true);
}
serializer.endTag(null, TAG_SETTING);
+ return true;
}
static void setValueAttribute(String attr, String attrBase64, int version,
@@ -946,15 +954,20 @@
}
}
- private static void writeSingleNamespaceHash(TypedXmlSerializer serializer, String namespace,
+ private static boolean writeSingleNamespaceHash(TypedXmlSerializer serializer, String namespace,
String bannedHashCode) throws IOException {
if (namespace == null || bannedHashCode == null) {
- return;
+ if (DEBUG_PERSISTENCE) {
+ Slog.w(LOG_TAG, "Invalid arguments for writeSingleNamespaceHash: namespace="
+ + namespace + ", bannedHashCode=" + bannedHashCode);
+ }
+ return false;
}
serializer.startTag(null, TAG_NAMESPACE_HASH);
serializer.attribute(null, ATTR_NAMESPACE, namespace);
serializer.attribute(null, ATTR_BANNED_HASH, bannedHashCode);
serializer.endTag(null, TAG_NAMESPACE_HASH);
+ return true;
}
private static String hashCode(Map<String, String> keyValues) {
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/Interpolators.java b/packages/SystemUI/animation/src/com/android/systemui/animation/Interpolators.java
index 58cef31..0a052df 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/Interpolators.java
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/Interpolators.java
@@ -70,4 +70,17 @@
*/
public static final Interpolator TOUCH_RESPONSE_REVERSE =
new PathInterpolator(0.9f, 0f, 0.7f, 1f);
+
+ /**
+ * Interpolate alpha for notifications background scrim during shade expansion.
+ * @param fraction Shade expansion fraction
+ */
+ public static float getNotificationScrimAlpha(float fraction) {
+ fraction = fraction * 1.2f - 0.2f;
+ if (fraction <= 0) {
+ return 0;
+ } else {
+ return (float) (1f - 0.5f * (1f - Math.cos(3.14159f * Math.pow(1f - fraction, 2f))));
+ }
+ }
}
diff --git a/packages/SystemUI/docs/QS-QQS.png b/packages/SystemUI/docs/QS-QQS.png
index 02de479..3ed8e24 100644
--- a/packages/SystemUI/docs/QS-QQS.png
+++ b/packages/SystemUI/docs/QS-QQS.png
Binary files differ
diff --git a/packages/SystemUI/docs/qs-tiles.md b/packages/SystemUI/docs/qs-tiles.md
index b48ba67..5216209 100644
--- a/packages/SystemUI/docs/qs-tiles.md
+++ b/packages/SystemUI/docs/qs-tiles.md
@@ -8,7 +8,7 @@
## What are Quick Settings Tiles?
-Quick Settings (from now on, QS) is the expanded panel that contains shortcuts for the user to toggle many settings. This is opened by expanding the notification drawer twice (or once when phone is locked). Quick Quick Settings (QQS) is the smaller panel that appears on top of the notifications before expanding twice and contains some of the toggles with no text.
+Quick Settings (from now on, QS) is the expanded panel that contains shortcuts for the user to toggle many settings. This is opened by expanding the notification drawer twice (or once when phone is locked). Quick Quick Settings (QQS) is the smaller panel that appears on top of the notifications before expanding twice and contains some of the toggles with no secondary line.
Each of these toggles that appear either in QS or QQS are called Quick Settings Tiles (or tiles for short). They allow the user to enable or disable settings quickly and sometimes provides access to more comprehensive settings pages.
@@ -69,13 +69,13 @@
Each Tile has a couple of associated views for displaying it in QS and QQS. These views are updated after the backend updates the `State` using `QSTileImpl#handleUpdateState`.
-* **[`com.android.systemui.plugins.qs.QSTileView`](/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTileView.java)**: Abstract class that provides basic Tile functionality. These allows external [Factories](#qsfactory) to create Tiles.
-* **[`QSTileBaseView`](/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java)**: Implementation of `QSTileView` used in QQS that takes care of most of the features of the view:
+* **[`QSTileView`](/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTileView.java)**: Abstract class that provides basic Tile functionality. These allows external [Factories](#qsfactory) to create Tiles.
+* **[`QSTileViewImpl`](/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.java)**: Implementation of `QSTileView`. It takes care of the following:
* Holding the icon
* Background color and shape
* Ripple
* Click listening
-* **[`QSTileView`](/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java)**: Extends `QSTileBaseView`to add label support. Used in QS.
+ * Labels
* **[`QSIconView`](/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSIconView.java)**
* **[`QSIconViewImpl`](/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java)**
@@ -103,7 +103,7 @@
This is a brief run-down of what happens when a user clicks on a tile. Internal changes on the device (for example, changes from Settings) will trigger this process starting in step 3. Throughout this section, we assume that we are dealing with a `QSTileImpl`.
1. User clicks on tile. The following calls happen in sequence:
- 1. `QSTileBaseView#onClickListener`.
+ 1. `QSTileViewImpl#onClickListener`.
2. `QSTile#click`.
3. `QSTileImpl#handleClick`. This last call sets the new state for the device by using the associated controller.
2. State in the device changes. This is normally outside of SystemUI's control.
@@ -113,9 +113,9 @@
4. `QSTileImpl#handleUpdateState` is called to update the state with the new information. This information can be obtained both from the `Object` passed to `refreshState` as well as from the controller.
5. If the state has changed (in at least one element), `QSTileImpl#handleStateChanged` is called. This will trigger a call to all the associated `QSTile.Callback#onStateChanged`, passing the new `State`.
6. `QSTileView#onStateChanged` is called and this calls `QSTileView#handleStateChanged`. This method maps the state into the view:
- * The tile is rippled and the color changes to match the new state.
+ * The tile colors change to match the new state.
* `QSIconView.setIcon` is called to apply the correct state to the icon and the correct icon to the view.
- * If the tile is a `QSTileView` (in expanded QS), the labels are changed.
+ * The tile labels change to match the new state.
## Third party tiles (TileService)
diff --git a/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java b/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java
index 9bb2dde..69ce275 100644
--- a/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java
+++ b/packages/SystemUI/plugin/bcsmartspace/src/com/android/systemui/plugins/BcSmartspaceDataPlugin.java
@@ -20,10 +20,13 @@
import android.app.smartspace.SmartspaceAction;
import android.app.smartspace.SmartspaceTarget;
import android.content.Intent;
+import android.graphics.drawable.Icon;
import android.os.Parcelable;
import android.view.View;
import android.view.ViewGroup;
+import androidx.annotation.Nullable;
+
import com.android.systemui.plugins.annotations.ProvidesInterface;
import java.util.List;
@@ -50,6 +53,11 @@
return null;
}
+ /**
+ * As the smartspace view becomes available, allow listeners to receive an event.
+ */
+ default void addOnAttachStateChangeListener(View.OnAttachStateChangeListener listener) { }
+
/** Updates Smartspace data and propagates it to any listeners. */
void onTargetsAvailable(List<SmartspaceTarget> targets);
@@ -83,6 +91,11 @@
* When on the lockscreen, use the FalsingManager to help detect errant touches
*/
void setFalsingManager(com.android.systemui.plugins.FalsingManager falsingManager);
+
+ /**
+ * Set or clear any Do Not Disturb information.
+ */
+ void setDnd(@Nullable Icon dndIcon, @Nullable String description);
}
/** Interface for launching Intents, which can differ on the lockscreen */
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java
index d1383eb..f1c1477 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java
@@ -148,9 +148,11 @@
@ProvidesInterface(version = State.VERSION)
public static class State {
public static final int VERSION = 1;
+ public static final int DEFAULT_STATE = Tile.STATE_ACTIVE;
+
public Icon icon;
public Supplier<Icon> iconSupplier;
- public int state = Tile.STATE_ACTIVE;
+ public int state = DEFAULT_STATE;
public CharSequence label;
public CharSequence secondaryLabel;
public CharSequence contentDescription;
@@ -163,7 +165,7 @@
public SlashState slash;
public boolean handlesLongClick = true;
public boolean showRippleEffect = true;
- public Drawable sideViewDrawable;
+ public Drawable sideViewCustomDrawable;
public boolean copyTo(State other) {
if (other == null) throw new IllegalArgumentException();
@@ -185,7 +187,7 @@
|| !Objects.equals(other.slash, slash)
|| !Objects.equals(other.handlesLongClick, handlesLongClick)
|| !Objects.equals(other.showRippleEffect, showRippleEffect)
- || !Objects.equals(other.sideViewDrawable, sideViewDrawable);
+ || !Objects.equals(other.sideViewCustomDrawable, sideViewCustomDrawable);
other.icon = icon;
other.iconSupplier = iconSupplier;
other.label = label;
@@ -201,7 +203,7 @@
other.slash = slash != null ? slash.copy() : null;
other.handlesLongClick = handlesLongClick;
other.showRippleEffect = showRippleEffect;
- other.sideViewDrawable = sideViewDrawable;
+ other.sideViewCustomDrawable = sideViewCustomDrawable;
return changed;
}
@@ -227,7 +229,7 @@
sb.append(",isTransient=").append(isTransient);
sb.append(",state=").append(state);
sb.append(",slash=\"").append(slash).append("\"");
- sb.append(",sideViewDrawable").append(sideViewDrawable);
+ sb.append(",sideViewCustomDrawable=").append(sideViewCustomDrawable);
return sb.append(']');
}
@@ -242,12 +244,16 @@
public static class BooleanState extends State {
public static final int VERSION = 1;
public boolean value;
+ public boolean forceExpandIcon;
@Override
public boolean copyTo(State other) {
final BooleanState o = (BooleanState) other;
- final boolean changed = super.copyTo(other) || o.value != value;
+ final boolean changed = super.copyTo(other)
+ || o.value != value
+ || o.forceExpandIcon != forceExpandIcon;
o.value = value;
+ o.forceExpandIcon = forceExpandIcon;
return changed;
}
@@ -255,6 +261,7 @@
protected StringBuilder toStringBuilder() {
final StringBuilder rt = super.toStringBuilder();
rt.insert(rt.length() - 1, ",value=" + value);
+ rt.insert(rt.length() - 1, ",forceExpandIcon=" + forceExpandIcon);
return rt;
}
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml b/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml
index 1cef44b..7c5459c1 100644
--- a/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml
+++ b/packages/SystemUI/res-keyguard/layout/keyguard_clock_switch.xml
@@ -80,6 +80,6 @@
android:layout_width="match_parent"
android:layout_height="@dimen/notification_shelf_height"
android:layout_below="@id/keyguard_status_area"
- android:paddingStart="@dimen/below_clock_padding_start"
+ android:paddingStart="@dimen/below_clock_padding_start_extra"
/>
</com.android.keyguard.KeyguardClockSwitch>
diff --git a/packages/SystemUI/res-keyguard/layout/qs_media_divider.xml b/packages/SystemUI/res-keyguard/layout/qs_media_divider.xml
deleted file mode 100644
index 1be489c..0000000
--- a/packages/SystemUI/res-keyguard/layout/qs_media_divider.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<View xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="1dp"
- android:layout_marginBottom="16dp"
- android:background="@color/media_divider">
-</View>
\ No newline at end of file
diff --git a/packages/SystemUI/res-keyguard/values/dimens.xml b/packages/SystemUI/res-keyguard/values/dimens.xml
index 9b8035d..a166b09 100644
--- a/packages/SystemUI/res-keyguard/values/dimens.xml
+++ b/packages/SystemUI/res-keyguard/values/dimens.xml
@@ -94,4 +94,5 @@
<!-- additional offset for clock switch area items -->
<dimen name="clock_padding_start">28dp</dimen>
<dimen name="below_clock_padding_start">32dp</dimen>
+ <dimen name="below_clock_padding_start_extra">36dp</dimen>
</resources>
diff --git a/packages/SystemUI/res/color/media_player_album_bg.xml b/packages/SystemUI/res/color/media_player_album_bg.xml
new file mode 100644
index 0000000..e0deac9
--- /dev/null
+++ b/packages/SystemUI/res/color/media_player_album_bg.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
+ <item android:color="?androidprv:attr/colorAccentSecondary"/>
+</selector>
\ No newline at end of file
diff --git a/packages/SystemUI/res/color/media_player_outline_button_bg.xml b/packages/SystemUI/res/color/media_player_outline_button_bg.xml
new file mode 100644
index 0000000..ba7848a
--- /dev/null
+++ b/packages/SystemUI/res/color/media_player_outline_button_bg.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
+ <item android:color="?androidprv:attr/colorAccentPrimaryVariant"/>
+</selector>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/ic_blank.xml b/packages/SystemUI/res/drawable/ic_blank.xml
new file mode 100644
index 0000000..b94088f
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_blank.xml
@@ -0,0 +1,22 @@
+<!--
+Copyright (C) 2021 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="16dp"
+ android:height="16dp"
+ android:viewportWidth="16.0"
+ android:viewportHeight="16.0">
+ <path/>
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_qs_sim_card.xml b/packages/SystemUI/res/drawable/ic_qs_sim_card.xml
new file mode 100644
index 0000000..6eda929
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_qs_sim_card.xml
@@ -0,0 +1,47 @@
+<!--
+Copyright (C) 2021 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="?android:attr/colorControlNormal"
+ >
+
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M18,2h-8L4,8v12c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2z M18,4v16H6V8.83L10.83,4L18,4L18,4z" />
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M 7 17 H 9 V 19 H 7 V 17 Z" />
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M 15 17 H 17 V 19 H 15 V 17 Z" />
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M 7 11 H 9 V 15 H 7 V 11 Z" />
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M 11 15 H 13 V 19 H 11 V 15 Z" />
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M 11 11 H 13 V 13 H 11 V 11 Z" />
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M 15 11 H 17 V 15 H 15 V 11 Z" />
+ <path
+ android:pathData="M0,0h24v24H0V0z" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/notif_settings_button.xml b/packages/SystemUI/res/drawable/notif_settings_button.xml
new file mode 100644
index 0000000..34a5caf
--- /dev/null
+++ b/packages/SystemUI/res/drawable/notif_settings_button.xml
@@ -0,0 +1,20 @@
+<!--
+ ~ Copyright (C) 2021 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@drawable/ripple_drawable"/>
+ <item android:drawable="@drawable/ic_settings"/>
+</layer-list>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/privacy_chip_bg.xml b/packages/SystemUI/res/drawable/privacy_chip_bg.xml
index 9f41dbe..99c0ab4b 100644
--- a/packages/SystemUI/res/drawable/privacy_chip_bg.xml
+++ b/packages/SystemUI/res/drawable/privacy_chip_bg.xml
@@ -16,6 +16,6 @@
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="@color/privacy_circle" />
+ <solid android:color="@color/privacy_chip_background" />
<corners android:radius="@dimen/ongoing_appops_chip_bg_corner_radius" />
</shape>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/privacy_item_circle_camera.xml b/packages/SystemUI/res/drawable/privacy_item_circle_camera.xml
index 54a66e2..f4ff549 100644
--- a/packages/SystemUI/res/drawable/privacy_item_circle_camera.xml
+++ b/packages/SystemUI/res/drawable/privacy_item_circle_camera.xml
@@ -24,7 +24,7 @@
android:height="@dimen/ongoing_appops_dialog_circle_size"
android:width="@dimen/ongoing_appops_dialog_circle_size"
/>
- <solid android:color="@color/privacy_circle" />
+ <solid android:color="@color/privacy_chip_background" />
</shape>
</item>
<item android:id="@id/icon"
diff --git a/packages/SystemUI/res/drawable/privacy_item_circle_location.xml b/packages/SystemUI/res/drawable/privacy_item_circle_location.xml
index 65f4396..9a201886 100644
--- a/packages/SystemUI/res/drawable/privacy_item_circle_location.xml
+++ b/packages/SystemUI/res/drawable/privacy_item_circle_location.xml
@@ -24,7 +24,7 @@
android:height="@dimen/ongoing_appops_dialog_circle_size"
android:width="@dimen/ongoing_appops_dialog_circle_size"
/>
- <solid android:color="@color/privacy_circle" />
+ <solid android:color="@color/privacy_chip_background" />
</shape>
</item>
<item android:id="@id/icon"
diff --git a/packages/SystemUI/res/drawable/privacy_item_circle_microphone.xml b/packages/SystemUI/res/drawable/privacy_item_circle_microphone.xml
index 1565d2d..a5f2d32 100644
--- a/packages/SystemUI/res/drawable/privacy_item_circle_microphone.xml
+++ b/packages/SystemUI/res/drawable/privacy_item_circle_microphone.xml
@@ -24,7 +24,7 @@
android:height="@dimen/ongoing_appops_dialog_circle_size"
android:width="@dimen/ongoing_appops_dialog_circle_size"
/>
- <solid android:color="@color/privacy_circle" />
+ <solid android:color="@color/privacy_chip_background" />
</shape>
</item>
<item android:id="@id/icon"
diff --git a/packages/SystemUI/res/drawable/qs_customize_tile_decoration.xml b/packages/SystemUI/res/drawable/qs_customize_tile_decoration.xml
index 1124a92..d7a9edc 100644
--- a/packages/SystemUI/res/drawable/qs_customize_tile_decoration.xml
+++ b/packages/SystemUI/res/drawable/qs_customize_tile_decoration.xml
@@ -13,5 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<color xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="?android:attr/colorBackground"/>
\ No newline at end of file
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="?android:attr/colorBackground"/>
+ <corners android:topLeftRadius="20dp"
+ android:topRightRadius="20dp" />
+</shape>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/system_animation_ongoing_dot.xml b/packages/SystemUI/res/drawable/system_animation_ongoing_dot.xml
index 4e9d380..9f81b0d 100644
--- a/packages/SystemUI/res/drawable/system_animation_ongoing_dot.xml
+++ b/packages/SystemUI/res/drawable/system_animation_ongoing_dot.xml
@@ -18,7 +18,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
- android:color="@color/privacy_circle"/>
+ android:color="@color/privacy_chip_background"/>
<size
android:width="6dp"
android:height="6dp"
diff --git a/packages/SystemUI/res/layout/dock_info_bottom_area_overlay.xml b/packages/SystemUI/res/layout/dock_info_bottom_area_overlay.xml
new file mode 100644
index 0000000..8b70dd7
--- /dev/null
+++ b/packages/SystemUI/res/layout/dock_info_bottom_area_overlay.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2021 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<!-- empty stub -->
+<merge />
diff --git a/packages/SystemUI/res/layout/global_actions_grid_lite.xml b/packages/SystemUI/res/layout/global_actions_grid_lite.xml
index 0df9800..2430eec 100644
--- a/packages/SystemUI/res/layout/global_actions_grid_lite.xml
+++ b/packages/SystemUI/res/layout/global_actions_grid_lite.xml
@@ -18,7 +18,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/global_actions_container"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
+ android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:layout_gravity="center">
diff --git a/packages/SystemUI/res/layout/notification_conversation_info.xml b/packages/SystemUI/res/layout/notification_conversation_info.xml
index c332f4c..2ec4e73 100644
--- a/packages/SystemUI/res/layout/notification_conversation_info.xml
+++ b/packages/SystemUI/res/layout/notification_conversation_info.xml
@@ -45,11 +45,14 @@
android:layout_marginEnd="12dp"
>
- <!-- Big icon: 52x52, 12dp padding left + top, 16dp padding right -->
+ <!-- Big icon: 48x48, 12dp padding top, 16dp padding sides -->
<ImageView
android:id="@+id/conversation_icon"
android:layout_width="@*android:dimen/conversation_avatar_size"
android:layout_height="@*android:dimen/conversation_avatar_size"
+ android:layout_marginLeft="@*android:dimen/conversation_badge_protrusion"
+ android:layout_marginRight="@*android:dimen/conversation_badge_protrusion"
+ android:layout_marginBottom="@*android:dimen/conversation_badge_protrusion"
android:scaleType="centerCrop"
android:importantForAccessibility="no"
/>
@@ -58,8 +61,7 @@
android:id="@+id/conversation_icon_badge"
android:layout_width="@*android:dimen/conversation_icon_size_badged"
android:layout_height="@*android:dimen/conversation_icon_size_badged"
- android:layout_marginLeft="@*android:dimen/conversation_badge_side_margin"
- android:layout_marginTop="@*android:dimen/conversation_badge_side_margin"
+ android:layout_gravity="end|bottom"
android:clipChildren="false"
android:clipToPadding="false"
>
diff --git a/packages/SystemUI/res/layout/notification_info.xml b/packages/SystemUI/res/layout/notification_info.xml
index b2c968c..7e8112a 100644
--- a/packages/SystemUI/res/layout/notification_info.xml
+++ b/packages/SystemUI/res/layout/notification_info.xml
@@ -108,9 +108,9 @@
android:layout_width="@dimen/notification_importance_toggle_size"
android:layout_height="@dimen/notification_importance_toggle_size"
android:layout_centerVertical="true"
- android:background="@drawable/ripple_drawable"
+ android:background="@android:color/transparent"
android:contentDescription="@string/notification_more_settings"
- android:src="@drawable/ic_settings"
+ android:src="@drawable/notif_settings_button"
android:layout_alignParentEnd="true"
android:tint="@color/notification_guts_link_icon_tint"/>
diff --git a/packages/SystemUI/res/layout/ongoing_call_chip.xml b/packages/SystemUI/res/layout/ongoing_call_chip.xml
index a5e7f5d..a146547 100644
--- a/packages/SystemUI/res/layout/ongoing_call_chip.xml
+++ b/packages/SystemUI/res/layout/ongoing_call_chip.xml
@@ -29,18 +29,17 @@
android:src="@*android:drawable/ic_phone"
android:layout_width="@dimen/ongoing_call_chip_icon_size"
android:layout_height="@dimen/ongoing_call_chip_icon_size"
- android:paddingEnd="@dimen/ongoing_call_chip_icon_text_padding"
android:tint="?android:attr/colorPrimary"
/>
<!-- TODO(b/183229367): The text in this view isn't quite centered within the chip. -->
- <!-- TODO(b/183229367): This text view's width shouldn't change as the time increases. -->
- <Chronometer
+ <com.android.systemui.statusbar.phone.ongoingcall.OngoingCallChronometer
android:id="@+id/ongoing_call_chip_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
- android:gravity="center"
+ android:gravity="center|start"
+ android:paddingStart="@dimen/ongoing_call_chip_icon_text_padding"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:fontFamily="@*android:string/config_headlineFontFamily"
android:textColor="?android:attr/colorPrimary"
diff --git a/packages/SystemUI/res/layout/qs_carrier_group.xml b/packages/SystemUI/res/layout/qs_carrier_group.xml
index fd53a8b..810c959 100644
--- a/packages/SystemUI/res/layout/qs_carrier_group.xml
+++ b/packages/SystemUI/res/layout/qs_carrier_group.xml
@@ -32,11 +32,10 @@
android:minWidth="48dp"
android:minHeight="48dp"
android:gravity="center_vertical"
- android:textAppearance="@style/TextAppearance.QS.Status"
+ android:textAppearance="@style/TextAppearance.QS.Status.NoCarrierText"
android:textDirection="locale"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
- android:maxEms="7"
android:visibility="gone"/>
<include
diff --git a/packages/SystemUI/res/layout/qs_customize_divider.xml b/packages/SystemUI/res/layout/qs_customize_divider.xml
index d6664fe..035f493 100644
--- a/packages/SystemUI/res/layout/qs_customize_divider.xml
+++ b/packages/SystemUI/res/layout/qs_customize_divider.xml
@@ -20,8 +20,9 @@
android:id="@android:id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
android:gravity="center"
- android:paddingTop="20dp"
- android:paddingBottom="13dp"
+ android:paddingTop="24dp"
+ android:paddingBottom="24dp"
android:textAppearance="@style/TextAppearance.QSEdit.Headers"
android:text="@string/drag_to_add_tiles" />
diff --git a/packages/SystemUI/res/layout/qs_customize_panel_content.xml b/packages/SystemUI/res/layout/qs_customize_panel_content.xml
index 6a1be81..8ca1b8e 100644
--- a/packages/SystemUI/res/layout/qs_customize_panel_content.xml
+++ b/packages/SystemUI/res/layout/qs_customize_panel_content.xml
@@ -27,9 +27,9 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
- android:layout_marginLeft="@dimen/notification_side_paddings"
- android:layout_marginRight="@dimen/notification_side_paddings"
android:orientation="vertical"
+ android:paddingStart="@dimen/qs_customize_internal_side_paddings"
+ android:paddingEnd="@dimen/qs_customize_internal_side_paddings"
android:background="@drawable/qs_customizer_background">
<Toolbar
android:id="@*android:id/action_bar"
@@ -45,7 +45,10 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
+ android:paddingStart="@dimen/qs_customize_internal_side_paddings"
+ android:paddingEnd="@dimen/qs_customize_internal_side_paddings"
android:paddingBottom="28dp"
+ android:clipChildren="false"
android:clipToPadding="false"
android:scrollIndicators="top"
android:scrollbars="vertical"
diff --git a/packages/SystemUI/res/layout/qs_footer_impl.xml b/packages/SystemUI/res/layout/qs_footer_impl.xml
index 93a4715..266ecef 100644
--- a/packages/SystemUI/res/layout/qs_footer_impl.xml
+++ b/packages/SystemUI/res/layout/qs_footer_impl.xml
@@ -22,6 +22,7 @@
android:layout_height="@dimen/qs_footer_height"
android:layout_marginStart="@dimen/qs_footer_margin"
android:layout_marginEnd="@dimen/qs_footer_margin"
+ android:layout_marginBottom="@dimen/qs_footers_margin_bottom"
android:background="@android:color/transparent"
android:baselineAligned="false"
android:clickable="false"
@@ -50,7 +51,6 @@
android:focusable="true"
android:gravity="center_vertical"
android:singleLine="true"
- android:textColor="?android:attr/textColorSecondary"
android:textAppearance="@style/TextAppearance.QS.Build"
android:visibility="gone" />
diff --git a/packages/SystemUI/res/layout/qs_panel.xml b/packages/SystemUI/res/layout/qs_panel.xml
index 7cf3d01..4607e5f 100644
--- a/packages/SystemUI/res/layout/qs_panel.xml
+++ b/packages/SystemUI/res/layout/qs_panel.xml
@@ -42,8 +42,6 @@
android:clipToPadding="false"
android:clipChildren="false">
<include layout="@layout/qs_footer_impl" />
- <include layout="@layout/qs_media_divider"
- android:id="@+id/divider"/>
</com.android.systemui.qs.QSPanel>
</com.android.systemui.qs.NonInterceptingScrollView>
diff --git a/packages/SystemUI/res/layout/qs_tile_label.xml b/packages/SystemUI/res/layout/qs_tile_label.xml
index f8812ba..1d93f5d 100644
--- a/packages/SystemUI/res/layout/qs_tile_label.xml
+++ b/packages/SystemUI/res/layout/qs_tile_label.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright (C) 2016 The Android Open Source Project
+ Copyright (C) 2021 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,84 +14,38 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<com.android.systemui.qs.tileimpl.ButtonRelativeLayout
+<com.android.systemui.qs.tileimpl.IgnorableChildLinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clipChildren="false"
android:clipToPadding="false"
- android:paddingTop="12dp">
- <LinearLayout
- android:id="@+id/label_group"
- android:layout_width="match_parent"
+ android:orientation="vertical"
+ android:layout_marginStart="@dimen/qs_label_container_margin"
+ android:layout_marginEnd="0dp"
+ android:layout_gravity="center_vertical | start">
+
+ <TextView
+ android:id="@+id/tile_label"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentTop="true"
- android:gravity="center"
- android:clipChildren="false"
- android:clipToPadding="false"
- android:orientation="horizontal">
- <Space
- android:id="@+id/expand_space"
- android:layout_width="22dp"
- android:layout_height="0dp"
- android:visibility="gone" />
-
- <TextView
- android:id="@+id/tile_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:clickable="false"
- android:padding="0dp"
- android:gravity="center"
- android:ellipsize="marquee"
- android:textAppearance="@style/TextAppearance.QS.TileLabel"/>
-
- <ImageView android:id="@+id/restricted_padlock"
- android:layout_width="@dimen/qs_tile_text_size"
- android:layout_height="match_parent"
- android:paddingBottom="@dimen/qs_tile_text_size"
- android:src="@drawable/ic_info"
- android:layout_marginLeft="@dimen/restricted_padlock_pading"
- android:scaleType="centerInside"
- android:visibility="gone" />
-
- <ImageView
- android:id="@+id/expand_indicator"
- android:layout_marginStart="4dp"
- android:layout_width="18dp"
- android:layout_height="match_parent"
- android:src="@drawable/qs_dual_tile_caret"
- android:tint="?android:attr/textColorPrimary"
- android:visibility="gone" />
- </LinearLayout>
+ android:gravity="start"
+ android:textDirection="locale"
+ android:ellipsize="marquee"
+ android:singleLine="true"
+ android:textAppearance="@style/TextAppearance.QS.TileLabel"/>
<TextView
android:id="@+id/app_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignStart="@id/label_group"
- android:layout_alignEnd="@id/label_group"
- android:layout_below="@id/label_group"
- android:clickable="false"
+ android:gravity="start"
+ android:textDirection="locale"
android:ellipsize="marquee"
android:singleLine="true"
- android:padding="0dp"
android:visibility="gone"
- android:gravity="center"
android:textAppearance="@style/TextAppearance.QS.TileLabel.Secondary"
android:textColor="?android:attr/textColorSecondary"/>
- <View
- android:id="@+id/underline"
- android:layout_width="30dp"
- android:layout_height="1dp"
- android:layout_marginTop="2dp"
- android:layout_alignStart="@id/label_group"
- android:layout_alignEnd="@id/label_group"
- android:layout_below="@id/label_group"
- android:visibility="gone"
- android:alpha="?android:attr/disabledAlpha"
- android:background="?android:attr/colorForeground"/>
-
-</com.android.systemui.qs.tileimpl.ButtonRelativeLayout>
+</com.android.systemui.qs.tileimpl.IgnorableChildLinearLayout>
diff --git a/packages/SystemUI/res/layout/qs_tile_side_icon.xml b/packages/SystemUI/res/layout/qs_tile_side_icon.xml
new file mode 100644
index 0000000..9f9af9d
--- /dev/null
+++ b/packages/SystemUI/res/layout/qs_tile_side_icon.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2021 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/qs_label_container_margin"
+ android:layout_gravity="center_vertical | end"
+>
+ <ImageView
+ android:id="@+id/customDrawable"
+ android:layout_width="wrap_content"
+ android:layout_height="@dimen/qs_icon_size"
+ android:layout_marginEnd="@dimen/qs_drawable_end_margin"
+ android:adjustViewBounds="true"
+ android:scaleType="fitCenter"
+ android:visibility="gone"
+ />
+
+ <ImageView
+ android:id="@+id/chevron"
+ android:layout_width="@dimen/qs_icon_size"
+ android:layout_height="@dimen/qs_icon_size"
+ android:src="@*android:drawable/ic_chevron_end"
+ android:visibility="gone"
+ android:importantForAccessibility="no"
+ />
+</FrameLayout>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_qs_status_icons.xml b/packages/SystemUI/res/layout/quick_qs_status_icons.xml
index d8bb7e6..f0229a6 100644
--- a/packages/SystemUI/res/layout/quick_qs_status_icons.xml
+++ b/packages/SystemUI/res/layout/quick_qs_status_icons.xml
@@ -36,19 +36,16 @@
android:paddingStart="@dimen/status_bar_left_clock_starting_padding"
android:paddingEnd="@dimen/status_bar_left_clock_end_padding"
android:singleLine="true"
- android:textAppearance="@style/TextAppearance.StatusBar.Clock" />
-
- <View
- android:layout_height="match_parent"
- android:layout_width="0dp"
- android:layout_weight="1"
- />
+ android:textAppearance="@style/TextAppearance.QS.Status" />
<include layout="@layout/qs_carrier_group"
android:id="@+id/carrier_group"
- android:layout_width="wrap_content"
+ android:layout_width="0dp"
android:layout_height="match_parent"
+ android:layout_weight="1"
android:minHeight="48dp"
+ android:minWidth="48dp"
+ android:layout_marginStart="8dp"
android:layout_gravity="end|center_vertical"
android:focusable="false"/>
diff --git a/packages/SystemUI/res/layout/quick_settings_security_footer.xml b/packages/SystemUI/res/layout/quick_settings_security_footer.xml
index de65fa0..ce7f827 100644
--- a/packages/SystemUI/res/layout/quick_settings_security_footer.xml
+++ b/packages/SystemUI/res/layout/quick_settings_security_footer.xml
@@ -23,7 +23,7 @@
android:padding="@dimen/qs_footer_padding"
android:gravity="center_vertical"
android:layout_gravity="center_vertical|center_horizontal"
- android:layout_marginVertical="@dimen/qs_security_footer_vertical_margin"
+ android:layout_marginBottom="@dimen/qs_footers_margin_bottom"
android:background="@drawable/qs_security_footer_background"
systemui:singleLineHeight="@dimen/qs_security_footer_single_line_height"
systemui:textViewId="@id/footer_text"
diff --git a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml
index bb54099..d8f0742 100644
--- a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml
+++ b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml
@@ -52,7 +52,6 @@
android:layout_below="@id/quick_qs_status_icons"
android:layout_marginTop="8dp"
android:accessibilityTraversalAfter="@id/quick_qs_status_icons"
- android:accessibilityTraversalBefore="@id/expand_indicator"
android:clipChildren="false"
android:clipToPadding="false"
android:focusable="true"
diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml
index 52995ea..f4cb3b1 100644
--- a/packages/SystemUI/res/layout/status_bar_expanded.xml
+++ b/packages/SystemUI/res/layout/status_bar_expanded.xml
@@ -101,6 +101,8 @@
</com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer>
+ <include layout="@layout/dock_info_bottom_area_overlay" />
+
<include
layout="@layout/keyguard_bottom_area"
android:visibility="gone" />
diff --git a/packages/SystemUI/res/layout/wallet_card_view.xml b/packages/SystemUI/res/layout/wallet_card_view.xml
index 5fd556d..b5a66010 100644
--- a/packages/SystemUI/res/layout/wallet_card_view.xml
+++ b/packages/SystemUI/res/layout/wallet_card_view.xml
@@ -24,6 +24,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginHorizontal="@dimen/card_margin"
+ android:layout_marginBottom="@dimen/card_margin"
android:foreground="?android:attr/selectableItemBackground"
app:cardBackgroundColor="@android:color/transparent"
app:cardElevation="12dp">
@@ -32,16 +33,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
+ android:layout_gravity="center"
android:contentDescription="@null"
android:scaleType="fitXY"/>
- <ImageView
- android:id="@+id/add_card_logo"
- android:layout_width="28dp"
- android:layout_height="28dp"
- android:layout_gravity="center"
- android:drawable="@drawable/ic_qs_plus"
- android:contentDescription="@null"
- android:scaleType="fitCenter"
- android:visibility="gone"/>
</com.android.systemui.wallet.ui.WalletCardView>
</FrameLayout>
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index f17067a..be5cbbb 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobiele warmkol afgeskakel."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobiele warmkol aangeskakel."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Uitsaai van skerm gestaak."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Werkmodus is af."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Werkmodus is aan."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Werkmodus is afgeskakel."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Werkmodus is aangeskakel."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Databespaarder is afgeskakel."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Databespaarder is aangeskakel."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g>-limiet"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> waarskuwing"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Werkprofiel"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Aandbeligting"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Aan by sonsondergang"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Tot sonsopkoms"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Beursie"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Wys alles"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Ontsluit om te betaal"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Gereed"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Stel betaling op"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Ontsluit om te gebruik"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Kon nie jou kaarte kry nie; probeer later weer"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Werkprofiel"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Vliegtuigmodus"</string>
<string name="add_tile" msgid="6239678623873086686">"Voeg teël by"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Gedegradeer na Stil"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Hoër gegradeer"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> Laer gegradeer"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Word altyd boaan jou kennisgewings gewys, selfs wanneer Prioriteitmodus aan is"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Word aan die bokant van gesprekskennisgewings en as \'n profielfoto op sluitskerm gewys"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Word aan die bokant van gesprekskennisgewings en as \'n profielfoto op sluitskerm gewys, verskyn as \'n borrel"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Word aan die bokant van gesprekskennisgewings en as \'n profielfoto op sluitskerm gewys, onderbreek Moenie Steur Nie"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Word aan die bokant van gesprekskennisgewings en as \'n profielfoto op sluitskerm gewys, verskyn as \'n borrel, onderbreek Moenie Steur Nie"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Instellings"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioriteitgesprekke"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioriteit"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> steun nie gesprekskenmerke nie"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Hierdie kennisgewings kan nie gewysig word nie."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Hierdie groep kennisgewings kan nie hier opgestel word nie"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Aan"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Af"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Onbeskikbaar"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigasiebalk"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Uitleg"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Ekstra linksknoppie-tipe"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Stelselnavigasie is opgedateer. Gaan na Instellings toe om veranderinge te maak."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gaan na Instellings toe om stelselnavigasie op te dateer"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Bystandmodus"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Gesprek is as prioriteit gestel"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioriteitgesprekke"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Hierdie gesprekke word boaan jou lys gewys en kan jou altyd bereik wanneer Prioriteitmodus aan is"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profielfoto\'s word op die sluitskerm gewys"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Jy kan hierdie gesprekke maklik in borrels op jou Tuisskerm kry"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Onderbreek Moenie Steur Nie"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Het dit"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Instellings"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Vergrotingvenster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Vergrotingvensterkontroles"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoem in"</string>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index d2ecd78..bae6aa2 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"የተንቀሳቃሽ ስልክ መገናኛ ነጥብ ጠፍቷል።"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"የተንቀሳቃሽ ስልክ መገናኛ ነጥብ በርቷል።"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"ማያ ገጽ መውሰድ ቆሟል።"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"የሥራ ሁነታ ጠፍቷል።"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"የሥራ ሁነታ በርቷል።"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"የሥራ ሁነታ ጠፍቷል።"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"የሥራ ሁነታ በርቷል።"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ውሂብ ቆጣቢ ጠፍቷል።"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ውሂብ ቆጣቢ በርቷል።"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ገደብ"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"የ<xliff:g id="DATA_LIMIT">%s</xliff:g> ማስጠንቀቂያ"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"የሥራ መገለጫ"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"የምሽት ብርሃን"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"ጸሐይ ስትጠልቅ ይበራል"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"ጸሐይ እስክትወጣ ድረስ"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"ሁሉንም አሳይ"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ለመክፈል ይክፈቱ"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"ዝግጁ"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"ክፍያን ያዋቅሩ"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ለማየት ይክፈቱ"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"የእርስዎን ካርዶች ማግኘት ላይ ችግር ነበር፣ እባክዎ ቆይተው እንደገና ይሞክሩ"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"የስራ መገለጫ"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"የአውሮፕላን ሁነታ"</string>
<string name="add_tile" msgid="6239678623873086686">"ሰቅ ያክሉ"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>ሁኔታ:</b> ወደ ዝምታ ዝቅ ተደርጓል"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>ሁኔታ:</b> ክፍተኛ ደረጃ ተሰጥቶታል"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>ሁኔታ:</b> ዝቅተኛ ደረጃ ተሰጥቶታል"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"ቅድሚያ የሚሰጠው ሁነታ በሚበራበት ጊዜም ቢሆን ሁልጊዜ በማሳወቂያዎችዎ አናት ላይ ይታያል"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"በውይይት ማሳወቂያዎች አናት ላይ እና በማያ ገጽ መቆለፊያ ላይ እንደ መገለጫ ምስል ይታያል"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"በውይይት ማሳወቂያዎች አናት ላይ እና በማያ ገጽ መቆለፊያ ላይ እንደ መገለጫ ምስል ይታያል፣ እንደ አረፋ ሆኖ ይታያል"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"በውይይት ማሳወቂያዎች አናት ላይ እና በማያ ገጽ መቆለፊያ ላይ እንደ መገለጫ ምስል ይታያል፣ አትረብሽን ያቋርጣል"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"በውይይት ማሳወቂያዎች አናት ላይ እና በማያ ገጽ መቆለፊያ ላይ እንደ መገለጫ ምስል ይታያል፣ እንደ አረፋ ሆኖ ይታያል፣ አትረብሽን ያቋርጣል"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"ቅንብሮች"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"ቅድሚያ የሚሰጣቸው ውይይቶች"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"ቅድሚያ"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> የውይይት ባህሪያትን አይደግፍም"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"እነዚህ ማሳወቂያዎች ሊሻሻሉ አይችሉም።"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"የማሳወቂያዎች ይህ ቡድን እዚህ ላይ ሊዋቀር አይችልም"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"በርቷል"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ጠፍቷል"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"አይገኝም"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"የአሰሳ አሞሌ"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"አቀማመጥ"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"ተጨማሪ የግራ አዝራር ዓይነት"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"የስርዓት ዳሰሳ ተዘምኗል። ለውጦችን ለማድረግ ወደ ቅንብሮች ይሂዱ።"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"የስርዓት ዳሰሳን ለማዘመን ወደ ቅንብሮች ይሂዱ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ተጠባባቂ"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"ልወጣ ወደ ቅድሚያ ተቀናብሯል"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"ቅድሚያ የሚሰጣቸው ውይይቶች"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"እነዚህ ውይይቶች በዝርዝሮችዎ አናት ላይ የሚታዩ ሲሆን ቅድሚያ የሚሰጠው ሁነታ ሲበራ ሁልጊዜ ሊደርሱዎት ይችላሉ"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"የመገለጫ ሥዕሎች በማያ ገጽ ቆልፉ ላይ ይታያሉ"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"እነዚህን ውይይቶች በመነሻ ማያ ገጽዎ ላይ በአረፋዎች ውስጥ በቀላሉ ማግኘት ይችላሉ"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"አትረብሽን አቋርጥ"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"ገባኝ"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"ቅንብሮች"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"የማጉያ መስኮት"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"የማጉያ መስኮት መቆጣጠሪያዎች"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"አጉላ"</string>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 5ab2dc8..8411398 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"تم إيقاف نقطة اتصال الجوّال."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"تم تفعيل نقطة اتصال الجوّال."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"توقف إرسال الشاشة."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"وضع العمل معطَّل."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"وضع العمل قيد التشغيل."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"تم إيقاف وضع العمل."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"تم تفعيل وضع العمل."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"تم إيقاف توفير البيانات."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"تم تفعيل توفير البيانات."</string>
@@ -418,6 +420,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"قيد <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"تحذير <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"الملف الشخصي للعمل"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"الإضاءة الليلية"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"تفعيل عند غروب الشمس"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"حتى شروق الشمس"</string>
@@ -680,10 +684,12 @@
<string name="wallet_title" msgid="5369767670735827105">"المحفظة"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"عرض الكل"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"فتح القفل للدفع"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"جاهز"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"إعداد طريقة دفع"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"فتح القفل للاستخدام"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"حدثت مشكلة أثناء الحصول على البطاقات، يُرجى إعادة المحاولة لاحقًا."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"الملف الشخصي للعمل"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"وضع الطيران"</string>
<string name="add_tile" msgid="6239678623873086686">"إضافة فئة"</string>
@@ -752,9 +758,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>الحالة:</b> تم خفض الترتيب إلى الوضع صامت"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>الحالة:</b> تمت زيادة الترتيب"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>الحالة:</b> تم خفض الترتيب"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"يتم دائمًا عرض هذه المحادثات في أعلى الإشعارات حتى عندما يكون وضع \"الأولوية\" مفعّلاً."</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"تظهر في أعلى إشعارات المحادثات وكصورة ملف شخصي على شاشة القفل."</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"تظهر في أعلى إشعارات المحادثات وكصورة ملف شخصي على شاشة القفل وتظهر على شكل فقاعة."</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"تظهر في أعلى إشعارات المحادثات وكصورة ملف شخصي على شاشة القفل، وتقاطع ميزة \"عدم الإزعاج\"."</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"تظهر في أعلى إشعارات المحادثات وكصورة ملف شخصي على شاشة القفل وتظهر على شكل فقاعة لمقاطعة ميزة \"عدم الإزعاج\"."</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"الإعدادات"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"المحادثات ذات الأولوية"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"الأولوية"</string>
<string name="no_shortcut" msgid="8257177117568230126">"لا يدعم تطبيق <xliff:g id="APP_NAME">%1$s</xliff:g> ميزات المحادثات."</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"يتعذّر تعديل هذه الإشعارات."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"يتعذّر ضبط مجموعة الإشعارات هذه هنا."</string>
@@ -878,6 +887,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"مفعّل"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"إيقاف"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"غير متوفّر"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"شريط التنقل"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"التنسيق"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"نوع زر اليسار الإضافي"</string>
@@ -1036,14 +1047,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"تم تحديث التنقل داخل النظام. لإجراء التغييرات، يُرجى الانتقال إلى \"الإعدادات\"."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"الانتقال إلى \"الإعدادات\" لتعديل التنقل داخل النظام"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"وضع الاستعداد"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"تم ضبط المحادثة على أنها ذات أولوية"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"المحادثات ذات الأولوية"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"يتم عرض هذه المحادثات في أعلى القائمة ويمكن دائمًا أن يتم عرضها لك عندما يكون وضع \"الأولوية\" مفعّلاً."</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"يتم عرض صور الملفات الشخصية على شاشة القفل."</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"يمكنك بسهولة العثور على هذه المحادثات في فقاعات المحادثات على شاشتك الرئيسية."</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"لا تتقيّد بميزة \"عدم الإزعاج\""</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"حسنًا"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"الإعدادات"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"نافذة التكبير"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"عناصر التحكم في نافذة التكبير"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"تكبير"</string>
@@ -1064,8 +1067,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"نقل إلى أسفل يسار الشاشة"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"نقله إلى الحافة وإخفاؤه"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"نقله إلى خارج الحافة وإظهاره"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"إيقاف/تفعيل"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"أدوات التحكم بالأجهزة"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"إضافة عناصر تحكّم لأجهزتك المتصلة"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"إعداد أدوات التحكم بالجهاز"</string>
@@ -1116,8 +1118,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"إغلاق"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"استئناف التشغيل"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"الإعدادات"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"تشغيل"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"غير نشط، تحقّق من التطبيق."</string>
<string name="controls_error_retryable" msgid="864025882878378470">"حدث خطأ، جارٍ إعادة المحاولة…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"لم يتم العثور عليه."</string>
@@ -1178,5 +1179,5 @@
<string name="accessibility_udfps_disabled_button" msgid="4284034245130239384">"مستشعر بصمات الإصبع غير مفعّل."</string>
<string name="accessibility_authenticate_hint" msgid="798914151813205721">"المصادقة"</string>
<string name="accessibility_enter_hint" msgid="2617864063504824834">"الدخول إلى الجهاز"</string>
- <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"يمكنك استخدام بصمة الإصبع لفتح"</string>
+ <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"يمكنك استخدام بصمة الإصبع للفتح"</string>
</resources>
diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml
index bceb6c9..42dcbc7 100644
--- a/packages/SystemUI/res/values-as/strings.xml
+++ b/packages/SystemUI/res/values-as/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"ম’বাইল হটস্পট অফ কৰা হ’ল।"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"ম’বাইল হটস্পট অন কৰা হ’ল।"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"স্ক্ৰীণ কাষ্টিং বন্ধ কৰা হ’ল।"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"কৰ্মস্থান ম\'ড অফ হৈ আছে।"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"কৰ্মস্থান ম\'ড অন হৈ আছে।"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"কৰ্মস্থান ম\'ড অফ কৰা হ’ল।"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"কৰ্মস্থান ম\'ড অন কৰা হ’ল।"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ডেটা সঞ্চয়কাৰী সুবিধা অফ কৰা হ’ল।"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ডেটা সঞ্চয়কাৰী সুবিধা অন কৰা হ’ল।"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> সীমা"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> সকীয়নি"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"কৰ্মস্থানৰ প্ৰ\'ফাইল"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"ৰাতিৰ পোহৰ"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"সূৰ্যাস্তত অন কৰক"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"সূৰ্যোদয়ৰ লৈকে"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"ৱালেট"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"আটাইবোৰ দেখুৱাওক"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"পৰিশোধ কৰিবলৈ আনলক কৰক"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"সাজু"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"পৰিশোধ ছেট আপ কৰক"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ব্যৱহাৰ কৰিবলৈ আনলক কৰক"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"আপোনাৰ কাৰ্ড লাভ কৰোঁতে এটা সমস্যা হৈছে, অনুগ্ৰহ কৰি পাছত পুনৰ চেষ্টা কৰক"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"কৰ্মস্থানৰ প্ৰ\'ফাইল"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"এয়াৰপ্লেইন ম\'ড"</string>
<string name="add_tile" msgid="6239678623873086686">"টাইল যোগ দিয়ক"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>স্থিতি:</b> নীৰৱলৈ হ্ৰাস কৰা হৈছে"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>স্থিতি:</b> স্থান ওপৰলৈ কৰা হৈছে"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>স্থিতি:</b> স্থান তললৈ কৰা হৈছে"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"সদায় আপোনাৰ জাননীৰ শীৰ্ষত দেখুওৱা হয় আনকি অগ্ৰাধিকাৰ ম’ডটো অন হৈ থাকিলেও"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"ছেটিংসমূহ"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"অগ্ৰাধিকাৰপ্ৰাপ্ত বাৰ্তালাপ"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"অগ্ৰাধিকাৰ"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ বাৰ্তালাপৰ সুবিধাসমূহ সমৰ্থন নকৰে"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"এই জাননীসমূহ সংশোধন কৰিব নোৱাৰি।"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"এই ধৰণৰ জাননীবোৰ ইয়াত কনফিগাৰ কৰিব পৰা নাযায়"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"অন"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"অফ"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"উপলব্ধ নহয়"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"নেভিগেশ্বন দণ্ড"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"লেআউট"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"বাওঁ বুটামৰ অতিৰিক্ত প্ৰকাৰ"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ছিষ্টেম নেভিগেশ্বন আপডে’ট কৰা হ’ল। সলনি কৰিবলৈ ছেটিংসমূহ-লৈ যাওক।"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ছিষ্টেম নেভিগেশ্বন আপডে’ট কৰিবলৈ ছেটিংসমূহ-লৈ যাওক"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ষ্টেণ্ডবাই"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"বাৰ্তালাপসমূহ অগ্ৰাধিকাৰপ্ৰাপ্ত হিচাপে ছেট কৰা হৈছে"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"অগ্ৰাধিকাৰপ্ৰাপ্ত বাৰ্তালাপ"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"এই বাৰ্তালাপসমূহ আপোনাৰ সূচীৰ শীৰ্ষত দেখুওৱা হয় আৰু অগ্ৰাধিকাৰ ম’ডটো অন হৈ থাকিলে আপুনি সদায় এইসমূহ পাব পাৰে"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"লক স্ক্ৰীনত প্ৰ’ফাইল চিত্ৰ দেখুওৱা হয়"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"আপুনি নিজৰ গৃহ স্ক্ৰীনৰ বাবলত সহজে এই বাৰ্তালাপসমূহ বিচাৰি পাব পাৰে"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"অসুবিধা নিদিব সুবিধাটোত ব্যাঘাত জন্মাওক"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"বুজি পালোঁ"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"ছেটিংসমূহ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"বিবৰ্ধন ৱিণ্ড’"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"বিবৰ্ধন ৱিণ্ড’ৰ নিয়ন্ত্ৰণসমূহ"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"জুম ইন কৰক"</string>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index 466d24e..99fd2cb 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobil hotspot deaktivdir."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobil hotspot aktivdir."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Ekran yayımı dayandırıldı."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"İş rejimi deaktivdir."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"İş rejimi aktivdir."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"İş rejimi sönülüdür."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"İş rejimi yanılıdır."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Trafikə qənaət edilmir."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Trafikə qənaət edilir."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> limit"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> xəbərdarlığı"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"İş profili"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Gecə işığı"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Qürubda aktiv ediləcək"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Şəfəq vaxtına qədər"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Pulqabı"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Hamısını göstər"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Ödəmək üçün kiliddən çıxarın"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Hazır"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Ödəniş kartı ayarlayın"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"İstifadə etmək üçün kiliddən çıxarın"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Kartların əldə edilməsində problem oldu, sonra yenidən cəhd edin"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"İş profili"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Təyyarə rejimi"</string>
<string name="add_tile" msgid="6239678623873086686">"Xana əlavə edin"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Səssiz rejimə keçirilib"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Yuxarı sıraya keçirilib"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> Aşağı sıraya keçirilib"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Prioritet rejimi aktiv olsa da, həmişə bildirişlərinizin yuxarı hissəsində göstərilir"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Söhbət bildirişlərinin yuxarısında və kilid ekranında profil şəkli kimi göstərilir"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Söhbət bildirişlərinin yuxarısında və kilid ekranında profil şəkli kimi göstərilir, baloncuq kimi görünür"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Söhbət bildirişlərinin yuxarısında və kilid ekranında profil şəkli kimi göstərilir, Narahat Etməyin rejimini kəsir"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Söhbət bildirişlərinin yuxarısında və kilid ekranında profil şəkli kimi göstərilir, baloncuq kimi görünür, Narahat Etməyin rejimini kəsir"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Ayarlar"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Önəmli söhbətlər"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritet"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> söhbət funksiyalarını dəstəkləmir"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirişlər dəyişdirilə bilməz."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Bu bildiriş qrupunu burada konfiqurasiya etmək olmaz"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Aktiv"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Deaktiv"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Əlçatan deyil"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Naviqasiya paneli"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Tərtibat"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Əlavə sol düymə növü"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistem naviqasiyası yeniləndi. Dəyişiklik etmək üçün Ayarlara daxil olun."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Sistem naviqasiyasını yeniləmək üçün Ayarlara keçin"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Gözləmə rejimi"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Söhbət prioritet olaraq ayarlanıb"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Önəmli söhbətlər"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Bu söhbətlər siyahınızın yuxarı hissəsində göstərilir və Prioritet rejimi aktiv olduqda hər zaman sizə çata bilər"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profil şəkilləri kilid ekranında göstərilir"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Bu danışıqları Əsas ekranda yumrucuqlarda asanlıqla tapa bilərsiniz"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Narahat Etməyin rejimində göstərilsin"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Anladım"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Ayarlar"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Böyütmə Pəncərəsi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Böyütmə Pəncərəsi Kontrolları"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Yaxınlaşdırın"</string>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index f1303ce..b09df03 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobilni hotspot je isključen."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobilni hotspot je uključen."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Prebacivanje ekrana je zaustavljeno."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Režim rada je isključen."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Režim rada je uključen."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Režim rada je isključen."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Režim rada je uključen."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Ušteda podataka je isključena."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Ušteda podataka je uključena."</string>
@@ -412,6 +414,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Ograničenje od <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Upozorenje za <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Poslovni profil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Noćno svetlo"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Uključuje se po zalasku sunca"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Do izlaska sunca"</string>
@@ -671,10 +675,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Novčanik"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Prikaži sve"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Otključaj radi plaćanja"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Spremno"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Podesite plaćanje"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Otključaj radi korišćenja"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Došlo je do problema pri preuzimanju kartica. Probajte ponovo kasnije"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Poslovni profil"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Režim rada u avionu"</string>
<string name="add_tile" msgid="6239678623873086686">"Dodaj pločicu"</string>
@@ -743,9 +749,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Degradirano u Nečujno"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Rangirano više"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> Rangirano niže"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Uvek se prikazuje u vrhu obaveštenja čak i kada je Prioritetni režim uključen"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Prikazuje se u vrhu obaveštenja o konverzacijama i kao slika profila na zaključanom ekranu"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Prikazuje se u vrhu obaveštenja o konverzacijama i kao slika profila na zaključanom ekranu, pojavljuje se kao oblačić"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Prikazuje se u vrhu obaveštenja o konverzacijama i kao slika profila na zaključanom ekranu, prekida režim Ne uznemiravaj"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Prikazuje se u vrhu obaveštenja o konverzacijama i kao slika profila na zaključanom ekranu, pojavljuje se kao oblačić, prekida režim Ne uznemiravaj"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Podešavanja"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioritetne konverzacije"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritet"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ne podržava funkcije konverzacije"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Ova obaveštenja ne mogu da se menjaju."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Ova grupa obaveštenja ne može da se konfiguriše ovde"</string>
@@ -863,6 +872,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Uključeno"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Isključeno"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Nedostupno"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Traka za navigaciju"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Raspored"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Dodatni tip levog dugmeta"</string>
@@ -1021,14 +1032,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigacija sistema je ažurirana. Da biste uneli izmene, idite u Podešavanja."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Idite u Podešavanja da biste ažurirali navigaciju sistema"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje pripravnosti"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Konverzacija je podešena na prioritetnu"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioritetne konverzacije"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Ove konverzacije se prikazuju u vrhu liste i uvek mogu da dopru do vas kada je Prioritetni režim uključen"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Slike profila se prikazuju na zaključanom ekranu"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Lako možete da pronađete ove konverzacije u oblačićima na početnom ekranu"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Ometa podešavanje Ne uznemiravaj"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Važi"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Podešavanja"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Prozor za uvećanje"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrole prozora za uvećanje"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Uvećajte"</string>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index b86dad1..b6a86c7 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Мабільны хот-спот выключаецца."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Хот-спот уключаны."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Трансляцыя экрана спынена."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Рэжым працы выкл."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Рэжым працы ўкл."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Рэжым працы выключаны."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Рэжым працы ўключаны."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Эканомія трафіка адключана."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Эканомія трафіка ўключана."</string>
@@ -414,6 +416,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Ліміт <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Папярэджанне: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Працоўны профіль"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Начная падсветка"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Уключаць увечары"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Да ўсходу сонца"</string>
@@ -674,10 +678,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Кашалёк"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Паказаць усе"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Разблакіраваць для аплаты"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Гатова"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Наладзіць спосаб аплаты"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Разблакіраваць для выкарыстання"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Узнікла праблема з загрузкай вашых карт. Паўтарыце спробу пазней"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Працоўны профіль"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Рэжым палёту"</string>
<string name="add_tile" msgid="6239678623873086686">"Дадаць плітку"</string>
@@ -746,9 +752,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Стан:</b> Пераведзена ў рэжым \"Без гуку\""</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Стан:</b> Ацэнена як важнае"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Стан:</b> Ацэнена як няважнае"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Заўсёды паказваюцца над вашымі апавяшчэннямі, нават калі ўключаны прыярытэтны рэжым"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"З\'яўляецца ўверсе раздзела размоў і паказвае на экране блакіроўкі відарыс профілю"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"З\'яўляецца ўверсе раздзела размоў як усплывальнае апавяшчэнне, якое паказвае на экране блакіроўкі відарыс профілю"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"З\'яўляецца ўверсе раздзела размоў, перарывае рэжым \"Не турбаваць\" і паказвае на экране блакіроўкі відарыс профілю"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"З\'яўляецца ўверсе раздзела размоў як усплывальнае апавяшчэнне, якое перарывае рэжым \"Не турбаваць\" і паказвае на экране блакіроўкі відарыс профілю"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Налады"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Прыярытэтныя размовы"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Прыярытэт"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не падтрымлівае функцыі размовы"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Гэтыя апавяшчэнні нельга змяніць."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Тут канфігурыраваць гэту групу апавяшчэнняў забаронена"</string>
@@ -868,6 +877,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Уключана"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Выключана"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Недаступна"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Панэль навігацыі"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Раскладка"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Дадатковы тып кнопкі \"ўлева\""</string>
@@ -1026,14 +1037,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навігацыя ў сістэме абноўлена. Каб унесці змяненні, перайдзіце ў Налады."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Перайдзіце ў Налады, каб абнавіць параметры навігацыі ў сістэме"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Рэжым чакання"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Размова пазначана як прыярытэтная"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Прыярытэтныя размовы"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Гэтыя размовы паказваюцца ўверсе вашага спіса, і вы можаце заўсёды бачыць іх, калі ўключаны прыярытэтны рэжым"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Відарысы профілю паказваюцца на экране блакіроўкі"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Вы можаце лёгка знайсці гэтыя размовы ва ўсплывальных апавяшчэннях на галоўным экране"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Паказваюцца ў рэжыме \"Не турбаваць\""</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Зразумела"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Налады"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Акно павелічэння"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Налады акна павелічэння"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Павялічыць маштаб"</string>
@@ -1054,8 +1057,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Перамясціць правей і ніжэй"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Перамясціць на край і схаваць"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Перамясціць за край і паказаць"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"уключыць/выключыць"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Элементы кіравання прыладай"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Дадайце элементы кіравання для падключаных прылад"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Наладзіць элементы кіравання прыладай"</string>
@@ -1104,8 +1106,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Адхіліць"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Узнавіць"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Налады"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Прайграць"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Неактыўна, праверце праграму"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Памылка, паўторная спроба…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Не знойдзена"</string>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index e857489..7ce1609 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Мобилната точка за достъп се изключи."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Мобилната точка за достъп се включи."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Предаването на съдържанието от екрана спря."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Работният режим е изключен."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Работният режим е включен."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Работният режим е изключен."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Работният режим е включен."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Функцията „Икономия на данни“ е изключена."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Функцията „Икономия на данни“ е включена."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Ограничение от <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Предупреждение: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Служебен потребителски профил"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Нощно осветление"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Ще се вкл. по залез"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"До изгрев"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Портфейл"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Показване на всички"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Отключване с цел плащане"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Готово"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Настройване на плащане"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Отключване с цел използване"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"При извличането на картите ви възникна проблем. Моля, опитайте отново по-късно"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Потребителски профил в Work"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Самолетен режим"</string>
<string name="add_tile" msgid="6239678623873086686">"Добавяне на плочка"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Състояние:</b> Понижено до беззвучно"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Състояние:</b> Класирано по-високо"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Състояние:</b> Класирано по-ниско"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Винаги се показва най-горе в списъка с известия дори когато режимът за приоритетни разговори е включен"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Показва се в горната част на известията за разговори и като снимка на потребителския профил на заключения екран"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Показва се в горната част на известията за разговори и като снимка на потребителския профил на заключения екран, изглежда като балонче"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Показва се в горната част на известията за разговори и като снимка на потребителския профил на заключения екран, прекъсва режима „Не безпокойте“"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Показва се в горната част на известията за разговори и като снимка на потребителския профил на заключения екран, изглежда като балонче, прекъсва режима „Не безпокойте“"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Настройки"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Разговори с приоритет"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Приоритет"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не поддържа функциите за разговор"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Тези известия не могат да бъдат променяни."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Тази група от известия не може да бъде конфигурирана тук"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Вкл."</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Изкл."</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Не е налице"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Лента за навигация"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Оформление"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Тип на допълнителния ляв бутон"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Режимът за навигиране в системата е актуализиран. За да извършите промени, отворете настройките."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Отворете настройките, за да актуализирате режима за навигиране в системата"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Режим на готовност"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Разговорът е зададен като приоритетен"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Разговори с приоритет"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Тези разговори се показват най-горе в списъка ви и винаги ще стигат до вас, когато приоритетният режим е включен"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Снимките на потребителските профили се показват на заключения екран"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Лесно можете да намерите тези разговори под формата на балончета на началния екран"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Прекъсване на режима „Не безпокойте“"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Разбрах"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Настройки"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Прозорец за ниво на мащаба"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Контроли за прозореца за ниво на мащаба"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Увеличаване на мащаба"</string>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index 8f9953b..7d73469 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"মোবাইল হটস্পট বন্ধ হয়েছে।"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"মোবাইল হটস্পট চালু হয়েছে।"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"স্ক্রিন কাস্ট করা থেমেছে।"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"কাজের মোড বন্ধ আছে"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"কাজের মোড চালু আছে"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"কাজের মোড বন্ধ আছে।"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"কাজের মোড চালু আছে"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ডেটা সেভার বন্ধ আছে।"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ডেটা সেভার চালু আছে।"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"সীমা <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> সতর্কতা"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"কাজের প্রোফাইল"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"নাইট লাইট"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"সূর্যাস্তে চালু হবে"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"সূর্যোদয় পর্যন্ত"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"সবকটি দেখুন"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"পেমেন্ট করতে ডিভাইস আনলক করুন"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"রেডি"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"পেমেন্ট সেট আপ করুন"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ব্যবহার করতে আনলক করুন"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"আপনার কার্ড সংক্রান্ত তথ্য পেতে সমস্যা হয়েছে, পরে আবার চেষ্টা করুন"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"কাজের প্রোফাইল"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"বিমান মোড"</string>
<string name="add_tile" msgid="6239678623873086686">"টাইল যোগ করুন"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>স্ট্যাটাস:</b> লেভেল কমিয়ে সাইলেন্ করা হয়েছে"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>স্ট্যাটাস:</b> র্যাঙ্ক বেড়ে গেছে"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>স্ট্যাটাস:</b> র্যাঙ্ক কমে গেছে"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"এমনকি \'অগ্রাধিকার\' মোড চালু থাকলেও এটি সব সময় আপনার বিজ্ঞপ্তির উপরে দেখা যায়"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"সেটিংস"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"গুরুত্বপূর্ণ কথোপকথন"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"অগ্রাধিকার"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>-এ কথোপকথন ফিচার কাজ করে না"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"এই বিজ্ঞপ্তিগুলি পরিবর্তন করা যাবে না।"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"এই সমস্ত বিজ্ঞপ্তিকে এখানে কনফিগার করা যাবে না"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"চালু আছে"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"বন্ধ আছে"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"উপলভ্য নয়"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"নেভিগেশন বার"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"লেআউট"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"অতিরিক্ত বাঁদিকের বোতামের ধরণ"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"সিস্টেম নেভিগেশন আপডেট হয়েছে। পরিবর্তন করার জন্য সেটিংসে যান।"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"সিস্টেম নেভিগেশন আপডেট করতে সেটিংসে যান"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"স্ট্যান্ডবাই"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"কথোপকথনকে \'গুরুত্বপূর্ণ\' হিসেবে সেট করা হয়েছে"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"গুরুত্বপূর্ণ কথোপকথন"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"এই কথোপকথনগুলি আপনার তালিকার একেবারে উপরে দেখা যায় এবং \'অগ্রাধিকার\' মোড চালু থাকলে সব সময় আপনি সেগুলি পড়তে পারেন"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"প্রোফাইল ছবি লক স্ক্রিনে দেখা যায়"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"আপনার হোম স্ক্রিনের বাবলে সহজেই এই গুরুত্বপূর্ণ কথোপকথনগুলি দেখতে পাবেন"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"বিরক্ত করবে না মোডে ব্যাঘাত ঘটাতে পারে"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"বুঝেছি"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"সেটিংস"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"উইন্ডো বড় করে দেখা"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"উইন্ডো কন্ট্রোল বড় করে দেখা"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"বড় করুন"</string>
@@ -1044,8 +1051,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"নিচে ডান দিকে সরান"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"প্রান্তে যান ও আড়াল করুন"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"প্রান্ত থেকে সরান এবং দেখুন"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"টগল করুন"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"ডিভাইস কন্ট্রোল"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"আপনার কানেক্ট করা ডিভাইসের জন্য কন্ট্রোল যোগ করুন"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"ডিভাইস কন্ট্রোল সেট-আপ করুন"</string>
@@ -1092,8 +1098,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"খারিজ করুন"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"আবার চালু করুন"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"সেটিংস"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"চালান"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"বন্ধ আছে, অ্যাপ চেক করুন"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"সমস্যা, আবার চেষ্টা করা হচ্ছে…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"খুঁজে পাওয়া যায়নি"</string>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index 482c8ad..ebdf654 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobilna pristupna tačka je isključena."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobilna pristupna tačka je uključena."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Prebacivanje ekrana je zaustavljeno."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Poslovni režim isključen."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Poslovni režim uključen."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Poslovni režim je isključen."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Poslovni režim je uključen."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Ušteda podataka je isključena."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Ušteda podataka je uključena."</string>
@@ -412,6 +414,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Ograničenje <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Upozorenje <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Radni profil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Noćno svjetlo"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Uključuje se u sumrak"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Do svitanja"</string>
@@ -671,10 +675,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Novčanik"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Prikaži sve"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Otključaj za plaćanje"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Spremno"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Postavite način plaćanja"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Otključajte da koristite"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Došlo je do problema prilikom preuzimanja vaših kartica. Pokušajte ponovo kasnije"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profil za posao"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Način rada u avionu"</string>
<string name="add_tile" msgid="6239678623873086686">"Dodaj pločicu"</string>
@@ -743,9 +749,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> je unazađen u Nečujno"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> je rangiran više"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> je rangiran niže"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Uvijek se prikazuje na vrhu obavještenja, čak i kada je uključen način rada Prioriteti"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Prikazuje se na vrhu obavještenja u razgovorima i kao slika profila na zaključanom ekranu"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Prikazuje se na vrhu obavještenja u razgovorima i kao slika profila na zaključanom ekranu, izgleda kao oblačić"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Prikazuje se na vrhu obavještenja u razgovorima i kao slika profila na zaključanom ekranu, prekida funkciju Ne ometaj"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Prikazuje se na vrhu obavještenja u razgovorima i kao slika profila na zaključanom ekranu, izgleda kao oblačić, prekida funkciju Ne ometaj"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Postavke"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioritetni razgovori"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritetni"</string>
<string name="no_shortcut" msgid="8257177117568230126">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> ne podržava funkcije razgovora"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Ta obavještenja se ne mogu izmijeniti."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Ovu grupu obavještenja nije moguće konfigurirati ovdje"</string>
@@ -863,6 +872,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Uključeno"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Isključeno"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Nedostupno"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigaciona traka"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Raspored"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Vrsta dodatnog dugmeta lijevo"</string>
@@ -1021,14 +1032,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigiranje sistemom je ažurirano. Da izvršite promjene, idite u Postavke."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Idite u Postavke da ažurirate navigiranje sistemom"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje mirovanja"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Razgovor je postavljen kao prioritetan"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioritetni razgovori"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Ti razgovori se prikazuju na vrhu liste i uvijek ih možete vidjeti kada je uključen način rada Prioriteti"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Slike profila se prikazuju na zaključanom ekranu"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"S lakoćom možete pronaći te razgovore u oblačićima na Početnom ekranu"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Prekida način rada Ne ometaj"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Razumijem"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Postavke"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Prozor za uvećavanje"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrole prozora za uvećavanje"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Uvećavanje"</string>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index ac86cfbb..95d3b31 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"El punt d\'accés mòbil està desactivat."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"El punt d\'accés mòbil està activat."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"S\'ha aturat l\'emissió de la pantalla."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"El mode de feina està desactivat."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"El mode de feina està activat."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"S\'ha desactivat el mode de feina."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"S\'ha activat el mode de feina."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"S\'ha desactivat l\'Economitzador de dades."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"S\'ha activat l\'Economitzador de dades."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Límit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Advertiment: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Perfil de treball"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Llum nocturna"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Al vespre"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Fins a l\'alba"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Mostra-ho tot"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Desbloqueja per pagar"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Preparat"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configura un pagament"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Desbloqueja per utilitzar"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Hi ha hagut un problema en obtenir les teves targetes; torna-ho a provar més tard"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Perfil de treball"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Mode d\'avió"</string>
<string name="add_tile" msgid="6239678623873086686">"Afegeix un mosaic"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Estat</b>: s\'ha disminuït a Silenci"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Estat</b>: s\'ha classificat amb un nivell superior"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Estat</b>: s\'ha classificat amb un nivell inferior"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Mostra sempre a la part superior de la llista de notificacions, fins i tot quan el mode Prioritat està activat"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Es mostra a la part superior de les notificacions de les converses i com a foto de perfil a la pantalla de bloqueig"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Es mostra a la part superior de les notificacions de les converses i com a foto de perfil a la pantalla de bloqueig, apareix com una bombolla"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Es mostra a la part superior de les notificacions de les converses i com a foto de perfil a la pantalla de bloqueig, interromp el mode No molestis"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Es mostra a la part superior de les notificacions de les converses i com a foto de perfil a la pantalla de bloqueig, apareix com una bombolla, interromp el mode No molestis"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Configuració"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Converses prioritàries"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritat"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> no admet les funcions de converses"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Aquestes notificacions no es poden modificar."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Aquest grup de notificacions no es pot configurar aquí"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Activat"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Desactivat"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"No disponible"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Barra de navegació"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Disposició"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Tipus de botó addicional de l\'esquerra"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"S\'ha actualitzat el sistema de navegació. Per fer canvis, ves a Configuració."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ves a Configuració per actualitzar el sistema de navegació"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"La conversa s\'ha definit com a prioritària"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Converses prioritàries"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Aquestes converses es mostren a la part superior de la llista i les pots rebre sempre amb el mode Prioritat activat"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Les fotos de perfil es mostren a la pantalla de bloqueig"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Pots trobar fàcilment aquestes converses a les bombolles de la pantalla d\'inici"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interromp el mode No molestis"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Entesos"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Configuració"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Finestra d\'ampliació"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Finestra de controls d\'ampliació"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Amplia"</string>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index bf969a1..88e5cf4 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobile hotspot je vypnutý."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobile hotspot je zapnutý."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Odesílání obrazovky zastaveno."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Pracovní režim vypnutý"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Pracovní režim zapnutý"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Pracovní režim je vypnutý."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Pracovní režim je zapnutý."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Spořič dat byl vypnut."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Spořič dat byl zapnut."</string>
@@ -414,6 +416,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Upozornění při <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Pracovní profil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Noční režim"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Při soumraku"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Do svítání"</string>
@@ -561,7 +565,7 @@
<string name="monitoring_button_view_controls" msgid="8316440345340701117">"Zobrazit ovládací prvky"</string>
<string name="monitoring_description_named_management" msgid="505833016545056036">"Toto zařízení patří organizaci <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g>.\n\nVáš administrátor IT může sledovat a spravovat nastavení, firemní přístup, aplikace, data přidružená k tomuto zařízení a jeho polohu.\n\nDalší informace vám poskytne váš administrátor IT."</string>
<string name="monitoring_financed_description_named_management" msgid="6108439201399938668">"<xliff:g id="ORGANIZATION_NAME_0">%1$s</xliff:g> má přístup k datům spojeným s tímto zařízením, může měnit jeho nastavení a spravovat aplikace.\n\nPokud máte nějaké otázky, obraťte se na organizaci <xliff:g id="ORGANIZATION_NAME_1">%2$s</xliff:g>."</string>
- <string name="monitoring_description_management" msgid="4308879039175729014">"Toto zařízení patří vaší organizaci\n\nVáš administrátor IT může sledovat a spravovat nastavení, firemní přístup, aplikace, data přidružená k tomuto zařízení a jeho polohu.\n\nDalší informace vám poskytne váš administrátor IT."</string>
+ <string name="monitoring_description_management" msgid="4308879039175729014">"Toto zařízení patří vaší organizaci.\n\nVáš administrátor IT může sledovat a spravovat nastavení, firemní přístup, aplikace, data přidružená k tomuto zařízení a jeho polohu.\n\nDalší informace vám poskytne administrátor IT."</string>
<string name="monitoring_description_management_ca_certificate" msgid="7785013130658110130">"Organizace do tohoto zařízení nainstalovala certifikační autoritu. Zabezpečený síťový provoz může být sledován nebo upravován."</string>
<string name="monitoring_description_managed_profile_ca_certificate" msgid="7904323416598435647">"Organizace do vašeho pracovního profilu nainstalovala certifikační autoritu. Zabezpečený síťový provoz může být sledován nebo upravován."</string>
<string name="monitoring_description_ca_certificate" msgid="448923057059097497">"V zařízení je nainstalována certifikační autorita. Zabezpečený síťový provoz může být sledován nebo upravován."</string>
@@ -674,10 +678,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Peněženka"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Zobrazit vše"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Odemknout a zaplatit"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Připraveno"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Nastavit platbu"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Odemknout a použít"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Při načítání karet došlo k problému, zkuste to později"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Pracovní profil"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Režim Letadlo"</string>
<string name="add_tile" msgid="6239678623873086686">"Přidat dlaždici"</string>
@@ -746,9 +752,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Stav:</b> priorita snížena na Tiché"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Stav:</b> zařazeno výše"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Stav:</b> zařazeno níže"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Vždy se zobrazuje na začátku vašich oznámení (i když je zapnutý prioritní režim)"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Zobrazuje se v horní části oznámení konverzace a jako profilový obrázek na obrazovce uzamčení"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Zobrazuje se v horní části oznámení konverzace a jako profilový obrázek na obrazovce uzamčení, má podobu bubliny"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Zobrazuje se v horní části oznámení konverzace a jako profilový obrázek na obrazovce uzamčení, deaktivuje režim Nerušit"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Zobrazuje se v horní části oznámení konverzace a jako profilový obrázek na obrazovce uzamčení, má podobu bubliny a deaktivuje režim Nerušit"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Nastavení"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioritní konverzace"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priorita"</string>
<string name="no_shortcut" msgid="8257177117568230126">"Aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> funkce konverzace nepodporuje"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Tato oznámení nelze upravit."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Tuto skupinu oznámení tady nelze nakonfigurovat"</string>
@@ -868,6 +877,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Zapnuto"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Vypnuto"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Nedostupné"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigační panel"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Rozvržení"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Zvláštní typ tlačítka vlevo"</string>
@@ -1026,14 +1037,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systémová navigace byla aktualizována. Chcete-li provést změny, přejděte do Nastavení."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Přejděte do Nastavení a aktualizujte systémovou navigaci"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Pohotovostní režim"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Konverzace byla nastavena jako prioritní"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioritní konverzace"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Tyto konverzace se zařazují na začátek seznamu, a když je zapnutý prioritní režim, mohou se vám vždy zobrazit"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Na obrazovce uzamčení se zobrazují profilové obrázky"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Tyto konverzace snadno najdete v bublinách na ploše"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Přerušit režim Nerušit"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Rozumím"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Nastavení"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Zvětšovací okno"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ovládací prvky zvětšovacího okna"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Přiblížit"</string>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index abcb89e..4c156b9 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobilhotspot er slået fra."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobilhotspot er slået til."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Casting af din skærm er stoppet."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Arbejdstilstand er slået fra."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Arbejdstilstand er slået til."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Arbejdstilstand er slået fra."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Arbejdstilstand er slået til."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Datasparefunktionen er slået fra."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Datasparefunktionen er aktiveret."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Grænse: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Advarsel ved <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Arbejdsprofil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Nattelys"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Tænd ved solnedgang"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Indtil solopgang"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Vis alle"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Lås op for at betale"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Klar"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Konfigurer betalingsmetode"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Lås op for at bruge"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Dine kort kunne ikke hentes. Prøv igen senere."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Arbejdsprofil"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Flytilstand"</string>
<string name="add_tile" msgid="6239678623873086686">"Tilføj et felt"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Angivet som Lydløs"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Rangeret højere"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> Placeret lavere"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Vises altid øverst i dine notifikationer – også når tilstanden Prioritet er aktiveret"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Vises øverst i samtalenotifikationer og som et profilbillede på låseskærmen"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Vises øverst i samtalenotifikationer og som et profilbillede på låseskærmen. Vises som en boble"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Vises øverst i samtalenotifikationer og som et profilbillede på låseskærmen. Afbryder Forstyr ikke"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Vises øverst i samtalenotifikationer og som et profilbillede på låseskærmen. Vises som en boble, der afbryder Forstyr ikke"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Indstillinger"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioriterede samtaler"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritet"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> understøtter ikke samtalefunktioner"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Disse notifikationer kan ikke redigeres."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Du kan ikke konfigurere denne gruppe notifikationer her"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Til"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Fra"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Ikke tilgængelig"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigationslinje"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Ekstra venstre knaptype"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemnavigationen blev opdateret. Gå til Indstillinger for at foretage ændringer."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gå til Indstillinger for at opdatere systemnavigationen"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Samtalen er angivet som prioriteret"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioriterede samtaler"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Disse samtaler vises øverst på din liste og kan altid ses af dig, når tilstanden Prioritet er aktiveret"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profilbilleder vises på låseskærmen"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Du kan nemt finde disse samtaler i bobler på din startskærm"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Afbryd Forstyr ikke"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Indstillinger"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Vindue med forstørrelse"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Vindue med forstørrelsesstyring"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom ind"</string>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index 2bc8a03..fb3d9a1 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Der mobile Hotspot ist deaktiviert."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Der mobile Hotspot ist aktiviert."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Die Bildschirmübertragung wurde angehalten."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Arbeitsmodus aus."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Arbeitsmodus an."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Arbeitsmodus deaktiviert."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Arbeitsmodus aktiviert."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Der Datensparmodus ist deaktiviert."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Der Datensparmodus ist aktiviert."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> Datenlimit"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Warnung für <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Arbeitsprofil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Nachtlicht"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"An bei Sonnenuntergang"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Bis Sonnenaufgang"</string>
@@ -642,9 +646,9 @@
<string name="volume_stream_content_description_vibrate_a11y" msgid="2742330052979397471">"%1$s. Zum Aktivieren der Vibration tippen."</string>
<string name="volume_stream_content_description_mute_a11y" msgid="5743548478357238156">"%1$s. Zum Stummschalten tippen."</string>
<string name="volume_ringer_change" msgid="3574969197796055532">"Zum Ändern des Klingeltonmodus tippen"</string>
- <string name="volume_ringer_hint_mute" msgid="4263821214125126614">"stummschalten"</string>
- <string name="volume_ringer_hint_unmute" msgid="6119086890306456976">"Stummschaltung aufheben"</string>
- <string name="volume_ringer_hint_vibrate" msgid="6211609047099337509">"vibrieren"</string>
+ <string name="volume_ringer_hint_mute" msgid="4263821214125126614">"Stummschalten"</string>
+ <string name="volume_ringer_hint_unmute" msgid="6119086890306456976">"Aufheben der Stummschaltung"</string>
+ <string name="volume_ringer_hint_vibrate" msgid="6211609047099337509">"Vibrieren lassen"</string>
<string name="volume_dialog_title" msgid="6502703403483577940">"Lautstärkeregler von %s"</string>
<string name="volume_dialog_ringer_guidance_ring" msgid="9143194270463146858">"Gerät klingelt bei Anrufen und Benachrichtigungen (<xliff:g id="VOLUME_LEVEL">%1$s</xliff:g>)"</string>
<string name="output_title" msgid="3938776561655668350">"Medienausgabe"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Geldbörse"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Alle anzeigen"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Zum Bezahlen entsperren"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Bereit"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Zahlungsmethode einrichten"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Zum Verwenden entsperren"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Beim Abrufen deiner Karten ist ein Fehler aufgetreten – bitte versuch es später noch einmal"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Arbeitsprofil"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Flugmodus"</string>
<string name="add_tile" msgid="6239678623873086686">"Kachel hinzufügen"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status</b>: auf „Lautlos“ herabgestuft"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status</b>: höher eingestuft"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status</b>: niedriger eingestuft"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Werden in deinen Benachrichtigungen immer oben angezeigt, auch wenn der Prioritätsmodus aktiviert ist"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Einstellungen"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Vorrangige Unterhaltungen"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priorität"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> unterstützt keine Funktionen für Unterhaltungen"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Diese Benachrichtigungen können nicht geändert werden."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Die Benachrichtigungsgruppe kann hier nicht konfiguriert werden"</string>
@@ -849,7 +862,7 @@
<string name="battery" msgid="769686279459897127">"Akku"</string>
<string name="clock" msgid="8978017607326790204">"Uhr"</string>
<string name="headset" msgid="4485892374984466437">"Headset"</string>
- <string name="accessibility_long_click_tile" msgid="210472753156768705">"Einstellungen öffnen"</string>
+ <string name="accessibility_long_click_tile" msgid="210472753156768705">"Öffnen der Einstellungen"</string>
<string name="accessibility_status_bar_headphones" msgid="1304082414912647414">"Mit Kopfhörer verbunden"</string>
<string name="accessibility_status_bar_headset" msgid="2699275863720926104">"Mit Headset verbunden"</string>
<string name="data_saver" msgid="3484013368530820763">"Datensparmodus"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"An"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Aus"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Nicht verfügbar"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigationsleiste"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Zusätzlicher linker Schaltflächentyp"</string>
@@ -903,8 +918,8 @@
</string-array>
<string name="tuner_low_priority" msgid="8412666814123009820">"Symbole für Benachrichtigungen mit einer niedrigen Priorität anzeigen"</string>
<string name="other" msgid="429768510980739978">"Sonstiges"</string>
- <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"die Kachel zu entfernen"</string>
- <string name="accessibility_qs_edit_tile_add_action" msgid="5051211910345301833">"die Kachel am Ende hinzuzufügen"</string>
+ <string name="accessibility_qs_edit_remove_tile_action" msgid="775511891457193480">"Entfernen der Kachel"</string>
+ <string name="accessibility_qs_edit_tile_add_action" msgid="5051211910345301833">"Hinzufügen der Kachel am Ende"</string>
<string name="accessibility_qs_edit_tile_start_move" msgid="2009373939914517817">"Kachel verschieben"</string>
<string name="accessibility_qs_edit_tile_start_add" msgid="7560798153975555772">"Kachel hinzufügen"</string>
<string name="accessibility_qs_edit_tile_move_to_position" msgid="5198161544045930556">"Auf Position <xliff:g id="POSITION">%1$d</xliff:g> verschieben"</string>
@@ -919,7 +934,7 @@
<string name="accessibility_quick_settings_collapse" msgid="4674876336725041982">"Schnelleinstellungen schließen."</string>
<string name="accessibility_quick_settings_alarm_set" msgid="7237918261045099853">"Weckruf eingerichtet."</string>
<string name="accessibility_quick_settings_user" msgid="505821942882668619">"Angemeldet als <xliff:g id="ID_1">%s</xliff:g>"</string>
- <string name="accessibility_quick_settings_choose_user_action" msgid="4554388498186576087">"Nutzer auszuwählen"</string>
+ <string name="accessibility_quick_settings_choose_user_action" msgid="4554388498186576087">"Auswählen des Nutzers"</string>
<string name="data_connection_no_internet" msgid="691058178914184544">"Kein Internet"</string>
<string name="accessibility_quick_settings_open_details" msgid="4879279912389052142">"Details öffnen."</string>
<string name="accessibility_quick_settings_not_available" msgid="6860875849497473854">"Aus diesem Grund nicht verfügbar: <xliff:g id="REASON">%s</xliff:g>"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemsteuerungseinstellungen wurden angepasst. Änderungen kannst du in den Einstellungen vornehmen."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gehe zu den Einstellungen, um die Systemsteuerung anzupassen"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Unterhaltung als vorrangig eingestuft"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Vorrangige Unterhaltungen"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Unterhaltungen, bei denen der Prioritätsmodus an ist, werden auf der Liste oben angezeigt und kommen immer bei dir an"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profilbilder werden auf dem Sperrbildschirm angezeigt"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Diese Unterhaltungen kannst du in Bubbles auf deinem Startbildschirm sehen"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"„Bitte nicht stören“ unterbrechen"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Einstellungen"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Vergrößerungsfenster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Einstellungen für Vergrößerungsfenster"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Heranzoomen"</string>
@@ -1044,8 +1051,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Nach unten rechts verschieben"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"An den Rand verschieben und verbergen"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Vom Rand verschieben und anzeigen"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"Wechseln"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Gerätesteuerung"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Steuerelemente für verbundene Geräte hinzufügen"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Gerätesteuerung einrichten"</string>
@@ -1059,8 +1065,8 @@
<string name="accessibility_control_favorite" msgid="8694362691985545985">"Zu Favoriten hinzugefügt"</string>
<string name="accessibility_control_favorite_position" msgid="54220258048929221">"Zu Favoriten hinzugefügt, Position <xliff:g id="NUMBER">%d</xliff:g>"</string>
<string name="accessibility_control_not_favorite" msgid="1291760269563092359">"Aus Favoriten entfernt"</string>
- <string name="accessibility_control_change_favorite" msgid="2943178027582253261">"Zum Hinzufügen zu Favoriten"</string>
- <string name="accessibility_control_change_unfavorite" msgid="6997408061750740327">"Zum Entfernen aus Favoriten"</string>
+ <string name="accessibility_control_change_favorite" msgid="2943178027582253261">"Hinzufügen zu Favoriten"</string>
+ <string name="accessibility_control_change_unfavorite" msgid="6997408061750740327">"Entfernen aus Favoriten"</string>
<string name="accessibility_control_move" msgid="8980344493796647792">"Auf Position <xliff:g id="NUMBER">%d</xliff:g> verschieben"</string>
<string name="controls_favorite_default_title" msgid="967742178688938137">"Steuerelemente"</string>
<string name="controls_favorite_subtitle" msgid="6604402232298443956">"Steuerelemente auswählen, auf die man über das Ein-/Aus-Menü zugreifen kann"</string>
@@ -1092,8 +1098,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Ablehnen"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Fortsetzen"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Einstellungen"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Wiedergeben"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Inaktiv – sieh in der App nach"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Fehler. Neuer Versuch…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Nicht gefunden"</string>
@@ -1152,7 +1157,7 @@
<string name="qs_alarm_tile_no_alarm" msgid="4826472008616807923">"Kein Wecker gestellt"</string>
<string name="accessibility_fingerprint_label" msgid="5255731221854153660">"Fingerabdrucksensor"</string>
<string name="accessibility_udfps_disabled_button" msgid="4284034245130239384">"Fingerabdrucksensor ist deaktiviert"</string>
- <string name="accessibility_authenticate_hint" msgid="798914151813205721">"zu authentifizieren"</string>
- <string name="accessibility_enter_hint" msgid="2617864063504824834">"das Gerät einzugeben"</string>
+ <string name="accessibility_authenticate_hint" msgid="798914151813205721">"Authentifizieren"</string>
+ <string name="accessibility_enter_hint" msgid="2617864063504824834">"Eingeben des Geräts"</string>
<string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Mit Fingerabdruck öffnen"</string>
</resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index 545d822..db72cb1 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Το σημείο πρόσβασης κινητής συσκευής απενεργοποιήθηκε."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Το σημείο πρόσβασης κινητής συσκευής ενεργοποιήθηκε."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Η μετάδοση της οθόνης διακόπηκε."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Η λειτουργία εργασίας είναι απενεργοποιημένη."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Η λειτουργία εργασίας είναι ενεργή."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Η λειτουργία εργασίας απενεργοποιήθηκε."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Η λειτουργία εργασίας ενεργοποιήθηκε."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Η Εξοικονόμηση δεδομένων είναι ανενεργή."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Η Εξοικονόμηση δεδομένων είναι ενεργή."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Όριο <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Προειδοποίηση για <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Προφίλ εργασίας"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Νυχτερινός φωτισμός"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Κατά τη δύση"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Μέχρι την ανατολή"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Πορτοφόλι"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Εμφάνιση όλων"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Ξεκλείδωμα για πληρωμή"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Έτοιμο"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Ρύθμιση πληρωμής"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Ξεκλείδωμα για χρήση"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Παρουσιάστηκε πρόβλημα με τη λήψη των καρτών σας. Δοκιμάστε ξανά αργότερα"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Προφίλ εργασίας"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Λειτουργία πτήσης"</string>
<string name="add_tile" msgid="6239678623873086686">"Προσθήκη πλακιδίου"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Κατάσταση:</b> Υποβιβάστηκε σε Αθόρυβη"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Κατάσταση:</b> Κατατάχθηκε υψηλότερα"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Κατάσταση:</b> Κατατάχθηκε χαμηλότερα"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Εμφανίζεται πάντα στην κορυφή των ειδοποιήσεων, ακόμη και όταν η λειτουργία προτεραιότητας είναι ενεργοποιημένη"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Εμφανίζεται στην κορυφή των ειδοποιήσεων συζήτησης και ως φωτογραφία προφίλ στην οθόνη κλειδώματος"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Εμφανίζεται στην κορυφή των ειδοποιήσεων συζήτησης και ως φωτογραφία προφίλ στην οθόνη κλειδώματος, εμφανίζεται ως συννεφάκι"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Εμφανίζεται στην κορυφή των ειδοποιήσεων συζήτησης και ως φωτογραφία προφίλ στην οθόνη κλειδώματος, διακόπτει τη λειτουργία Μην ενοχλείτε"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Εμφανίζεται στην κορυφή των ειδοποιήσεων συζήτησης και ως φωτογραφία προφίλ στην οθόνη κλειδώματος, εμφανίζεται ως συννεφάκι, διακόπτει τη λειτουργία Μην ενοχλείτε"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Ρυθμίσεις"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Συζητήσεις προτεραιότητας"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Προτεραιότητα"</string>
<string name="no_shortcut" msgid="8257177117568230126">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> δεν υποστηρίζει τις λειτουργίες συζήτησης"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Δεν είναι δυνατή η τροποποίηση αυτών των ειδοποιήσεων"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Δεν είναι δυνατή η διαμόρφωση αυτής της ομάδας ειδοποιήσεων εδώ"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Ενεργό"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Απενεργοποίηση"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Μη διαθέσιμο"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Γραμμή πλοήγησης"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Διάταξη"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Επιπλέον τύπος αριστερού κουμπιού"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Η πλοήγηση συστήματος ενημερώθηκε. Για να κάνετε αλλαγές, μεταβείτε στις Ρυθμίσεις."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Μεταβείτε στις Ρυθμίσεις για να ενημερώσετε την πλοήγηση συστήματος"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Κατάσταση αναμονής"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Ορίστηκε ως συζήτηση προτεραιότητας"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Συζητήσεις προτεραιότητας"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Αυτές οι συζητ. εμφανίζ. στην κορυφή της λίστας και μπορούν πάντα να προβληθούν όταν η λειτ. προτεραιότ. είναι ενεργή"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Οι φωτογραφίες προφίλ εμφανίζονται στην οθόνη κλειδώματος"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Μπορείτε εύκολα να βρείτε αυτές τις συζητήσεις σε συννεφάκια στην αρχική σας οθόνη"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Διακοπή λειτουργίας Μην ενοχλείτε"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Το κατάλαβα"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Ρυθμίσεις"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Παράθυρο μεγέθυνσης"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Στοιχεία ελέγχου παραθύρου μεγέθυνσης"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Μεγέθυνση"</string>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index 431059a..e2b5ec4 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobile hotspot turned off."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobile hotspot turned on."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Screen casting stopped."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Work mode off."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Work mode on."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Work mode turned off."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Work mode turned on."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Data Saver turned off."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Data Saver turned on."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> limit"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> warning"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Work profile"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Night Light"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"On at sunset"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Until sunrise"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Show all"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Unlock to pay"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Ready"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Set up payment"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Unlock to use"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"There was a problem getting your cards. Please try again later."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Work profile"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Aeroplane mode"</string>
<string name="add_tile" msgid="6239678623873086686">"Add tile"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> demoted to silent"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> ranked higher"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> ranked lower"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Always shown at the top of your notifications, even when priority mode is on"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Shows at the top of conversation notifications and as a profile picture on lock screen"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Shows at the top of conversation notifications and as a profile picture on lock screen, interrupts Do Not Disturb"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble, interrupts Do Not Disturb"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Settings"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Priority conversations"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priority"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"On"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Off"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Unavailable"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigation bar"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Extra left button type"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Conversation set to priority"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Priority conversations"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"These conversations are shown at the top of your list and can always reach you when priority mode is on"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profile pictures are shown on the lock screen"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"You can easily find these conversations in bubbles on your Home screen"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interrupt Do Not Disturb"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Settings"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom in"</string>
diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml
index 05a50f4..4440831 100644
--- a/packages/SystemUI/res/values-en-rCA/strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobile hotspot turned off."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobile hotspot turned on."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Screen casting stopped."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Work mode off."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Work mode on."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Work mode turned off."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Work mode turned on."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Data Saver turned off."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Data Saver turned on."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> limit"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> warning"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Work profile"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Night Light"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"On at sunset"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Until sunrise"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Show all"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Unlock to pay"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Ready"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Set up payment"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Unlock to use"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"There was a problem getting your cards. Please try again later."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Work profile"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Airplane mode"</string>
<string name="add_tile" msgid="6239678623873086686">"Add tile"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> demoted to silent"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> ranked higher"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> ranked lower"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Always shown at the top of your notifications, even when priority mode is on"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Shows at the top of conversation notifications and as a profile picture on lock screen"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Shows at the top of conversation notifications and as a profile picture on lock screen, interrupts Do Not Disturb"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble, interrupts Do Not Disturb"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Settings"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Priority conversations"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priority"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"On"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Off"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Unavailable"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigation bar"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Extra left button type"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Conversation set to priority"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Priority conversations"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"These conversations are shown at the top of your list and can always reach you when priority mode is on"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profile pictures are shown on the lock screen"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"You can easily find these conversations in bubbles on your Home screen"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interrupt Do Not Disturb"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Settings"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom in"</string>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 431059a..e2b5ec4 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobile hotspot turned off."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobile hotspot turned on."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Screen casting stopped."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Work mode off."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Work mode on."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Work mode turned off."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Work mode turned on."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Data Saver turned off."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Data Saver turned on."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> limit"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> warning"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Work profile"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Night Light"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"On at sunset"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Until sunrise"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Show all"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Unlock to pay"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Ready"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Set up payment"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Unlock to use"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"There was a problem getting your cards. Please try again later."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Work profile"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Aeroplane mode"</string>
<string name="add_tile" msgid="6239678623873086686">"Add tile"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> demoted to silent"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> ranked higher"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> ranked lower"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Always shown at the top of your notifications, even when priority mode is on"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Shows at the top of conversation notifications and as a profile picture on lock screen"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Shows at the top of conversation notifications and as a profile picture on lock screen, interrupts Do Not Disturb"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble, interrupts Do Not Disturb"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Settings"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Priority conversations"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priority"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"On"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Off"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Unavailable"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigation bar"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Extra left button type"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Conversation set to priority"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Priority conversations"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"These conversations are shown at the top of your list and can always reach you when priority mode is on"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profile pictures are shown on the lock screen"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"You can easily find these conversations in bubbles on your Home screen"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interrupt Do Not Disturb"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Settings"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom in"</string>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index 431059a..e2b5ec4 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobile hotspot turned off."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobile hotspot turned on."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Screen casting stopped."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Work mode off."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Work mode on."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Work mode turned off."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Work mode turned on."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Data Saver turned off."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Data Saver turned on."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> limit"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> warning"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Work profile"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Night Light"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"On at sunset"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Until sunrise"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Show all"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Unlock to pay"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Ready"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Set up payment"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Unlock to use"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"There was a problem getting your cards. Please try again later."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Work profile"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Aeroplane mode"</string>
<string name="add_tile" msgid="6239678623873086686">"Add tile"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> demoted to silent"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> ranked higher"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> ranked lower"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Always shown at the top of your notifications, even when priority mode is on"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Shows at the top of conversation notifications and as a profile picture on lock screen"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Shows at the top of conversation notifications and as a profile picture on lock screen, interrupts Do Not Disturb"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble, interrupts Do Not Disturb"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Settings"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Priority conversations"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priority"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"On"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Off"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Unavailable"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigation bar"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Extra left button type"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Conversation set to priority"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Priority conversations"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"These conversations are shown at the top of your list and can always reach you when priority mode is on"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profile pictures are shown on the lock screen"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"You can easily find these conversations in bubbles on your Home screen"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interrupt Do Not Disturb"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Settings"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom in"</string>
diff --git a/packages/SystemUI/res/values-en-rXC/strings.xml b/packages/SystemUI/res/values-en-rXC/strings.xml
index ef29629..e42e1e0 100644
--- a/packages/SystemUI/res/values-en-rXC/strings.xml
+++ b/packages/SystemUI/res/values-en-rXC/strings.xml
@@ -289,9 +289,9 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobile hotspot turned off."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobile hotspot turned on."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Screen casting stopped."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Work mode off."</string>
+ <string name="accessibility_quick_settings_work_mode_off" msgid="9106217884005620744">"Work mode paused."</string>
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Work mode on."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Work mode turned off."</string>
+ <string name="accessibility_quick_settings_work_mode_changed_off" msgid="2653550342355027441">"Work mode turned paused."</string>
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Work mode turned on."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Data Saver turned off."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Data Saver turned on."</string>
@@ -410,6 +410,7 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> limit"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> warning"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Work profile"</string>
+ <string name="quick_settings_work_mode_paused" msgid="4841109346916998613">"Paused"</string>
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Night Light"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"On at sunset"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Until sunrise"</string>
@@ -668,10 +669,10 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Show all"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Unlock to pay"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Ready"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Set up payment"</string>
+ <string name="wallet_secondary_label_no_card" msgid="1282609666895946317">"Not set up"</string>
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Unlock to use"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"There was a problem getting your cards, please try again later"</string>
+ <string name="wallet_lockscreen_settings_label" msgid="3539105300870383570">"Lock screen settings"</string>
<string name="status_bar_work" msgid="5238641949837091056">"Work profile"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Airplane mode"</string>
<string name="add_tile" msgid="6239678623873086686">"Add tile"</string>
@@ -740,9 +741,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Demoted to Silent"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Ranked Higher"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> Ranked Lower"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Always shown at the top of your notifications, even when Priority mode is on"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Shows at the top of conversation notifications and as a profile picture on lock screen"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Shows at the top of conversation notifications and as a profile picture on lock screen, interrupts Do Not Disturb"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Shows at the top of conversation notifications and as a profile picture on lock screen, appears as a bubble, interrupts Do Not Disturb"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Settings"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Priority conversations"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priority"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> doesn’t support conversation features"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
@@ -858,6 +862,7 @@
<string name="switch_bar_on" msgid="1770868129120096114">"On"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Off"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Unavailable"</string>
+ <string name="tile_disabled" msgid="373212051546573069">"Disabled"</string>
<string name="nav_bar" msgid="4642708685386136807">"Navigation bar"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Extra left button type"</string>
@@ -1016,14 +1021,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Conversation set to priority"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Priority conversations"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"These conversations are shown at the top of your list and can always reach you when Priority mode is on"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profile pictures are shown on the lock screen"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"You can easily find these conversations in bubbles on your Home screen"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interrupt Do Not Disturb"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Got it"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Settings"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification Window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification Window Controls"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom in"</string>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 5292f87..b4d8eea 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Zona móvil desactivada"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Zona móvil activada"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Transmisión de pantalla detenida"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Modo de trabajo desactivado"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Modo de trabajo activado"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Se desactivó el modo de trabajo."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Se activó el modo de trabajo."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Se desactivó el Ahorro de datos."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Se activó el Ahorro de datos."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Límite de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Advertencia de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Perfil de trabajo"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Luz nocturna"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Al atardecer"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Hasta el amanecer"</string>
@@ -554,7 +558,7 @@
<string name="monitoring_button_view_policies" msgid="3869724835853502410">"Ver políticas"</string>
<string name="monitoring_button_view_controls" msgid="8316440345340701117">"Ver controles"</string>
<string name="monitoring_description_named_management" msgid="505833016545056036">"Este dispositivo pertenece a <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g>.\n\nTu administrador de TI puede controlar y administrar la configuración, el acceso corporativo, las apps, los datos asociados al dispositivo y la información de ubicación.\n\nPara obtener más información, comunícate con el administrador de TI."</string>
- <string name="monitoring_financed_description_named_management" msgid="6108439201399938668">"Es posible que <xliff:g id="ORGANIZATION_NAME_0">%1$s</xliff:g> pueda acceder a los datos asociados con este dispositivo y administrar las apps y cambiar su configuración. \n\nSi tienes preguntas, comunícate con <xliff:g id="ORGANIZATION_NAME_1">%2$s</xliff:g>."</string>
+ <string name="monitoring_financed_description_named_management" msgid="6108439201399938668">"Es posible que <xliff:g id="ORGANIZATION_NAME_0">%1$s</xliff:g> pueda acceder a los datos asociados con este dispositivo, cambie la configuración y administre las apps. \n\nSi tienes preguntas, comunícate con <xliff:g id="ORGANIZATION_NAME_1">%2$s</xliff:g>."</string>
<string name="monitoring_description_management" msgid="4308879039175729014">"Este dispositivo pertenece a tu organización.\n\nTu administrador de TI puede controlar y administrar la configuración, el acceso corporativo, las apps, los datos asociados al dispositivo y la información de ubicación.\n\nPara obtener más información, comunícate con el administrador de TI."</string>
<string name="monitoring_description_management_ca_certificate" msgid="7785013130658110130">"Tu organización instaló una autoridad de certificación en este dispositivo. Es posible que se controle o modifique el tráfico de tu red segura."</string>
<string name="monitoring_description_managed_profile_ca_certificate" msgid="7904323416598435647">"Tu organización instaló una autoridad de certificación en tu perfil de trabajo. Es posible que se controle o modifique el tráfico de tu red segura."</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Mostrar todo"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Desbloquear para pagar"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Listo"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configurar pago"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Desbloquear para usar"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Ocurrió un problema al obtener las tarjetas; vuelve a intentarlo más tarde"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Perfil de trabajo"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Modo de avión"</string>
<string name="add_tile" msgid="6239678623873086686">"Agregar mosaico"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Estado:</b> Descendió de nivel a Silenciada"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Estado:</b> Se clasificó en una posición superior"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Estado:</b> Se clasificó en una posición inferior"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Se muestran siempre en la parte superior de las notificaciones, incluso cuando el Modo prioridad está activado"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Aparece como foto de perfil en la parte superior de las notificaciones de conversación, en la pantalla de bloqueo"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Aparece en forma de burbuja y como foto de perfil en la parte superior de las notificaciones de conversación, en la pantalla de bloqueo"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Aparece como foto de perfil en la parte superior de las notificaciones de conversación, en la pantalla de bloqueo, y detiene el modo No interrumpir"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Aparece en forma de burbuja y como foto de perfil en la parte superior de las notificaciones de conversación, en la pantalla de bloqueo, y detiene el modo No interrumpir"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Configuración"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Conversaciones prioritarias"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritaria"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> no admite funciones de conversación"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"No se pueden modificar estas notificaciones."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"No se puede configurar aquí este grupo de notificaciones"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Activado"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Desactivado"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"No disponible"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Barra de navegación"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Diseño"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Tipo de botón izquierdo adicional"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Se actualizó el sistema de navegación. Para hacer cambios, ve a Configuración."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ve a Configuración para actualizar la navegación del sistema"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Se estableció la conversación como prioritaria"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Conversaciones prioritarias"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Estas conversaciones aparecen arriba en la lista y están siempre al alcance cuando el Modo prioridad está activado"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Las fotos de perfil se muestran en la pantalla de bloqueo"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Puedes encontrar estas conversaciones con facilidad en burbujas, en las pantalla principal"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Suspender No interrumpir"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Entendido"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Configuración"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Ventana de ampliación"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controles de ampliación de la ventana"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Acercar"</string>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index d23f073..6538731 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Punto de acceso móvil desactivado."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Punto de acceso móvil activado."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Envío de pantalla detenido."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Modo de trabajo desactivado."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Modo de trabajo activado."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Modo de trabajo desactivado."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Modo de trabajo activado."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Ahorro de datos desactivado."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Ahorro de datos activado."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Límite de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Advertencia de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Perfil de trabajo"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Luz nocturna"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Al atardecer"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Hasta el amanecer"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Mostrar todo"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Desbloquear para pagar"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Listo"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configurar pago"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Desbloquear para usar"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Se ha producido un problema al obtener tus tarjetas. Inténtalo de nuevo más tarde."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Perfil de trabajo"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Modo avión"</string>
<string name="add_tile" msgid="6239678623873086686">"Añadir icono"</string>
@@ -732,17 +738,20 @@
<string name="notification_automatic_title" msgid="3745465364578762652">"Automática"</string>
<string name="notification_channel_summary_low" msgid="4860617986908931158">"Sin sonido ni vibración"</string>
<string name="notification_conversation_summary_low" msgid="1734433426085468009">"Sin sonido ni vibración, y se muestra más abajo en la sección de conversaciones"</string>
- <string name="notification_channel_summary_default" msgid="3282930979307248890">"Es posible que suene o vibre según los ajustes del teléfono"</string>
- <string name="notification_channel_summary_default_with_bubbles" msgid="1782419896613644568">"Es posible que suene o vibre según los ajustes del teléfono. Las conversaciones de <xliff:g id="APP_NAME">%1$s</xliff:g> aparecen como burbujas de forma predeterminada."</string>
+ <string name="notification_channel_summary_default" msgid="3282930979307248890">"Puede sonar o vibrar según los ajustes del teléfono"</string>
+ <string name="notification_channel_summary_default_with_bubbles" msgid="1782419896613644568">"Puede sonar o vibrar según los ajustes del teléfono. Las conversaciones de <xliff:g id="APP_NAME">%1$s</xliff:g> aparecen como burbujas de forma predeterminada."</string>
<string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Llama tu atención con un acceso directo flotante a este contenido."</string>
<string name="notification_channel_summary_automatic" msgid="5813109268050235275">"Haz que el sistema determine si con esta notificación el dispositivo debe sonar o vibrar"</string>
<string name="notification_channel_summary_automatic_alerted" msgid="954166812246932240">"<b>Estado:</b> cambio a Predeterminado"</string>
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Estado:</b> cambio a Silencio"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Estado:</b> posición más alta"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Estado:</b> posición más baja"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Mostrar siempre en la parte superior de tus notificaciones, incluso con el modo Prioridad activado"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Se muestra encima de las notificaciones de conversaciones y como imagen de perfil en la pantalla de bloqueo"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Se muestra encima de las notificaciones de conversaciones y como imagen de perfil en la pantalla de bloqueo, y aparece como burbuja"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Se muestra encima de las notificaciones de conversaciones y como imagen de perfil en la pantalla de bloqueo, e interrumpe el modo No molestar"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Se muestra encima de las notificaciones de conversaciones y como imagen de perfil en la pantalla de bloqueo, aparece como burbuja e interrumpe el modo No molestar"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Ajustes"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Conversaciones prioritarias"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioridad"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> no admite funciones de conversación"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Estas notificaciones no se pueden modificar."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Este grupo de notificaciones no se puede configurar aquí"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Activado"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Desactivado"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"No disponible"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Barra de navegación"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Diseño"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Tipo de botón a la izquierda extra"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Se ha actualizado la navegación del sistema. Para hacer cambios, ve a Ajustes."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ve a Ajustes para actualizar la navegación del sistema"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Conversación marcada como prioritaria"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Conversaciones prioritarias"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Estas conversaciones aparecen al principio de tu lista y puedes acceder a ellas con el modo Prioridad activado"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Las imágenes de perfil se muestran en la pantalla de bloqueo"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Puedes encontrar fácilmente estas conversaciones en las burbujas de la pantalla de inicio"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interrumpen el modo No molestar"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Entendido"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Ajustes"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Ventana de ampliación"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ventana de controles de ampliación"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Ampliar"</string>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index d227dcb..154246f 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobiilside kuumkoht on välja lülitatud."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobiilside kuumkoht on sisse lülitatud."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Ekraanikuva ülekandmine on peatatud."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Töörežiim on väljas."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Töörežiim on sees."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Töörežiim on välja lülitatud."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Töörežiim on sisse lülitatud."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Andmemahu säästja on välja lülitatud."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Andmemahu säästja on sisse lülitatud."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limiit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> hoiatus"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Tööprofiil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Öövalgus"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Sissel. päikeselooj."</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Kuni päikesetõusuni"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Rahakott"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Kuva kõik"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Avage maksmiseks"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Valmis"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Makseviisi seadistamine"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Avage kasutamiseks"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Teie kaartide hankimisel ilmnes probleem, proovige hiljem uuesti"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Tööprofiil"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Lennukirežiim"</string>
<string name="add_tile" msgid="6239678623873086686">"Paani lisamine"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Olek:</b> määrati prioriteet Vaikne"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Olek:</b> määrati kõrgem prioriteet"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Olek:</b> määrati madalam prioriteet"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Kuva alati märguannete ülaosas, isegi kui režiim Prioriteetne on sisse lülitatud"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Kuvatakse vestluste märguannete ülaosas ja profiilipildina lukustuskuval"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Kuvatakse mullina vestluste märguannete ülaosas ja profiilipildina lukustuskuval"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Kuvatakse vestluste märguannete ülaosas ja profiilipildina lukustuskuval ning katkestab režiimi Mitte segada"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Kuvatakse mullina vestluste märguannete ülaosas ja profiilipildina lukustuskuval ning katkestab režiimi Mitte segada"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Seaded"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioriteetsed vestlused"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioriteetne"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ei toeta vestlusfunktsioone"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Neid märguandeid ei saa muuta."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Seda märguannete rühma ei saa siin seadistada"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Sees"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Väljas"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Pole saadaval"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigeerimisriba"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Paigutus"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Täiendava vasaku nupu tüüp"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Süsteemis navigeerimine on värskendatud. Muutmiseks avage jaotis Seaded."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Süsteemi navigeerimise värskendamiseks avage jaotis Seaded"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ooterežiim"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Vestlus määrati prioriteetseks"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioriteetsed vestlused"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Need vestlused kuvatakse loendi ülaosas ja jõuavad alati teieni ka siis, kui režiim Prioriteetne on sisse lülitatud"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profiilipildid kuvatakse lukustuskuval"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Leiate need vestlused hõlpsalt avakuval olevatest mullidest"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Funktsioon Mitte segada katkestatakse"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Selge"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Seaded"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Suurendamisaken"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Suurendamisakna juhtelemendid"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Suumi sisse"</string>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index 199107c..e368673 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Wifi-gune mugikorra desaktibatu egin da."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Wifi-gune mugikorra aktibatu egin da."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Pantaila igortzeari utzi zaio."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Desaktibatuta dago lan modua."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Aktibatuta dago lan modua."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Desaktibatuta dago lan modua."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Aktibatuta dago lan modua."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Desaktibatuta dago datu-aurrezlea."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Aktibatuta dago datu-aurrezlea."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Muga: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Abisua: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Laneko profila"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Gaueko argia"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Ilunabarrean"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Ilunabarrera arte"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Erakutsi guztiak"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Desblokeatu ordaintzeko"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Prest"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Konfiguratu ordainketa"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Desblokeatu erabiltzeko"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Arazo bat izan da txartelak eskuratzean. Saiatu berriro geroago."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Work profila"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Hegaldi modua"</string>
<string name="add_tile" msgid="6239678623873086686">"Gehitu lauza"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"Soinurik gabeko modura aldatu da <b>egoera:</b>"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"Mailaz igo da <b>egoera:</b>"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"Mailaz jaitsi da <b>egoera:</b>"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Jakinarazpenen goialdean agertuko dira beti, baita lehentasunezko modua aktibatuta dagoenean ere"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Elkarrizketen jakinarazpenen goialdean eta profileko argazki gisa agertzen da pantaila blokeatuan"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Elkarrizketen jakinarazpenen goialdean eta profileko argazki gisa agertzen da pantaila blokeatuan, burbuila batean"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Elkarrizketen jakinarazpenen goialdean eta profileko argazki gisa agertzen da pantaila blokeatuan, eta ez molestatzeko modua eteten du"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Elkarrizketen jakinarazpenen goialdean eta profileko argazki gisa agertzen da pantaila blokeatuan, burbuila batean, eta ez molestatzeko modua eteten du"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Ezarpenak"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Lehentasunezko elkarrizketak"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Lehentasuna"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak ez ditu onartzen elkarrizketetarako eginbideak"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Jakinarazpen horiek ezin dira aldatu."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Jakinarazpen talde hau ezin da konfiguratu hemen"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Aktibatuta"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Desaktibatuta"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Ez dago erabilgarri"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Nabigazio-barra"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Diseinua"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Ezkerreko botoi gehigarriaren mota"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Eguneratu da sistemaren nabigazioa. Aldaketak egiteko, joan Ezarpenak atalera."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Sistemaren nabigazioa eguneratzeko, joan Ezarpenak atalera"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Egonean"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Lehentasunezko gisa ezarritako elkarrizketa"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Lehentasunezko elkarrizketak"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Elkarrizketak zerrendaren goialdean agertuko dira. Lehentasunezko modua aktibatuta badago, beti iritsiko zaizkie mezuak."</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profileko argazkiak pantaila blokeatuan agertzen dira"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Erraz aurki ditzakezu elkarrizketa horiek hasierako pantailako burbuiletan"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Eten ez molestatzeko modua"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Ados"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Ezarpenak"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Lupa-leihoa"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Lupa-leihoaren aukerak"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Handitu"</string>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index d6b018d..018db7c 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"نقطه اتصال دستگاه همراه خاموش شد."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"نقطه اتصال دستگاه همراه روشن شد."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"فرستادن صفحه نمایش متوقف شد."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"حالت کار خاموش."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"حالت کار روشن."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"حالت کار خاموش شد."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"حالت کار روشن شد."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"صرفهجویی داده خاموش شد."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"صرفهجویی داده روشن شد."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> محدودیت"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"هشدار <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"نمایه کاری"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"نور شب"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"غروب روشن میشود"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"تا طلوع"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"کیفپول"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"نمایش همه"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"باز کردن قفل برای پرداخت"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"آماده"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"راهاندازی پرداخت"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"برای استفاده، قفل را باز کنید"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"هنگام دریافت کارتها مشکلی پیش آمد، لطفاً بعداً دوباره امتحان کنید"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"نمایه کاری"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"حالت هواپیما"</string>
<string name="add_tile" msgid="6239678623873086686">"افزودن کاشی"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>وضعیت:</b> به «بیصدا» تنزل یافت"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>وضعیت:</b> در ردهبندی بالاتری قرار گرفت"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>وضعیت:</b> در ردهبندی پایینتری قرار گرفت"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"همیشه در بالای اعلانها نشان داده میشود، حتی وقتی «حالت اولویتدار» روشن است"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"در بالای اعلانهای مکالمه و بهصورت عکس نمایه در صفحه قفل نشان داده میشود"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"در بالای اعلانهای مکالمه و بهصورت عکس نمایه در صفحه قفل نشان داده میشود، بهصورت حبابک ظاهر میشود"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"در بالای اعلانهای مکالمه و بهصورت عکس نمایه در صفحه قفل نشان داده میشود، در حالت «مزاحم نشوید» وقفه ایجاد میکند"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"در بالای اعلانهای مکالمه و بهصورت عکس نمایه در صفحه قفل نشان داده میشود، بهصورت حبابک ظاهر میشود، در حالت «مزاحم نشوید» وقفه ایجاد میکند"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"تنظیمات"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"مکالمههای اولویتدار"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"اولویت"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> از ویژگیهای مکالمه پشتیبانی نمیکند"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"این اعلانها قابل اصلاح نیستند."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"نمیتوانید این گروه اعلانها را در اینجا پیکربندی کنید"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"روشن"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"خاموش"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"در دسترس نیست"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"نوار پیمایش"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"طرحبندی"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"نوع دکمه منتهیالیه چپ"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"پیمایش سیستم بهروزرسانی شد. برای انجام تغییرات به «تنظیمات» بروید."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"برای بهروزرسانی پیمایش سیستم، به «تنظیمات» بروید"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"آمادهبهکار"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"مکالمه روی اولویت تنظیم شده است"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"مکالمههای اولویتدار"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"این مکالمهها در بالای فهرستتان نشان داده میشوند و وقتی «حالت اولویتدار» روشن است همیشه به دست شما میرسند"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"عکسهای نمایه در صفحه قفل نشان داده میشوند"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"بهراحتی میتوانید این مکالمهها را بهصورت حبابک در صفحه اصلی خود پیدا کنید"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"وقفه در «مزاحم نشوید»"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"متوجهام"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"تنظیمات"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"پنجره بزرگنمایی"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"کنترلهای پنجره بزرگنمایی"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"بزرگ کردن"</string>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 700313c..019c938 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobiiliyhteyden hotspot poistettiin käytöstä."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobiiliyhteyden hotspot otettiin käyttöön."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Ruudun lähetys pysäytettiin."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Työtila on poistettu käytöstä."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Työtila on käytössä."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Työtila poistettiin käytöstä."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Työtila otettiin käyttöön."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Data Saver poistettiin käytöstä."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Data Saver otettiin käyttöön."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"kiintiö <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> – varoitus"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Työprofiili"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Yövalo"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Auringon laskiessa"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Auringonnousuun"</string>
@@ -510,7 +514,7 @@
<string name="media_projection_dialog_service_title" msgid="2888507074107884040">"Aloitetaanko tallentaminen tai striimaus?"</string>
<string name="media_projection_dialog_title" msgid="3316063622495360646">"Haluatko, että <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> aloittaa tallennuksen tai striimauksen?"</string>
<string name="media_projection_remember_text" msgid="6896767327140422951">"Älä näytä uudelleen"</string>
- <string name="clear_all_notifications_text" msgid="348312370303046130">"Poista kaikki"</string>
+ <string name="clear_all_notifications_text" msgid="348312370303046130">"Tyhjennä kaikki"</string>
<string name="manage_notifications_text" msgid="6885645344647733116">"Muuta asetuksia"</string>
<string name="manage_notifications_history_text" msgid="57055985396576230">"Historia"</string>
<string name="notification_section_header_incoming" msgid="850925217908095197">"Uudet"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Näytä kaikki"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Avaa lukitus ja maksa"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Valmis"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Ota maksutapa käyttöön"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Avaa lukitus ja käytä"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Korttien noutamisessa oli ongelma, yritä myöhemmin uudelleen"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Työprofiili"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Lentokonetila"</string>
<string name="add_tile" msgid="6239678623873086686">"Lisää ruutu"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Tila:</b> hiljennetty"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Tila:</b> valittu tärkeämmäksi"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Tila:</b> valittu vähemmän tärkeäksi"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Näytetään aina ilmoitusten yläpuolella, myös silloin, kun Tärkeät-tila on päällä"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Näkyy keskusteluilmoitusten yläosassa ja profiilikuvana lukitusnäytöllä"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Näkyy keskusteluilmoitusten yläosassa ja profiilikuvana lukitusnäytöllä, näkyy kuplana"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Näkyy keskusteluilmoitusten yläosassa ja profiilikuvana lukitusnäytöllä, keskeyttää Älä häiritse ‑tilan"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Näkyy keskusteluilmoitusten yläosassa ja profiilikuvana lukitusnäytöllä, näkyy kuplana, keskeyttää Älä häiritse ‑tilan"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Asetukset"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Tärkeät keskustelut"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Tärkeä"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ei tue keskusteluominaisuuksia"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Näitä ilmoituksia ei voi muokata"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Tätä ilmoitusryhmää ei voi määrittää tässä"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Päällä"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Pois päältä"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Ei käytettävissä"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigointipalkki"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Asettelu"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Ylimääräinen vasen painiketyyppi"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Järjestelmän navigointitapa vaihdettu. Voit muuttaa sitä asetuksista."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Vaihda järjestelmän navigointitapaa asetuksista"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Virransäästötila"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Tärkeäksi merkitty keskustelu"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Tärkeät keskustelut"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Nämä keskustelut näkyvät luettelon yläosassa ja ne näkyvät sinulle aina, kun Tärkeät-tila on päällä"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profiilikuvat näkyvät lukitusnäytöllä"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Voit löytää nämä keskustelut helposti aloitusnäytöllä olevista kuplista"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Keskeyttää Älä häiritse ‑tilan"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Selvä"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Asetukset"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Suurennusikkuna"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Suurennusikkunan ohjaimet"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Lähennä"</string>
@@ -1044,8 +1047,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Siirrä oikeaan alareunaan"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Siirrä reunaan ja piilota"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Siirrä pois reunasta ja näytä"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"vaihda"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Laitteiden hallinta"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Lisää ohjaimia yhdistettyjä laitteita varten"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Laitteiden hallinnan käyttöönotto"</string>
@@ -1092,8 +1094,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Ohita"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Jatka"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Asetukset"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Toista"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Epäaktiivinen, tarkista sovellus"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Virhe, yritetään uudelleen…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Ei löydy"</string>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index d4da459..f6adbda 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Point d\'accès mobile désactivé."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Point d\'accès mobile activé."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Diffusion d\'écran arrêtée."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Mode Travail désactivé."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Mode Travail activé."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Le mode Travail est désactivé."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Le mode Travail est activé."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Mode Économiseur de données désactivé."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Mode Économiseur de données activé."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limite : <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Avertissement : <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Profil professionnel"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Éclairage nocturne"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Activé la nuit"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Jusqu\'à l\'aube"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Tout afficher"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Déverrouiller pour payer"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Prêt"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configurer le paiement"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Déverrouiller pour utiliser"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Un problème est survenu lors de la récupération de vos cartes, veuillez réessayer plus tard"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profil professionnel"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Mode Avion"</string>
<string name="add_tile" msgid="6239678623873086686">"Ajouter la tuile"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>État :</b> abaissé à la catégorie Silencieux"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>État :</b> élevé d\'un niveau"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>État :</b> abaissé d\'un niveau"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"S\'affiche toujours en haut de vos notifications, même en mode Prioritaire"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"S\'affiche dans le haut des notifications de conversation et comme photo de profil à l\'écran de verrouillage"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"S\'affiche dans le haut des notifications de conversation et comme photo de profil à l\'écran de verrouillage, s\'affiche comme bulle"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"S\'affiche dans le haut des notifications de conversation et comme photo de profil à l\'écran de verrouillage, interrompt le mode Ne pas déranger"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"S\'affiche dans le haut des notifications de conversation et comme photo de profil à l\'écran de verrouillage, s\'affiche comme bulle, interrompt le mode Ne pas déranger"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Paramètres"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Conversations prioritaires"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritaire"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ne prend pas en charge les fonctionnalités de conversation"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Ces notifications ne peuvent pas être modifiées"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Ce groupe de notifications ne peut pas être configuré ici"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Activé"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Désactivé"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Non disponible"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Barre de navigation"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Disposition"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Type de bouton gauche supplémentaire"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"La navigation système a été mise à jour. Pour apporter des modifications, accédez au menu Paramètres."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Accédez au menu Paramètres pour mettre à jour la navigation système"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Veille"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"La conversation a été définie comme prioritaire"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Conversations prioritaires"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Ces conversations s\'affichent dans le haut de votre liste et restent visibles en mode Prioritaire"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Les photos de profil sont affichées sur l\'écran de verrouillage"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Vous trouverez facilement ces conversations dans des bulles sur votre écran d\'accueil"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interrompre le mode Ne pas déranger"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Paramètres"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Fenêtre d\'agrandissement"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Commandes pour la fenêtre d\'agrandissement"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Effectuer un zoom avant"</string>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index c17bf8f..769f66a 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Point d\'accès mobile désactivé."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Point d\'accès mobile activé."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Diffusion d\'écran interrompue."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Mode Travail désactivé"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Mode Travail activé"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Le mode Travail est désactivé."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Le mode Travail est activé."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"L\'économiseur de données est désactivé."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"L\'économiseur de données est activé."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> au maximum"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Avertissement : <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Profil professionnel"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Éclairage nocturne"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Activé la nuit"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Jusqu\'à l\'aube"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Tout afficher"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Déverrouiller pour payer"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Prêt"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configurer un mode de paiement"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Déverrouiller pour utiliser"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Problème de récupération de vos cartes. Réessayez plus tard"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profil professionnel"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Mode Avion"</string>
<string name="add_tile" msgid="6239678623873086686">"Ajouter un bloc"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>État :</b> Abaissée à la catégorie \"Silencieux\""</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>État :</b> Élevée d\'un niveau"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>État ::</b> Abaissée d\'un niveau"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"S\'affiche toujours en haut des notifications, même en mode Prioritaire"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Paramètres"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Conversations prioritaires"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritaire"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> n\'est pas compatible avec les fonctionnalités de conversation"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Impossible de modifier ces notifications."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Vous ne pouvez pas configurer ce groupe de notifications ici"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Activé"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Désactivé"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Indisponible"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Barre de navigation"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Disposition"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Type de bouton gauche supplémentaire"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigation système mise à jour. Pour apporter des modifications, accédez aux paramètres."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Accédez aux paramètres pour mettre à jour la navigation système"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Mode Veille imminent"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Conversation définie comme prioritaire"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Conversations prioritaires"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Ces conversations s\'affichent en haut de la liste et restent visibles en mode Prioritaire"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Les photos de profil s\'affichent sur l\'écran de verrouillage"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Retrouvez facilement ces conversations dans des bulles sur l\'écran d\'accueil"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interrompre Ne pas déranger"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Paramètres"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Fenêtre d\'agrandissement"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Fenêtre des commandes d\'agrandissement"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Faire un zoom avant"</string>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index 73d2de6..2d4ab36 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Desactivouse a zona wifi móbil."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Activouse a zona wifi móbil."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Detívose a emisión en pantalla."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Modo de traballo desactivado."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Modo de traballo activado."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Desactivouse o modo de traballo."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Activouse o modo de traballo."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Desactivouse o aforro de datos."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Activouse o aforro de datos."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Límite de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Advertencia <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Perfil de traballo"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Luz nocturna"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Activación ao solpor"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Ata o amencer"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Amosar todo"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Desbloquear para pagar"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Listo"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configurar pago"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Desbloquear para usar"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Produciuse un problema ao obter as tarxetas. Téntao de novo máis tarde"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Perfil de traballo"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Modo avión"</string>
<string name="add_tile" msgid="6239678623873086686">"Engade un atallo"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Estado:</b> o nivel diminuíuse a Silencioso"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Estado:</b> clasificouse nun nivel superior"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Estado:</b> clasificouse nun nivel inferior"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Móstrase sempre na parte superior das notificacións, mesmo cando está activado o modo de prioridade"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Móstrase na parte superior das notificacións das conversas e como imaxe do perfil na pantalla de bloqueo"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Móstrase na parte superior das notificacións das conversas e como imaxe do perfil na pantalla de bloqueo, e aparece como unha burbulla"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Móstrase na parte superior das notificacións das conversas e como imaxe do perfil na pantalla de bloqueo, e interrompe o modo Non molestar"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Móstrase na parte superior das notificacións das conversas e como imaxe do perfil na pantalla de bloqueo, aparece como unha burbulla e interrompe o modo Non molestar"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Configuración"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Conversas prioritarias"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioridade"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> non admite funcións de conversa"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Estas notificacións non se poden modificar."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Aquí non se pode configurar este grupo de notificacións"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Activado"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Desactivado"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Non dispoñible"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Barra de navegación"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Deseño"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Tipo de botón adicional á esquerda"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Actualizouse a navegación do sistema. Para facer cambios, vai a Configuración."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Para actualizar a navegación do sistema, vai a Configuración"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Modo de espera"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"A conversa definiuse como prioritaria"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Conversas prioritarias"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Estas conversas móstranse na parte superior da lista e pódenseche amosar mesmo co modo de prioridade activado"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"As fotos dos perfís móstranse na pantalla de bloqueo"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Podes atopar facilmente estas conversas en burbullas situadas na pantalla de inicio"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interromper modo Non molestar"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Entendido"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Configuración"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Ventá de superposición"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controis de ampliación da ventá"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Achegar"</string>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index 4c5308b..5055305 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"મોબાઇલ હૉટસ્પૉટ બંધ કર્યું."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"મોબાઇલ હૉટસ્પૉટ ચાલુ કર્યું."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"સ્ક્રીન કાસ્ટિંગ બંધ કર્યું."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"કાર્ય મોડ બંધ."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"કાર્ય મોડ ચાલુ."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"કાર્ય મોડ બંધ કર્યો."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"કાર્ય મોડ ચાલુ કર્યો."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ડેટા સેવર બંધ કર્યું."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ડેટા સેવર ચાલુ કર્યું."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> મર્યાદા"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ચેતવણી"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"ઑફિસની પ્રોફાઇલ"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"રાત્રિ પ્રકાશ"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"સૂર્યાસ્ત વખતે"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"સૂર્યોદય સુધી"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"વૉલેટ"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"બધું બતાવો"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ચુકવણી કરવા માટે અનલૉક કરો"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"તૈયાર છે"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"ચુકવણી પદ્ધતિનું સેટઅપ કરો"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ઉપયોગ કરવા માટે અનલૉક કરો"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"તમારા કાર્ડની માહિતી મેળવવામાં સમસ્યા આવી હતી, કૃપા કરીને થોડા સમય પછી ફરી પ્રયાસ કરો"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"ઑફિસની પ્રોફાઇલ"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"એરપ્લેન મોડ"</string>
<string name="add_tile" msgid="6239678623873086686">"ટાઇલ ઉમેરો"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>સ્ટેટસ:</b> સાઇલન્ટ પર અવનત કરવામાં આવ્યું"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>સ્ટેટસ:</b> ઉપલી રેંક આપવામાં આવી"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>સ્ટેટસ:</b> નીચલી રેંક આપવામાં આવી"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"જ્યારે પ્રાધાન્યતા મોડ ચાલુ હોય ત્યારે પણ તમારા નોટિફિકેશનમાં હંમેશાં સૌથી ઉપર ટોચમાં બતાવવામાં આવશે"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"સેટિંગ"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"પ્રાધાન્યતા ધરાવતી વાતચીતો"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"પ્રાધાન્યતા"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> વાતચીતની સુવિધાઓને સપોર્ટ આપતી નથી"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"આ નોટિફિકેશનમાં કોઈ ફેરફાર થઈ શકશે નહીં."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"નોટિફિકેશનના આ ગ્રૂપની ગોઠવણી અહીં કરી શકાશે નહીં"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ચાલુ"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"બંધ"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"ઉપલબ્ધ નથી"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"નેવિગેશન બાર"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"લેઆઉટ"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"અતિરિક્ત ડાબો બટન પ્રકાર"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"સિસ્ટમ નૅવિગેશન અપડેટ કર્યું. ફેરફારો કરવા માટે, સેટિંગ પર જાઓ."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"સિસ્ટમ નૅવિગેશનને અપડેટ કરવા માટે સેટિંગ પર જાઓ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"સ્ટૅન્ડબાય"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"વાતચીતને પ્રાધાન્યતા ધરાવતી તરીકે સેટ કરી"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"પ્રાધાન્યતા ધરાવતી વાતચીતો"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"આ વાતચીતોને તમારી સૂચિમાં ટોચ પર બતાવવામાં આવે છે અને જ્યારે પ્રાધાન્યતા મોડ ચાલુ હોય ત્યારે તમને સો ટકા મળશે"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"લૉક સ્ક્રીન પર પ્રોફાઇલ ફોટા બતાવવામાં આવે છે"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"આ વાતચીતોને તમારી હોમ સ્ક્રીન પર તમે સરળતાથી બબલ સ્વરૂપમાં મેળવી શકશો"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"ખલેલ પાડશો નહીં સેટિંગમાં હસ્તક્ષેપ કરી શકે છે"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"સમજાઈ ગયું"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"સેટિંગ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"વિસ્તૃતીકરણ વિંડો"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"વિસ્તૃતીકરણ વિંડોના નિયંત્રણો"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"મોટું કરો"</string>
@@ -1044,8 +1051,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"નીચે જમણે ખસેડો"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"કિનારી પર ખસેડો અને છુપાવો"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"કિનારીથી ખસેડો અને બતાવો"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"ટૉગલ કરો"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"ડિવાઇસનાં નિયંત્રણો"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"તમારા કનેક્ટ કરેલા ડિવાઇસ માટે નિયંત્રણો ઉમેરો"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"ડિવાઇસનાં નિયંત્રણો સેટઅપ કરો"</string>
@@ -1092,8 +1098,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"છોડી દો"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"ફરી શરૂ કરો"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"સેટિંગ"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"ચલાવો"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"નિષ્ક્રિય, ઍપને ચેક કરો"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"ભૂલ, ફરી પ્રયાસ કરી રહ્યા છીએ…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"મળ્યું નથી"</string>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index 6b03458..6daea18 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"मोबाइल हॉटस्पॉट को बंद किया गया."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"मोबाइल हॉटस्पॉट को चालू किया गया."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"स्क्रीन कास्ट करना रुक गया."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"वर्क मोड बंद है."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"वर्क मोड चालू है."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"वर्क मोड बंद कर दिया गया."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"वर्क मोड चालू किया गया."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"डेटा बचाने की सेटिंग बंद कर दी गई है."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"डेटा बचाने की सेटिंग चालू कर दी गई है."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> सीमा"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> चेतावनी"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"वर्क प्रोफ़ाइल"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"नाइट लाइट"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"शाम को चालू की जाएगी"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"सुबह तक चालू रहेगी"</string>
@@ -493,7 +497,7 @@
<string name="user_logout_notification_text" msgid="7441286737342997991">"मौजूदा उपयोगकर्ता से प्रस्थान करें"</string>
<string name="user_logout_notification_action" msgid="7974458760719361881">"उपयोगकर्ता को प्रस्थान करवाएं"</string>
<string name="user_add_user_title" msgid="4172327541504825032">"नया उपयोगकर्ता जोड़ें?"</string>
- <string name="user_add_user_message_short" msgid="2599370307878014791">"जब आप कोई नया उपयोगकर्ता जोड़ते हैं तो उस व्यक्ति को अपनी जगह सेट करनी होती है.\n\nकोई भी उपयोगकर्ता बाकी सभी उपयोगकर्ताओं के लिए ऐप्लिकेशन अपडेट कर सकता है."</string>
+ <string name="user_add_user_message_short" msgid="2599370307878014791">"जब आप कोई नया उपयोगकर्ता जोड़ते हैं, तो उसे अपनी जगह सेट करनी होती है.\n\nकोई भी उपयोगकर्ता बाकी सभी उपयोगकर्ताओं के लिए ऐप्लिकेशन अपडेट कर सकता है."</string>
<string name="user_limit_reached_title" msgid="2429229448830346057">"अब और उपयोगकर्ता नहीं जोड़े जा सकते"</string>
<plurals name="user_limit_reached_message" formatted="false" msgid="2573535787802908398">
<item quantity="one">आप ज़्यादा से ज़्यादा <xliff:g id="COUNT">%d</xliff:g> उपयोगकर्ता जोड़ सकते हैं.</item>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"वॉलेट"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"सभी दिखाएं"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"पैसे चुकाने के लिए, डिवाइस अनलॉक करें"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"तैयार है"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"पेमेंट करने का तरीका सेट अप करें"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"इस्तेमाल करने के लिए, डिवाइस अनलॉक करें"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"आपके कार्ड की जानकारी पाने में कोई समस्या हुई है. कृपया बाद में कोशिश करें"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"वर्क प्रोफ़ाइल"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"हवाई जहाज़ मोड"</string>
<string name="add_tile" msgid="6239678623873086686">"टाइल जोड़ें"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>स्थिति:</b> लेवल घटाकर, साइलेंट पर सेट किया गया"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>स्थिति:</b> रैंकिंग में ऊपर किया गया"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>स्थिति:</b> रैंकिंग में नीचे किया गया"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"प्राथमिकता मोड चालू होने के बावजूद, यह आपकी सूचनाओं में हमेशा सबसे ऊपर दिखता है"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"यह कई तरीकों से दिखती है, जैसे कि लॉक स्क्रीन पर प्रोफ़ाइल फ़ोटो के तौर पर और बातचीत वाली सूचनाओं में सबसे ऊपर"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"यह कई तरीकों से दिखती है, जैसे कि बातचीत वाली सूचनाओं में सबसे ऊपर, बबल के तौर पर, और लॉक स्क्रीन पर प्रोफ़ाइल फ़ोटो के तौर पर"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"यह कई तरीकों से दिखती है, जैसे कि लॉक स्क्रीन पर प्रोफ़ाइल फ़ोटो के तौर पर और बातचीत वाली सूचनाओं में सबसे ऊपर. साथ ही, इसकी वजह से, \'परेशान न करें\' सुविधा में भी रुकावट आती है"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"यह कई तरीकों से दिखती है, जैसे कि बातचीत वाली सूचनाओं में सबसे ऊपर, बबल के तौर पर, और लॉक स्क्रीन पर प्रोफ़ाइल फ़ोटो के तौर पर. साथ ही, इसकी वजह से, \'परेशान न करें\' सुविधा में भी रुकावट आती है"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"सेटिंग"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"अहम बातचीत"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"प्राथमिकता"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> पर बातचीत की सुविधाएं काम नहीं करतीं"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"ये सूचनाएं नहीं बदली जा सकती हैं."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"सूचनाओं के इस समूह को यहां कॉन्फ़िगर नहीं किया जा सकता"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"चालू"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"बंद"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"उपलब्ध नहीं है"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"नेविगेशन बार"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"लेआउट"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"कुछ और बाएं बटन के प्रकार"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"सिस्टम नेविगेशन अपडेट हो गया. बदलाव करने के लिए \'सेटिंग\' पर जाएं."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"सिस्टम नेविगेशन अपडेट करने के लिए \'सेटिंग\' में जाएं"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्टैंडबाई"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"बातचीत को \'अहम बातचीत\' के तौर पर सेट किया गया है"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"अहम बातचीत"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ये बातचीत आपकी सूची में सबसे ऊपर दिखती हैं. साथ ही, अगर आपने प्राथमिकता मोड चालू किया है, तो ये आपको हमेशा दिखेंगी"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"प्रोफ़ाइल फ़ोटो, लॉक स्क्रीन पर दिखती हैं"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"आप इन बातचीत को अपनी होम स्क्रीन पर मौजूद बबल्स में, आसानी से देख सकते हैं"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"\'परेशान न करें\' मोड में रुकावट"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"ठीक है"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"सेटिंग"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"स्क्रीन को बड़ा करके दिखाने वाली विंडो"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"स्क्रीन को बड़ा करके दिखाने वाली विंडो के नियंत्रण"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ज़ूम इन करें"</string>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 3b4d034..b99d1b0 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobilna žarišna točka isključena."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobilna žarišna točka uključena."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Emitiranje zaslona zaustavljeno."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Način rada isključen."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Način rada uključen."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Način rada isključen."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Način rada uključen."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Štednja podatkovnog prometa isključena."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Štednja podatkovnog prometa uključena."</string>
@@ -412,6 +414,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Ograničenje od <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Upozorenje <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Poslovni profil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Noćno svjetlo"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Uključuje se u suton"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Do izlaska sunca"</string>
@@ -671,10 +675,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Novčanik"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Prikaži sve"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Otključajte da biste platili"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Spremno"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Postavi plaćanje"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Otključajte da biste koristili"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Pojavio se problem prilikom dohvaćanja kartica, pokušajte ponovo kasnije"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Poslovni profil"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Način rada u zrakoplovu"</string>
<string name="add_tile" msgid="6239678623873086686">"Dodavanje pločice"</string>
@@ -743,9 +749,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> prebačena u bešumnu"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> više rangirana"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> niže rangirana"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Uvijek se prikazuje pri vrhu obavijesti, čak i kada je uključen način prioritetnih obavijesti"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Prikazuje se pri vrhu obavijesti razgovora i kao profilna slika na zaključanom zaslonu"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Prikazuje se pri vrhu obavijesti razgovora i kao profilna slika na zaključanom zaslonu, izgleda kao oblačić"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Prikazuje se pri vrhu obavijesti razgovora i kao profilna slika na zaključanom zaslonu, prekida Ne uznemiravaj"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Prikazuje se pri vrhu obavijesti razgovora i kao profilna slika na zaključanom zaslonu, izgleda kao oblačić, prekida Ne uznemiravaj"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Postavke"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioritetni razgovori"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritet"</string>
<string name="no_shortcut" msgid="8257177117568230126">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> ne podržava značajke razgovora"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Te se obavijesti ne mogu izmijeniti."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Ta se grupa obavijesti ne može konfigurirati ovdje"</string>
@@ -863,6 +872,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Uključeno"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Isključeno"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Nedostupno"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigacijska traka"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Izgled"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Vrsta dodatnog lijevog gumba"</string>
@@ -1021,14 +1032,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Ažurirana je navigacija sustavom. Možete je promijeniti u Postavkama."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Navigaciju sustavom možete ažurirati u Postavkama"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje mirovanja"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Razgovor postavljen na prioritetan"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioritetni razgovori"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Ti se razgovori prikazuju pri vrhu vašeg popisa i mogu se uvijek prikazati kad je uključen način prioritetnih obavijesti"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profilne slike prikazuju se na zaključanom zaslonu"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Te razgovore možete jednostavno pronaći u oblačićima na početnom zaslonu"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Prekida Ne uznemiravaj"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Shvaćam"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Postavke"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Prozor za povećavanje"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrole prozora za povećavanje"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Povećaj"</string>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 1940cd5..3ac3d0d 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"A mobil hotspot kikapcsolva."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"A mobil hotspot bekapcsolva."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"A képernyő átküldése leállítva."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Munka mód ki."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Munka mód be."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Munka mód kikapcsolva."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Munka mód bekapcsolva."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Adatforgalom-csökkentő kikapcsolva."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Adatforgalom-csökkentő bekapcsolva."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> korlát"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Figyelem! <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Munkaprofil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Éjszakai fény"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Be: naplemente"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Napfelkeltéig"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Összes mutatása"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Feloldás a fizetéshez"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Kész"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Fizetési mód beállítása"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Oldja fel a használathoz"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Probléma merült fel a kártyák lekérésekor, próbálja újra később"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Munkahelyi profil"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Repülős üzemmód"</string>
<string name="add_tile" msgid="6239678623873086686">"Mozaik hozzáadása"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Állapot:</b> némára állítva"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Állapot:</b> előrébb sorolva"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Állapot:</b> hátrébb sorolva"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Még akkor is az értesítések tetején jelenik meg, ha a Prioritásos mód be van kapcsolva"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"A beszélgetésekre vonatkozó értesítések tetején látható, és megjeleníti a profilképet a lezárási képernyőn"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"A beszélgetésekre vonatkozó értesítések tetején, lebegő buborékként látható, és megjeleníti a profilképet a lezárási képernyőn"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"A beszélgetésekre vonatkozó értesítések tetején látható, megjeleníti a profilképet a lezárási képernyőn, és megszakítja a Ne zavarjanak funkciót"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"A beszélgetésekre vonatkozó értesítések tetején, lebegő buborékként látható, megjeleníti a profilképet a lezárási képernyőn, és megszakítja a Ne zavarjanak funkciót"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Beállítások"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Fontos beszélgetések"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritás"</string>
<string name="no_shortcut" msgid="8257177117568230126">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> nem támogatja a beszélgetési funkciókat"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Ezeket az értesítéseket nem lehet módosítani."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Az értesítések jelen csoportját itt nem lehet beállítani"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Be"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Ki"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Nem használható"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigációs sáv"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Elrendezés"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"További bal oldali gombtípus"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"A rendszer-navigáció módja megváltozott. Módosításához nyissa meg a Beállításokat."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"A rendszer-navigációs lehetőségeket a Beállításokban módosíthatja"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Készenléti mód"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Fontosnak beállított beszélgetés"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Fontos beszélgetések"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Ezek a beszélgetések a lista tetején jelennek meg, és mindig megkapja őket, ha a Prioritásos mód be van kapcsolva"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"A profilképek mindig megjelennek a lezárási képernyőn"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Ezeket a beszélgetéseket könnyedén megtalálja a kezdőképernyő tetején lévő buborékokban"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Megszakítják a Ne zavarjanak módot"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Értem"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Beállítások"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Nagyítás ablaka"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Nagyítási vezérlők ablaka"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Nagyítás"</string>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index b697509..bf0ed53 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Շարժական կապի WiFi ցրիչն անջատվեց:"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Շարժական կապի WiFi ցրիչը միացավ:"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Էկրանի հեռարձակումն ընդհատվեց:"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Աշխատանքային ռեժիմն անջատված է:"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Աշխատանքային ռեժիմը միացված է:"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Աշխատանքային ռեժիմն անջատվեց:"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Աշխատանքային ռեժիմը միացվեց:"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Տվյալների խնայումն անջատվեց:"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Թրաֆիկի տնտեսումը միացվեց:"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Սահմանաչափ՝ <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> զգուշացում"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Աշխատանքային պրոֆիլ"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Գիշերային ռեժիմ"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Կմիացվի մայրամուտին"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Մինչև լուսաբաց"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Դրամապանակ"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Ցույց տալ բոլորը"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Ապակողպել՝ վճարելու համար"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Պատրաստ է"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Ավելացնել վճարման եղանակ"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Ապակողպել՝ օգտագործելու համար"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Չհաջողվեց բեռնել քարտերը։ Նորից փորձեք։"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Android for Work-ի պրոֆիլ"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Ավիառեժիմ"</string>
<string name="add_tile" msgid="6239678623873086686">"Սալիկի ավելացում"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Կարգավիճակը․</b> իջեցվել է և դարձել անձայն"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Կարգավիճակը․</b> կարևորության մակարդակը բարձրացվել է"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Կարգավիճակը․</b> կարևորության մակարդակն իջեցվել է"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Այն միշտ ցուցադրվում է ձեր ծանուցումների վերևում, անգամ եթե միացված է առաջնահերթության ռեժիմը։"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Ցուցադրվում է զրույցների ծանուցումների վերևում, ինչպես նաև կողպէկրանին որպես պրոֆիլի նկար"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Ցուցադրվում է զրույցների ծանուցումների վերևում, ինչպես նաև կողպէկրանին որպես պրոֆիլի նկար, հայտնվում է ամպիկի տեսքով"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Ցուցադրվում է զրույցների ծանուցումների վերևում, ինչպես նաև կողպէկրանին որպես պրոֆիլի նկար, ընդհատում է «Չանհանգստացնել» ռեժիմը"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Ցուցադրվում է զրույցների ծանուցումների վերևում, ինչպես նաև կողպէկրանին որպես պրոֆիլի նկար, հայտնվում է ամպիկի տեսքով, ընդհատում է «Չանհանգստացնել» ռեժիմը"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Կարգավորումներ"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Կարևոր զրույցներ"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Կարևոր"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածը զրույցի գործառույթներ չի աջակցում"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Այս ծանուցումները չեն կարող փոփոխվել:"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Ծանուցումների տվյալ խումբը հնարավոր չէ կարգավորել այստեղ"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Միացված է"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Անջատված է"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Հասանելի չէ"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Նավիգացիայի գոտի"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Դասավորություն"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Լրացուցիչ ձախ կոճակի տեսակ"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Համակարգի նավիգացիան թարմացվեց: Փոփոխություններ անելու համար անցեք կարգավորումներ:"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Թարմացրեք համակարգի նավիգացիան կարգավորումներում"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Սպասման ռեժիմ"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Զրույցը նշված է որպես կարևոր"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Կարևոր զրույցներ"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Այս զրույցները ցուցադրվում են ցանկի վերևում, և դուք կարող եք դրանք կարդալ, անգամ եթե միացված է առաջնահերթության ռեժիմը։"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Պրոֆիլի նկարները ցուցադրվում են կողպէկրանին"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Այս զրույցները կարող եք գտնել ամպիկներում՝ ձեր հիմնական էկրանին"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Ընդհատել «Չանհանգստացնել» ռեժիմը"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Եղավ"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Կարգավորումներ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Խոշորացման պատուհան"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Խոշորացման պատուհանի կառավարման տարրեր"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Մեծացնել"</string>
@@ -1044,8 +1047,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Տեղափոխել ներքև՝ աջ"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Տեղափոխել եզրից դուրս և թաքցնել"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Տեղափոխել եզրից դուրս և ցուցադրել"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"միացնել/անջատել"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Սարքերի կառավարման տարրեր"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Ավելացրեք կառավարման տարրեր ձեր միացված սարքերի համար"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Սարքերի կառավարման տարրերի կարգավորում"</string>
@@ -1092,8 +1094,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Փակել"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Շարունակել"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Կարգավորումներ"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Նվագարկել"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Ակտիվ չէ, ստուգեք հավելվածը"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Սխալ. նորից ենք փորձում…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Չի գտնվել"</string>
@@ -1154,5 +1155,5 @@
<string name="accessibility_udfps_disabled_button" msgid="4284034245130239384">"Մատնահետքի սկաներն անջատված է"</string>
<string name="accessibility_authenticate_hint" msgid="798914151813205721">"նույնականացնել"</string>
<string name="accessibility_enter_hint" msgid="2617864063504824834">"նշել սարքը"</string>
- <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Օգտագործեք մատնահետք՝ բացելու համար"</string>
+ <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"Բացելու համար օգտագործեք մատնահետքը"</string>
</resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index d9dae92..2d26a47 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Hotspot seluler dinonaktifkan."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Hotspot seluler diaktifkan."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Transmisi layar berhenti."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Mode kerja nonaktif."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Mode kerja aktif."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Mode kerja dinonaktifkan."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Mode kerja diaktifkan."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Penghemat Data nonaktif."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Penghemat Data diaktifkan."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Batas <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Peringatan <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Profil kerja"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Cahaya Malam"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Aktif saat malam"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Sampai pagi"</string>
@@ -524,7 +528,7 @@
<string name="profile_owned_footer" msgid="2756770645766113964">"Profil dapat dipantau"</string>
<string name="vpn_footer" msgid="3457155078010607471">"Jaringan mungkin dipantau"</string>
<string name="branded_vpn_footer" msgid="816930186313188514">"Jaringan mungkin dipantau"</string>
- <string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Perangkat ini dikelola oleh orang tua"</string>
+ <string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"Perangkat ini dikelola oleh orang tuamu"</string>
<string name="quick_settings_disclosure_management_monitoring" msgid="8231336875820702180">"Organisasi Anda memiliki perangkat ini dan mungkin memantau traffic jaringan"</string>
<string name="quick_settings_disclosure_named_management_monitoring" msgid="2831423806103479812">"<xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> memiliki perangkat ini dan mungkin memantau traffic jaringan"</string>
<string name="quick_settings_financed_disclosure_named_management" msgid="2307703784594859524">"Perangkat ini disediakan oleh <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Tampilkan semua"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Buka kunci untuk membayar"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Siap"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Siapkan pembayaran"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Buka kunci untuk menggunakan"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Terjadi masalah saat mendapatkan kartu Anda, coba lagi nanti"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profil kerja"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Mode pesawat"</string>
<string name="add_tile" msgid="6239678623873086686">"Tambahkan ubin"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Didemosikan menjadi Senyap"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Diberi Peringkat Lebih Tinggi"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> Diberi Peringkat Lebih Rendah"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Selalu tampilkan di notifikasi paling atas, meski Mode prioritas aktif"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Muncul di atas notifikasi percakapan dan sebagai foto profil di layar kunci"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Muncul di atas notifikasi percakapan dan sebagai foto profil di layar kunci, ditampilkan sebagai balon"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Muncul di atas notifikasi percakapan dan sebagai foto profil di layar kunci, mengganggu fitur Jangan Ganggu"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Muncul di atas notifikasi percakapan dan sebagai foto profil di layar kunci, ditampilkan sebagai balon, mengganggu fitur Jangan Ganggu"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Setelan"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Percakapan prioritas"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritas"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> tidak mendukung fitur percakapan"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Notifikasi ini tidak dapat diubah."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Grup notifikasi ini tidak dapat dikonfigurasi di sini"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Aktif"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Nonaktif"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Tidak tersedia"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Bilah navigasi"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Tata Letak"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Jenis tombol ekstra kiri"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigasi sistem diupdate. Untuk melakukan perubahan, buka Setelan."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Buka Setelan untuk mengupdate navigasi sistem"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Siaga"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Percakapan ditetapkan jadi prioritas"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Percakapan prioritas"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Percakapan ini akan ditampilkan di daftar paling atas dan selalu ditampilkan untuk Anda saat Mode prioritas aktif"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Foto profil ditampilkan di layar kunci"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Anda dapat mudah menemukan percakapan ini dalam balon di Layar utama"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Mengganggu fitur Jangan Ganggu"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Oke"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Setelan"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Jendela Pembesaran"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrol Jendela Pembesaran"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Perbesar"</string>
@@ -1044,8 +1047,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Pindahkan ke kanan bawah"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Pindahkan ke tepi dan sembunyikan"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Pindahkan dari tepi dan tampilkan"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"alihkan"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Kontrol perangkat"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Tambahkan kontrol untuk perangkat terhubung"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Siapkan kontrol perangkat"</string>
@@ -1092,8 +1094,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Tutup"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Lanjutkan"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Setelan"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Putar"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Nonaktif, periksa aplikasi"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Error, mencoba lagi..."</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Tidak ditemukan"</string>
@@ -1113,7 +1114,7 @@
<string name="media_output_dialog_disconnected" msgid="1834473104836986046">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (terputus)"</string>
<string name="media_output_dialog_connect_failed" msgid="3225190634236259010">"Tidak dapat terhubung. Coba lagi."</string>
<string name="media_output_dialog_pairing_new" msgid="9099497976087485862">"Sambungkan perangkat baru"</string>
- <string name="build_number_clip_data_label" msgid="3623176728412560914">"Nomor versi"</string>
+ <string name="build_number_clip_data_label" msgid="3623176728412560914">"Nomor build"</string>
<string name="build_number_copy_toast" msgid="877720921605503046">"Nomor versi disalin ke papan klip."</string>
<string name="basic_status" msgid="2315371112182658176">"Membuka percakapan"</string>
<string name="select_conversation_title" msgid="6716364118095089519">"Widget Percakapan"</string>
diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml
index aaf2b5d..7008133 100644
--- a/packages/SystemUI/res/values-is/strings.xml
+++ b/packages/SystemUI/res/values-is/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Slökkt á farsímaaðgangsstað."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Kveikt á farsímaaðgangsstað."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Skjáútsendingu hætt."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Slökkt á vinnustillingu."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Kveikt á vinnustillingu."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Slökkt á vinnustillingu."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Kveikt á vinnustillingu."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Slökkt var á gagnasparnaði."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Kveikt var á gagnasparnaði."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> hámark"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> viðvörun"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Vinnusnið"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Næturljós"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Kveikt við sólsetur"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Til sólarupprásar"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Veski"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Sýna allt"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Taka úr lás til að greiða"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Tilbúið"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Setja upp greiðslu"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Taktu úr lás til að nota"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Vandamál kom upp við að sækja kortin þín. Reyndu aftur síðar"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Vinnusnið"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Flugstilling"</string>
<string name="add_tile" msgid="6239678623873086686">"Bæta reit við"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Staða:</b> var gerð þögul"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Staða:</b> fékk hærri stöðu"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Staða:</b> fékk lægri stöðu"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Sýna alltaf efst í tilkynningum þó svo að kveikt sé á forgangsstillingu"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Birtist efst í samtalstilkynningum og sem prófílmynd á lásskjánum"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Birtist efst í samtalstilkynningum og sem prófílmynd á lásskjánum, birtist sem blaðra"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Birtist efst í samtalstilkynningum og sem prófílmynd á lásskjánum. Truflar „Ónáðið ekki“"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Birtist efst í samtalstilkynningum og sem prófílmynd á lásskjánum. Birtist sem blaðra sem truflar „Ónáðið ekki“"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Áfram"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Forgangssamtöl"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Forgangur"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> styður ekki samtalseiginleika"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Ekki er hægt að breyta þessum tilkynningum."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Ekki er hægt að stilla þessar tilkynningar hér"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Kveikt"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Slökkt"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Ekki í boði"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Yfirlitsstika"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Útlit"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Gerð aukahnapps til vinstri"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Kerfisstjórnun uppfærð. Þú getur breytt þessu í stillingunum."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Farðu í stillingar til að uppfæra kerfisstjórnun"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Biðstaða"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Samtal sett í forgang"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Forgangssamtöl"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Þessi samtöl birtast efst á listanum og þú getur alltaf séð þau þegar kveikt er á forgangsstillingu"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Prófílmyndir birtast á lásskjánum"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Þú finnur samtölin auðveldlega í blöðrum á heimaskjánum þínum"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Stöðva „Ónáðið ekki“"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Ég skil"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Stillingar"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Stækkunargluggi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Stækkunarstillingar glugga"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Auka aðdrátt"</string>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 40294d5..08bd2c5 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Hotspot mobile disattivato."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Hotspot mobile attivato."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Trasmissione dello schermo interrotta."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Modalità Lavoro non attiva."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Modalità Lavoro attiva."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Modalità Lavoro disattivata."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Modalità Lavoro attivata."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Funzione Risparmio dati disattivata."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Funzione Risparmio dati attivata."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limite di <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Avviso <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Profilo di lavoro"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Luminosità notturna"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Attivata al tramonto"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Fino all\'alba"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Portafoglio"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Espandi"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Sblocca per pagare"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Pronto"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configura un metodo di pagamento"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Sblocca per usare"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Si è verificato un problema durante il recupero delle tue carte. Riprova più tardi."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profilo di lavoro"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Modalità aereo"</string>
<string name="add_tile" msgid="6239678623873086686">"Aggiungi riquadro"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Stato:</b> retrocessa a Silenziosa"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Stato:</b> posizionata più in alto"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Stato:</b> posizionata più in basso"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Queste conversazioni vengono mostrate sempre in cima alle notifiche, anche quando la modalità Priorità è attiva"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Appare in cima alle notifiche delle conversazioni e compare come immagine del profilo nella schermata di blocco"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Appare in cima alle notifiche delle conversazioni, nonché compare come immagine del profilo nella schermata di blocco e come bolla"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Appare in cima alle notifiche delle conversazioni, interrompe la modalità Non disturbare e compare come immagine del profilo nella schermata di blocco"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Appare in cima alle notifiche delle conversazioni, interrompe la modalità Non disturbare, nonché compare come immagine del profilo nella schermata di blocco e come bolla"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Impostazioni"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Conversazioni prioritarie"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priorità"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> non supporta le funzionalità delle conversazioni"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Impossibile modificare queste notifiche."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Qui non è possibile configurare questo gruppo di notifiche"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"On"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Off"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Non disponibile"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Barra di navigazione"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Tipo di pulsante extra sinistra"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigazione del sistema aggiornata. Per apportare modifiche, usa le Impostazioni."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Usa le Impostazioni per aggiornare la navigazione del sistema"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Conversazione impostata come prioritaria"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Conversazioni prioritarie"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Queste conversazioni si trovano in cima all\'elenco e possono essere sempre mostrate quando la modalità Priorità è attiva"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Le immagini del profilo vengono mostrate nella schermata di blocco"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Puoi trovare facilmente queste conversazioni all\'interno di bolle nella schermata Home"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interrompono la modalità Non disturbare"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Impostazioni"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Finestra ingrandimento"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Finestra controlli di ingrandimento"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Aumenta lo zoom"</string>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 0a9cceb..c50802b 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"נקודת האינטרנט (hotspot) כבויה."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"נקודת האינטרנט (hotspot) מופעלת."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"העברת המסך הופסקה."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"מצב עבודה כבוי."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"מצב עבודה מופעל."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"מצב עבודה הושבת."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"מצב עבודה הופעל."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"חוסך הנתונים (Data Saver) כובה."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"חוסך הנתונים (Data Saver) הופעל."</string>
@@ -414,6 +416,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"הגבלה של <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"אזהרה – <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"פרופיל עבודה"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"תאורת לילה"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"התכונה מופעלת בשקיעה"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"עד הזריחה"</string>
@@ -674,10 +678,12 @@
<string name="wallet_title" msgid="5369767670735827105">"ארנק"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"הצגת הכול"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"לביטול הנעילה ולתשלום"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"מוכן"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"הגדרת אמצעי התשלום"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"יש לבטל את הנעילה כדי להשתמש"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"הייתה בעיה בקבלת הכרטיסים שלך. כדאי לנסות שוב מאוחר יותר"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"פרופיל עבודה"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"מצב טיסה"</string>
<string name="add_tile" msgid="6239678623873086686">"הוספת אריח"</string>
@@ -746,9 +752,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>הסטטוס:</b> הורד בדרגה ל\'שקט\'"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>הסטטוס:</b> דורג גבוה יותר"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>הסטטוס:</b> דורג נמוך יותר"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"תמיד מוצגות בראש ההתראות, גם כשמצב העדיפות פועל"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"מוצגת בחלק העליון של קטע ההתראות וכתמונת פרופיל במסך הנעילה"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"מוצגת בחלק העליון של קטע התראות השיחה וכתמונת פרופיל במסך הנעילה, מופיעה בבועה הצפה"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"מוצגת בחלק העליון של קטע התראות השיחה וכתמונת פרופיל במסך הנעילה, מפריעה במצב \'נא לא להפריע\'"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"מוצגת בחלק העליון של קטע התראות השיחה וכתמונת פרופיל במסך הנעילה, מופיעה בבועה הצפה ומפריעה במצב \'נא לא להפריע\'"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"הגדרות"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"שיחות בעדיפות גבוהה"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"עדיפות"</string>
<string name="no_shortcut" msgid="8257177117568230126">"האפליקציה <xliff:g id="APP_NAME">%1$s</xliff:g> לא תומכת בתכונות השיחה"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"לא ניתן לשנות את ההתראות האלה."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"לא ניתן להגדיר כאן את קבוצת ההתראות הזו"</string>
@@ -868,6 +877,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"פועל"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"כבוי"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"לא זמין"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"סרגל ניווט"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"פריסה"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"סוג נוסף של לחצן שמאלי"</string>
@@ -1026,14 +1037,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"הניווט במערכת עודכן. אפשר לערוך שינויים דרך ההגדרות."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"יש לעבור להגדרות כדי לעדכן את הניווט במערכת"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"המתנה"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"השיחה הוגדרה כבעלת עדיפות גבוהה"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"שיחות בעדיפות גבוהה"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"השיחות האלה מוצגות בראש הרשימה והן יופיעו כל עוד מצב העדיפות פועל"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"תמונות הפרופיל מוצגות במסך הנעילה"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"קל למצוא את השיחות האלה בבועות המופיעות במסך הבית"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"גוברות על ההגדרה \'נא לא להפריע\'"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"הבנתי"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"הגדרות"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"חלון הגדלה"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"בקרות של חלון ההגדלה"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"התקרבות"</string>
@@ -1054,8 +1057,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"העברה לפינה הימנית התחתונה"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"העברה לשוליים והסתרה"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"העברה מהשוליים והצגה"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"החלפת מצב"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"פקדי מכשירים"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"יש להוסיף פקדים למכשירים המחוברים"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"הגדרה של פקדי מכשירים"</string>
@@ -1104,8 +1106,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"סגירה"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"המשך"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"הגדרות"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"הפעלה"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"לא פעיל, יש לבדוק את האפליקציה"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"שגיאה, מתבצע ניסיון חוזר…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"לא נמצא"</string>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 97d94ab..852d75b 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"モバイルアクセスポイントをOFFにしました。"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"モバイルアクセスポイントをONにしました。"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"画面のキャストが停止しました。"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Work モードがオフです。"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Work モードがオンです。"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Work モードをオフにしました。"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Work モードをオンにしました。"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"データセーバーが OFF になりました。"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"データセーバーが ON になりました。"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"上限: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"警告: 上限は<xliff:g id="DATA_LIMIT">%s</xliff:g>です"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"仕事用プロファイル"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"夜間モード"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"日の入りに ON"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"日の出まで"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"ウォレット"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"すべて表示"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ロックを解除して支払う"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"準備完了"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"お支払いの設定"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ロックを解除して使用"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"カードの取得中に問題が発生しました。しばらくしてからもう一度お試しください"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"仕事用プロファイル"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"機内モード"</string>
<string name="add_tile" msgid="6239678623873086686">"タイルを追加"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>ステータス:</b> ランクがサイレントに下がりました"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>ステータス:</b> ランクが上がりました"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>ステータス:</b> ランクが下がりました"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"優先モードが ON の場合でも、常に通知の一番上に表示されます"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"会話通知の一番上に表示されると同時に、ロック画面にプロフィール写真として表示されます"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"会話通知の一番上に表示されると同時に、ロック画面にプロフィール写真として表示されるほか、バブルとして表示されます"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"会話通知の一番上に表示されると同時に、ロック画面にプロフィール写真として表示され、サイレント モードが中断されます"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"会話通知の一番上に表示されると同時に、ロック画面にプロフィール写真として表示されるほか、バブルとして表示され、サイレント モードが中断されます"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"設定"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"優先度の高い会話"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"優先"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>は会話機能に対応していません"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"これらの通知は変更できません。"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"このグループの通知はここでは設定できません"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ON"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"OFF"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"使用不可"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"ナビゲーション バー"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"レイアウト"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"その他の左ボタンタイプ"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"システム ナビゲーションを更新しました。変更するには [設定] に移動してください。"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"システム ナビゲーションを更新するには [設定] に移動してください"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"スタンバイ"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"優先度を高く設定された会話"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"優先度の高い会話"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"優先モードが ON の場合、これらの会話はリストの一番上に表示されるのでいつでも確認できます"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"プロフィール写真がロック画面に表示されます"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"これらの会話はホーム画面のバブル内で簡単に確認できます"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"サイレント モードが ON でも表示"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"設定"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"拡大ウィンドウ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"拡大ウィンドウ コントロール"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"拡大"</string>
diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml
index df6aecb..d972b33 100644
--- a/packages/SystemUI/res/values-ka/strings.xml
+++ b/packages/SystemUI/res/values-ka/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"მობილური ქსელის წერტილი გამოირთო."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"მობილური ქსელის წერტილი ჩაირთო."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"ეკრანის გადაცემა შეჩერებულია."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"სამსახურის რეჟიმი გამორთულია."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"სამსახურის რეჟიმი ჩართულია."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"სამსახურის რეჟიმი გამორთულია."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"სამსახურის რეჟიმი ჩართულია."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"მონაცემთა დამზოგველი გამორთულია."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"მონაცემთა დამზოგველი ჩართულია."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"ლიმიტი: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> გაფრთხილება"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"სამსახურის პროფილი"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"ღამის განათება"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"ჩაირთოს მზის ჩასვლისას"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"მზის ამოსვლამდე"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"ყველას ჩვენება"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"გადასახდელად განბლოკვა"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"მზადაა"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"გადახდის დაყენება"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"გამოსაყენებლად განბლოკვა"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"თქვენი ბარათების მიღებისას პრობლემა წარმოიშვა. ცადეთ ხელახლა მოგვიანებით"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"სამსახურის პროფილი"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"თვითმფრინავის რეჟიმი"</string>
<string name="add_tile" msgid="6239678623873086686">"მოზაიკის დამატება"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>სტატუსი:</b> „უხმო“ სტატუსზე გადასული"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>სტატუსი:</b> უფრო პრიორიტეტული"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>სტატუსი:</b> ნაკლებად პრიორიტეტული"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"ყოველთვის განთავსებულია შეტყობინების ზემოთ, მაშინაც კი, როცა პრიორიტეტულობის რეჟიმი ჩართულია"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"გამოჩნდება საუბრის შეტყობინებების თავში და პროფილის სურათის სახით ჩაკეტილ ეკრანზე"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"გამოჩნდება საუბრის შეტყობინებების თავში და პროფილის სურათის სახით ჩაკეტილ ეკრანზე, ჩნდება ბუშტის სახით"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"გამოჩნდება საუბრის შეტყობინებების თავში და პროფილის სურათის სახით ჩაკეტილ ეკრანზე, წყვეტს ფუნქციას „არ შემაწუხოთ“"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"გამოჩნდება საუბრის შეტყობინებების თავში და პროფილის სურათის სახით ჩაკეტილ ეკრანზე, ჩნდება ბუშტის სახით, წყვეტს ფუნქციას „არ შემაწუხოთ“"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"პარამეტრები"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"პრიორიტეტული მიმოწერა"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"პრიორიტეტი"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ს არ აქვს მიმოწერის ფუნქციების მხარდაჭერა"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"ამ შეტყობინებების შეცვლა შეუძლებელია."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"შეტყობინებების ამ ჯგუფის კონფიგურირება აქ შეუძლებელია"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ჩართული"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"გამორთვა"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"მიუწვდომელი"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"ნავიგაციის ზოლი"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"განლაგება"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"მარცხენა დამატებითი ღილაკის ტიპი"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"სისტემური ნავიგაცია განახლდა. ცვლილებების შესატანად გადადით პარამეტრებზე."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"სისტემური ნავიგაციის გასაახლებლად გადადით პარამეტრებზე"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"მოლოდინის რეჟიმი"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"მიმოწერა დაყენებულია პრიორიტეტად"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"პრიორიტეტული მიმოწერა"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ეს მიმოწერა თქვენი სიის ზემოთ არის განთავსებული და ყოველთვის აქტიურდება, როცა პრიორიტეტულობის რეჟიმი ჩართულია"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"პროფილის სურათები ჩაკეტილ ეკრანზე ჩნდება"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"ამ მიმოწერის პოვნა შეგიძლიათ მთავარ ეკრანზე, ბუშტებში"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"„არ შემაწუხოთ“ რეჟიმის შეწყვეტა"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"გასაგებია"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"პარამეტრები"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"გადიდების ფანჯარა"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"გადიდების კონტროლის ფანჯარა"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"მასშტაბის გადიდება"</string>
@@ -1044,8 +1047,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"ქვემოთ და მარჯვნივ გადატანა"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"კიდეში გადატანა და დამალვა"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"კიდეში გადატანა და გამოჩენა"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"გადართვა"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"მოწყობილ. მართვის საშუალებები"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"მართვის საშუალებების დამატება თქვენს დაკავშირებულ მოწყობილობებზე"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"მოწყობილობის მართვის საშუალებების დაყენება"</string>
@@ -1092,8 +1094,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"დახურვა"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"გაგრძელება"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"პარამეტრები"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"დაკვრა"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"არააქტიურია, გადაამოწმეთ აპი"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"შეცდომა, ხელახალი მცდელობა…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"ვერ მოიძებნა"</string>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index 0a181b4..4a5f9d6 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -271,10 +271,10 @@
<string name="accessibility_quick_settings_bluetooth_connected" msgid="5237625393869747261">"Bluetooth қосылған."</string>
<string name="accessibility_quick_settings_bluetooth_changed_off" msgid="3344226652293797283">"Bluetooth өшірілді."</string>
<string name="accessibility_quick_settings_bluetooth_changed_on" msgid="1263282011749437549">"Bluetooth қосылды."</string>
- <string name="accessibility_quick_settings_location_off" msgid="6122523378294740598">"Орындар туралы есептер өшірулі."</string>
- <string name="accessibility_quick_settings_location_on" msgid="6869947200325467243">"Орындар туралы есептер қосулы."</string>
- <string name="accessibility_quick_settings_location_changed_off" msgid="5132776369388699133">"Орындар туралы есептер өшірілді."</string>
- <string name="accessibility_quick_settings_location_changed_on" msgid="7159115433070112154">"Орындар туралы есептер қосылды."</string>
+ <string name="accessibility_quick_settings_location_off" msgid="6122523378294740598">"Геодерек жіберу функциясы өшірулі."</string>
+ <string name="accessibility_quick_settings_location_on" msgid="6869947200325467243">"Геодерек жіберу функциясы қосулы."</string>
+ <string name="accessibility_quick_settings_location_changed_off" msgid="5132776369388699133">"Геодерек жіберу функциясы өшірілді."</string>
+ <string name="accessibility_quick_settings_location_changed_on" msgid="7159115433070112154">"Геодерек жіберу функциясы қосылды."</string>
<string name="accessibility_quick_settings_alarm" msgid="558094529584082090">"Дабыл <xliff:g id="TIME">%s</xliff:g> уақытына реттелген."</string>
<string name="accessibility_quick_settings_close" msgid="2974895537860082341">"Тақтаны жабу."</string>
<string name="accessibility_quick_settings_more_time" msgid="7646479831704665284">"Көбірек уақыт."</string>
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Мобильді хотспот өшірілді."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Мобильді хотспот қосылды."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Экранды трансляциялау тоқтатылды."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Жұмыс режимі өшірулі."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Жұмыс режимі қосулы."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Жұмыс режимі өшірілді."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Жұмыс режимі қосылды."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Трафикті үнемдеу режимі өшірілді."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Трафикті үнемдеу режимі қосылды."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> шегі"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> туралы ескерту"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Жұмыс профилі"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Түнгі жарық"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Күн батқанда қосу"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Күн шыққанға дейін"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Әмиян"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Барлығын көрсету"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Төлеу үшін құлыпты ашу"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Дайын"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Төлем әдісін реттеу"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Пайдалану үшін құлыпты ашу"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Карталарыңыз алынбады, кейінірек қайталап көріңіз."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Жұмыс профилі"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Ұшақ режимі"</string>
<string name="add_tile" msgid="6239678623873086686">"Тақтайша қосу"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Күйі:</b> \"Үнсіз\" санатына төмендетілген"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Күйі:</b> маңыздылық деңгейі көтерілген"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Күйі:</b> маңыздылық деңгейі төмендетілген"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Әрдайым (тіпті \"Маңызды\" режимі қосулы болса да) хабарландыруларыңыздың жоғарғы жағында көрсетіледі"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Әңгіме туралы хабарландырулардың жоғарғы жағында тұрады және құлыптаулы экранда профиль суреті ретінде көрсетіледі."</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Әңгіме туралы хабарландырулардың жоғарғы жағында тұрады және құлыптаулы экранда профиль суреті ретінде көрсетіледі, қалқымалы анықтама ретінде шығады."</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Әңгіме туралы хабарландырулардың жоғарғы жағында тұрады және құлыптаулы экранда профиль суреті ретінде көрсетіледі, \"Мазаламау\" режимін тоқтатады."</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Әңгіме туралы хабарландырулардың жоғарғы жағында тұрады және құлыптаулы экранда профиль суреті ретінде көрсетіледі, қалқымалы анықтама ретінде шығады, \"Мазаламау\" режимін тоқтатады."</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Параметрлер"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Маңызды чаттар"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Маңызды"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> әңгімелесу функцияларын қолдамайды."</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Бұл хабарландыруларды өзгерту мүмкін емес."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Мұндай хабарландырулар бұл жерде конфигурацияланбайды."</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Қосулы"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Өшірулі"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Қолжетімді емес"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Шарлау тақтасы"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Формат"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Қосымша сол жақ түйме түрі"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Жүйе навигациясы жаңартылды. Өзгерту енгізу үшін \"Параметрлер\" бөліміне өтіңіз."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Жүйе навигациясын жаңарту үшін \"Параметрлер\" бөліміне өтіңіз."</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Күту режимі"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Әңгіме маңызды деп белгіленді"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Маңызды чаттар"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Бұл чаттар тізіміңіздің жоғарғы жағында көрсетіледі және \"Маңызды\" режимі қосулы болған кезде әрдайым қолжетімді болады."</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Профиль суреттері құлыптаулы экранда көрсетіледі."</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Бұл чаттарды негізгі экрандағы қалқыма хабарлардан оңай таба аласыз."</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Мазаламау режимінде көрсетіледі."</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Түсінікті"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Параметрлер"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Ұлғайту терезесі"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ұлғайту терезесінің басқару элементтері"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Ұлғайту"</string>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index f872660..4618890 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"បានបិទហតស្ប៉តចល័ត។"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"បានបើកហតស្ប៉តចល័ត។"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"បានបញ្ឈប់ការចាត់ថ្នាក់អេក្រង់។"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"បិទរបៀបការងារ"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"បើករបៀបការងារ"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"បានបិទរបៀបការងារ"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"បានបើករបៀបការងារ"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"បានបិទកម្មវិធីសន្សំសំចៃទិន្នន័យ"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"បានបើកកម្មវិធីសន្សំសំចៃទិន្នន័យ"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"ដែនកំណត់ <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ការព្រមាន"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"កម្រងព័ត៌មានការងារ"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"ពន្លឺពេលយប់"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"បើកនៅពេលថ្ងៃលិច"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"រហូតដល់ពេលថ្ងៃរះ"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"កាបូប"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"បង្ហាញទាំងអស់"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ដោះសោដើម្បីបង់ប្រាក់"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"រួចរាល់"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"រៀបចំការបង់ប្រាក់"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ដោះសោដើម្បីប្រើប្រាស់"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"មានបញ្ហាក្នុងការទាញយកកាតរបស់អ្នក សូមព្យាយាមម្ដងទៀតនៅពេលក្រោយ"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"ប្រវត្តិរូបការងារ"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"ពេលជិះយន្តហោះ"</string>
<string name="add_tile" msgid="6239678623873086686">"បន្ថែមក្រឡាល្អិត"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>ស្ថានភាព៖</b> បានបញ្ចុះទៅស្ងាត់"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>ស្ថានភាព៖</b> បានចាត់ថ្នាក់ខ្ពស់ជាងមុន"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>ស្ថានភាព៖</b> បានចាត់ថ្នាក់ទាបជាងមុន"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"បង្ហាញនៅផ្នែកខាងលើការជូនដំណឹងរបស់អ្នកជានិច្ច ទោះបីជានៅពេលបើកមុខងារអាទិភាពក៏ដោយ"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"បង្ហាញនៅខាងលើការជូនដំណឹងអំពីការសន្ទនា និងជារូបភាពកម្រងព័ត៌មាននៅលើអេក្រង់ចាក់សោ"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"បង្ហាញនៅខាងលើការជូនដំណឹងអំពីការសន្ទនា និងជារូបភាពកម្រងព័ត៌មាននៅលើអេក្រង់ចាក់សោ បង្ហាញជាពពុះ"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"បង្ហាញនៅខាងលើការជូនដំណឹងអំពីការសន្ទនា និងជារូបភាពកម្រងព័ត៌មាននៅលើអេក្រង់ចាក់សោ បង្អាក់មុខងារកុំរំខាន"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"បង្ហាញនៅខាងលើការជូនដំណឹងអំពីការសន្ទនា និងជារូបភាពកម្រងព័ត៌មាននៅលើអេក្រង់ចាក់សោ បង្ហាញជាពពុះ បង្អាក់មុខងារកុំរំខាន"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"ការកំណត់"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"ការសន្ទនាអាទិភាព"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"អាទិភាព"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> មិនអាចប្រើមុខងារសន្ទនាបានទេ"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"មិនអាចកែប្រែការជូនដំណឹងទាំងនេះបានទេ។"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"មិនអាចកំណត់រចនាសម្ព័ន្ធក្រុមការជូនដំណឹងនេះនៅទីនេះបានទេ"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"បើក"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"បិទ"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"មិនមាន"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"របាររុករក"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"ប្លង់"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"ប្រភេទប៊ូតុងខាងឆ្វេងបន្ថែម"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"បានធ្វើបច្ចុប្បន្នភាពការរុករកក្នុងប្រព័ន្ធ។ ដើម្បីធ្វើការផ្លាស់ប្ដូរ សូមចូលទៅកាន់ការកំណត់។"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ចូលទៅកាន់ការកំណត់ ដើម្បីធ្វើបច្ចុប្បន្នភាពការរុករកក្នុងប្រព័ន្ធ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ផ្អាកដំណើរការ"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"បានកំណត់ការសន្ទនាជាអាទិភាព"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"ការសន្ទនាអាទិភាព"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ការសន្ទនាទាំងនេះបង្ហាញនៅផ្នែកខាងលើបញ្ជីរបស់អ្នក និងអាចបង្ហាញដល់អ្នកជានិច្ច នៅពេលបើកមុខងារអាទិភាព"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"រូបភាពកម្រងព័ត៌មានបង្ហាញនៅលើអេក្រង់ចាក់សោ"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"អ្នកអាចរកមើលការសន្ទនាទាំងនេះបានយ៉ាងងាយស្រួលនៅក្នុងពពុះនៅលើអេក្រង់ដើមរបស់អ្នក"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"ផ្អាកមុខងារកុំរំខាន"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"យល់ហើយ"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"ការកំណត់"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"វិនដូការពង្រីក"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"វិនដូគ្រប់គ្រងការពង្រីក"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ពង្រីក"</string>
@@ -1086,10 +1089,8 @@
<string name="controls_structure_tooltip" msgid="4355922222944447867">"អូសដើម្បីមើលច្រើនទៀត"</string>
<string name="controls_seeding_in_progress" msgid="3033855341410264148">"កំពុងផ្ទុកការណែនាំ"</string>
<string name="controls_media_title" msgid="1746947284862928133">"មេឌៀ"</string>
- <!-- no translation found for controls_media_close_session (1193000643003066508) -->
- <skip />
- <!-- no translation found for controls_media_active_session (3146882316024153337) -->
- <skip />
+ <string name="controls_media_close_session" msgid="1193000643003066508">"លាក់វគ្គមេឌៀនេះឬ?"</string>
+ <string name="controls_media_active_session" msgid="3146882316024153337">"មិនអាចលាក់វគ្គមេឌៀបច្ចុប្បន្នបានទេ។"</string>
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"ច្រានចោល"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"បន្ត"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"ការកំណត់"</string>
@@ -1154,6 +1155,5 @@
<string name="accessibility_udfps_disabled_button" msgid="4284034245130239384">"បានបិទឧបករណ៍ចាប់ស្នាមម្រាមដៃ"</string>
<string name="accessibility_authenticate_hint" msgid="798914151813205721">"ផ្ទៀងផ្ទាត់"</string>
<string name="accessibility_enter_hint" msgid="2617864063504824834">"បញ្ចូលឧបករណ៍"</string>
- <!-- no translation found for keyguard_try_fingerprint (2825130772993061165) -->
- <skip />
+ <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ប្រើស្នាមម្រាមដៃ ដើម្បីបើក"</string>
</resources>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index ffc634a..f782244 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"ಮೊಬೈಲ್ ಹಾಟ್ಸ್ಪಾಟ್ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"ಮೊಬೈಲ್ ಹಾಟ್ಸ್ಪಾಟ್ ಆನ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"ಸ್ಕ್ರೀನ್ ಪ್ರಸಾರವನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"ಕೆಲಸದ ಮೋಡ್ ಆಫ್ ಆಗಿದೆ."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"ಕೆಲಸದ ಮೋಡ್ ಆನ್ ಆಗಿದೆ."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"ಕೆಲಸದ ಮೋಡ್ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"ಕೆಲಸದ ಮೋಡ್ ಆನ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ಡೇಟಾ ಸೇವರ್ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ಡೇಟಾ ಸೇವರ್ ಆನ್ ಮಾಡಲಾಗಿದೆ."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ಮಿತಿ"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ಎಚ್ಚರಿಕೆ"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"ನೈಟ್ ಲೈಟ್"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"ಸೂರ್ಯಾಸ್ತದಲ್ಲಿ"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"ಸೂರ್ಯೋದಯದವರೆಗೆ"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"ವಾಲೆಟ್"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"ಎಲ್ಲವನ್ನೂ ತೋರಿಸಿ"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ಪಾವತಿಸಲು ಅನ್ಲಾಕ್ ಮಾಡಿ"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"ಸಿದ್ಧವಾಗಿದೆ"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"ಪಾವತಿಯನ್ನು ಸೆಟಪ್ ಮಾಡಿ"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ಬಳಸಲು ಅನ್ಲಾಕ್ ಮಾಡಿ"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"ನಿಮ್ಮ ಕಾರ್ಡ್ಗಳನ್ನು ಪಡೆಯುವಾಗ ಸಮಸ್ಯೆ ಉಂಟಾಗಿದೆ, ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್"</string>
<string name="add_tile" msgid="6239678623873086686">"ಟೈಲ್ ಸೇರಿಸಿ"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>ಸ್ಥಿತಿ:</b> ಸೈಲೆಂಟ್ಗೆ ಕೆಳದರ್ಜೆಗೆ ಇಳಿದಿದೆ"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>ಸ್ಥಿತಿ:</b> ಉನ್ನತ ಸ್ಥಾನವನ್ನು ಹೊಂದಿದೆ"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>ಸ್ಥಿತಿ:</b> ಕಡಿಮೆ ಸ್ಥಾನವನ್ನು ಹೊಂದಿದೆ"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"ಆದ್ಯತಾ ಮೋಡ್ ಆನ್ ಆಗಿದ್ದರೂ ಸಹ, ನಿಮ್ಮ ಅಧಿಸೂಚನೆಗಳ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಯಾವಾಗಲೂ ತೋರಿಸಲಾಗುತ್ತದೆ"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"ಆದ್ಯತೆಯ ಸಂಭಾಷಣೆಗಳು"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"ಆದ್ಯತೆ"</string>
<string name="no_shortcut" msgid="8257177117568230126">"ಸಂವಾದ ಫೀಚರ್ಗಳನ್ನು <xliff:g id="APP_NAME">%1$s</xliff:g> ಬೆಂಬಲಿಸುವುದಿಲ್ಲ"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"ಈ ಅಧಿಸೂಚನೆಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"ಈ ಗುಂಪಿನ ಅಧಿಸೂಚನೆಗಳನ್ನು ಇಲ್ಲಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿರುವುದಿಲ್ಲ"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ಆನ್"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ಆಫ್"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"ಲಭ್ಯವಿಲ್ಲ"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"ನ್ಯಾವಿಗೇಷನ್ ಬಾರ್"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"ಲೇಔಟ್"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"ಹೆಚ್ಚುವರಿ ಎಡ ಬಟನ್ ವಿಧ"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ಸಿಸ್ಟಂ ನ್ಯಾವಿಗೇಷನ ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗಿದೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು, ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಹೋಗಿ."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ಸಿಸ್ಟಂ ನ್ಯಾವಿಗೇಷನ್ ಅಪ್ಡೇಟ್ ಮಾಡಲು ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಹೋಗಿ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ಸ್ಟ್ಯಾಂಡ್ಬೈ"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"ಸಂವಾದವನ್ನು ಆದ್ಯತೆಯಾಗಿ ಹೊಂದಿಸಲಾಗಿದೆ"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"ಆದ್ಯತೆಯ ಸಂಭಾಷಣೆಗಳು"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ಈ ಸಂಭಾಷಣೆಗಳನ್ನು ನಿಮ್ಮ ಪಟ್ಟಿಯ ಮೇಲ್ಭಾಗದಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ ಮತ್ತು ಆದ್ಯತಾ ಮೋಡ್ ಆನ್ ಆಗಿರುವಾಗ ಯಾವಾಗಲೂ ನಿಮ್ಮನ್ನು ತಲುಪಬಹುದು"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"ಪ್ರೊಫೈಲ್ ಚಿತ್ರಗಳನ್ನು ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"ನಿಮ್ಮ ಹೋಮ್ ಸ್ಕ್ರೀನ್ನ ಬಬಲ್ಸ್ನಲ್ಲಿ ಈ ಸಂಭಾಷಣೆಗಳನ್ನು ನೀವು ಸುಲಭವಾಗಿ ಕಾಣಬಹುದು"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"ಅಡಚಣೆ ಮಾಡಬೇಡ ಅನ್ನು ಅಡ್ಡಿಪಡಿಸಿ"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"ಅರ್ಥವಾಯಿತು"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"ವರ್ಧನೆಯ ವಿಂಡೋ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ವರ್ಧನೆಯ ವಿಂಡೋ ನಿಯಂತ್ರಣಗಳು"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ಝೂಮ್ ಇನ್ ಮಾಡಿ"</string>
@@ -1044,8 +1051,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"ಕೆಳಗಿನ ಬಲಭಾಗಕ್ಕೆ ಸರಿಸಿ"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"ಅಂಚಿಗೆ ಸರಿಸಿ ಮತ್ತು ಮರೆಮಾಡಿ"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"ಅಂಚನ್ನು ಸರಿಸಿ ಮತ್ತು ತೋರಿಸಿ"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"ಟಾಗಲ್ ಮಾಡಿ"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"ಸಾಧನ ನಿಯಂತ್ರಣಗಳು"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"ನಿಮ್ಮ ಕನೆಕ್ಟ್ ಆಗಿರುವ ಸಾಧನಗಳಿಗೆ ನಿಯಂತ್ರಣಗಳನ್ನು ಸೇರಿಸಿ"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"ಸಾಧನ ನಿಯಂತ್ರಣಗಳನ್ನು ಸೆಟಪ್ ಮಾಡಿ"</string>
@@ -1087,15 +1093,12 @@
<string name="controls_structure_tooltip" msgid="4355922222944447867">"ಇನ್ನಷ್ಟು ನೋಡಲು ಸ್ವೈಪ್ ಮಾಡಿ"</string>
<string name="controls_seeding_in_progress" msgid="3033855341410264148">"ಶಿಫಾರಸುಗಳು ಲೋಡ್ ಆಗುತ್ತಿವೆ"</string>
<string name="controls_media_title" msgid="1746947284862928133">"ಮಾಧ್ಯಮ"</string>
- <!-- no translation found for controls_media_close_session (1193000643003066508) -->
- <skip />
- <!-- no translation found for controls_media_active_session (3146882316024153337) -->
- <skip />
+ <string name="controls_media_close_session" msgid="1193000643003066508">"ಈ ಮಾಧ್ಯಮ ಸೆಶನ್ ಅನ್ನು ಮರೆಮಾಡಬೇಕೆ?"</string>
+ <string name="controls_media_active_session" msgid="3146882316024153337">"ಪ್ರಸ್ತುತ ಮಾಧ್ಯಮ ಸೆಶನ್ ಅನ್ನು ಮರೆಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"ವಜಾಗೊಳಿಸಿ"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"ಪುನರಾರಂಭಿಸಿ"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"ಪ್ಲೇ ಮಾಡಿ"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"ನಿಷ್ಕ್ರಿಯ, ಆ್ಯಪ್ ಪರಿಶೀಲಿಸಿ"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"ದೋಷ, ಮರುಪ್ರಯತ್ನಿಸಲಾಗುತ್ತಿದೆ…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"ಕಂಡುಬಂದಿಲ್ಲ"</string>
@@ -1156,6 +1159,5 @@
<string name="accessibility_udfps_disabled_button" msgid="4284034245130239384">"ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
<string name="accessibility_authenticate_hint" msgid="798914151813205721">"ದೃಢೀಕರಿಸಿ"</string>
<string name="accessibility_enter_hint" msgid="2617864063504824834">"ಸಾಧನವನ್ನು ಪ್ರವೇಶಿಸಿ"</string>
- <!-- no translation found for keyguard_try_fingerprint (2825130772993061165) -->
- <skip />
+ <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ತೆರೆಯುವುದಕ್ಕಾಗಿ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ಬಳಸಿ"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 7d27acb..fbfc097 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"모바일 핫스팟이 사용 중지되었습니다."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"모바일 핫스팟을 사용합니다."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"화면 전송이 중지되었습니다."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"작업 모드가 사용 중지되었습니다."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"작업 모드가 사용 설정되었습니다."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"작업 모드가 사용 중지되었습니다."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"작업 모드가 사용 설정되었습니다."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"데이터 절약 모드를 사용 중지했습니다."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"데이터 절약 모드를 사용 설정했습니다."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"한도: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> 경고"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"직장 프로필"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"야간 조명"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"일몰에"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"일출까지"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"모두 표시"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"잠금 해제하여 결제"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"준비됨"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"결제 설정"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"잠금 해제하여 사용"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"카드를 가져오는 중에 문제가 발생했습니다. 나중에 다시 시도해 보세요."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"직장 프로필"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"비행기 모드"</string>
<string name="add_tile" msgid="6239678623873086686">"타일 추가"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>상태:</b> 무음으로 낮춤"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>상태:</b> 순위 높임"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>상태:</b> 순위 낮춤"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"우선순위 모드가 켜져 있어도 항상 알림 맨 위에 표시됩니다"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"대화 알림 상단에 표시, 잠금 화면에 프로필 사진으로 표시"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"대화 알림 상단에 표시, 잠금 화면에 프로필 사진으로 표시, 대화창으로 표시"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"대화 알림 상단에 표시, 잠금 화면에 프로필 사진으로 표시, 방해 금지 모드를 무시함"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"대화 알림 상단에 표시, 잠금 화면에 프로필 사진으로 표시, 대화창으로 표시, 방해 금지 모드를 무시함"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"설정"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"우선순위 대화"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"우선순위"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> 앱은 대화 기능을 지원하지 않습니다."</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"이 알림은 수정할 수 없습니다."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"이 알림 그룹은 여기에서 설정할 수 없습니다."</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"사용"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"사용 안함"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"사용할 수 없음"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"탐색 메뉴"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"레이아웃"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"추가 왼쪽 버튼 유형"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"시스템 탐색이 업데이트되었습니다. 변경하려면 설정으로 이동하세요."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"설정으로 이동하여 시스템 탐색을 업데이트하세요."</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"대기"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"대화가 우선순위 대화로 설정됨"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"우선순위 대화"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"우선순위 대화는 목록 맨 위에 표시되며 우선순위 모드가 켜져 있을 때는 항상 표시됩니다."</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"프로필 사진이 잠금 화면에 표시됩니다."</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"홈 화면에서 풍선 모양의 대화창을 쉽게 찾을 수 있습니다."</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"방해 금지 모드 무시"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"확인"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"설정"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"확대 창"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"확대 창 컨트롤"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"확대"</string>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index e1cc372..648e646 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Мобилдик байланыш түйүнү өчүрүлдү."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Мобилдик байланыш түйүнү күйгүзүлдү."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Тышкы экранга чыгаруу аракети токтотулду."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Иштөө режими өчүк."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Иштөө режими күйүк."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Иштөө режими өчүрүлдү."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Иштөө режими күйгүзүлдү."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Трафикти үнөмдөө режими өчүрүлдү."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Трафикти үнөмдөө режими күйгүзүлдү."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> чектөө"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> эскертүү"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Жумуш профили"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Түнкү режим"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Күн батканда күйөт"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Күн чыкканга чейин"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Баарын көрсөтүү"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Төлөө үчүн кулпусун ачыңыз"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Даяр"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Төлөмдү жөндөө"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Колдонуу үчүн кулпусун ачыңыз"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Кыйытмаларды алууда ката кетти. Бир аздан кийин кайталап көрүңүз."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Жумуш профили"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Учак режими"</string>
<string name="add_tile" msgid="6239678623873086686">"Тайл кошуу"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Абалы:</b> Үнсүз абалга төмөндөдү"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Абалы:</b> Жогорулады"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Абалы:</b> Төмөндөдү"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Маанилүү жазышуулар режими күйүп турса да, ар дайым билдирмелердин үстүндө көрүнөт"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Сүйлөшүүлөр тууралуу билдирмелердин жогору жагында жана кулпуланган экранда профилдин сүрөтү катары көрсөтүлөт"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Cүйлөшүүлөр тууралуу билдирмелердин жогору жагында жана кулпуланган экранда профилдин сүрөтү, ошондой эле калкып чыкма билдирме катары көрсөтүлөт"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Cүйлөшүүлөр тууралуу билдирмелердин жогору жагында жана кулпуланган экранда профилдин сүрөтү катары көрсөтүлүп, \"Тынчымды алба\" режимин үзгүлтүккө учуратат"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Cүйлөшүүлөр тууралуу билдирмелердин жогору жагында жана кулпуланган экранда профилдин сүрөтү, ошондой эле калкып чыкма билдирме катары көрсөтүлүп, \"Тынчымды алба\" режимин үзгүлтүккө учуратат"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Жөндөөлөр"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Маанилүү жазышуулар"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Маанилүүлүгү"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосунда оозеки сүйлөшкөнгө болбойт"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Бул билдирмелерди өзгөртүүгө болбойт."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Бул билдирмелердин тобун бул жерде конфигурациялоого болбойт"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Күйүк"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Өчүк"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Жеткиликсиз"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Чабыттоо тилкеси"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Калып"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Сол жактагы кошумча баскычтын түрү"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Тутум чабыттоосу жаңырды. Өзгөртүү үчүн, Жөндөөлөргө өтүңүз."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Тутум чабыттоосун жаңыртуу үчүн Жөндөөлөргө өтүңүз"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Көшүү режими"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Сүйлөшүү маанилүү болуп коюлду"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Маанилүү жазышуулар"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Маанилүү жазышуулар режими күйүп турганда бул жазышуулар ар дайым тизменин жогору жагында болуп, аларды тез табасыз"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Профилдин сүрөттөрү кулпуланган экранда көрүнөт"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Бул жазышууларды Башкы экраныңыздагы калкып чыкма билдирмелерден каалаганда таап алсаңыз болот"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"\"Тынчымды алба\" режими үзгүлтүккө учурайт"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Түшүндүм"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Жөндөөлөр"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Чоңойтуу терезеси"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Чоңойтуу терезесин башкаруу каражаттары"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Жакындатуу"</string>
@@ -1044,8 +1047,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Төмөнкү оң жакка жылдырыңыз"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Ичине жылдырып, көрсөтүңүз"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Сыртка жылдырып, көрсөтүңүз"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"өчүрүү/күйгүзүү"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Түзмөктү башкаруу элементтери"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Түзмөктөрүңүздү башкаруу элементтерин кошосуз"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Түзмөктү башкаруу элементтерин жөндөө"</string>
@@ -1092,8 +1094,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Жабуу"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Улантуу"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Жөндөөлөр"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Ойнотуу"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Жигерсиз. Колдонмону текшериңиз"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Ката, дагы аракет жасалууда…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Табылган жок"</string>
diff --git a/packages/SystemUI/res/values-land/dimens.xml b/packages/SystemUI/res/values-land/dimens.xml
index 46e7d71..96809dc 100644
--- a/packages/SystemUI/res/values-land/dimens.xml
+++ b/packages/SystemUI/res/values-land/dimens.xml
@@ -32,7 +32,7 @@
<dimen name="qs_security_footer_single_line_height">@*android:dimen/quick_qs_offset_height</dimen>
<dimen name="qs_footer_padding">14dp</dimen>
- <dimen name="qs_security_footer_vertical_margin">0dp</dimen>
+ <dimen name="qs_footers_margin_bottom">0dp</dimen>
<dimen name="qs_security_footer_background_inset">12dp</dimen>
<dimen name="qs_security_footer_corner_radius">28dp</dimen>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index cf9b646..8202ef5 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"ປິດຮັອດສະປອດເຄື່ອນທີ່ແລ້ວ."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"ເປີດຮັອດສະປອດເຄື່ອນທີ່ແລ້ວ."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"ຢຸດການສົ່ງພາບໜ້າຈໍແລ້ວ."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"ໂໝດການເຮັດວຽກປິດຢູ່."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"ໂໝດການເຮັດວຽກເປີດຢູ່."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"ໂໝດການເຮັດວຽກປິດຢູ່."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"ໂໝດການເຮັດວຽກເປີດຢູ່."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ປິດຕົວປະຢັດອິນເຕີເນັດແລ້ວ."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ເປີດຕົວປະຢັດອິນເຕີເນັດແລ້ວ."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"ຈຳກັດ <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"ຄຳເຕືອນ <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"ແສງກາງຄືນ"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"ເປີດຕອນຕາເວັນຕົກ"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"ຈົນກວ່າຕາເວັນຂຶ້ນ"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"ກະເປົາ"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"ສະແດງທັງໝົດ"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ປົດລັອກເພື່ອຈ່າຍ"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"ພ້ອມແລ້ວ"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"ຕັ້ງຄ່າການຈ່າຍເງິນ"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ປົດລັອກເພື່ອໃຊ້"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"ເກີດບັນຫາໃນການໂຫຼດບັດຂອງທ່ານ, ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"ໂໝດເຮືອບິນ"</string>
<string name="add_tile" msgid="6239678623873086686">"ເພີ່ມລາຍຕາກະໂລ່"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>ສະຖານະ:</b> ຫຼຸດລະດັບເປັນປິດສຽງແລ້ວ"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>ສະຖານະ:</b> ມີອັນດັບສູງຂຶ້ນແລ້ວ"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>ສະຖານະ:</b> ມີອັນດັບຕ່ຳລົງແລ້ວ"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"ສະແດງຢູ່ເທິງສຸດຂອງການແຈ້ງເຕືອນທ່ານສະເໝີ, ເຖິງແມ່ນວ່າຈະເປີດໃຊ້ໂໝດຄວາມສຳຄັນຢູ່ກໍຕາມ"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"ຕັ້ງຄ່າ"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"ການສົນທະນາສຳຄັນ"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"ສຳຄັນ"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ບໍ່ຮອງຮັບຄຸນສົມບັດການສົນທະນາ"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"ບໍ່ສາມາດແກ້ໄຂການແຈ້ງເຕືອນເຫຼົ່ານີ້ໄດ້."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"ບໍ່ສາມາດຕັ້ງຄ່າກຸ່ມການແຈ້ງເຕືອນນີ້ຢູ່ບ່ອນນີ້ໄດ້"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ເປີດ"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ປິດ"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"ບໍ່ສາມາດໃຊ້ໄດ້"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"ແຖບນຳທາງ"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"ຮູບແບບ"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"ປະເພດປຸ່ມຊ້າຍພິເສດ"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ອັບເດດການນຳທາງລະບົບແລ້ວ. ເພື່ອປ່ຽນແປງ, ກະລຸນາໄປທີ່ການຕັ້ງຄ່າ."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ໄປທີ່ການຕັ້ງຄ່າເພື່ອອັບເດດການນຳທາງລະບົບ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ສະແຕນບາຍ"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"ຕັ້ງການສົນທະນາເປັນສຳຄັນແລ້ວ"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"ການສົນທະນາສຳຄັນ"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ການສົນທະນາເຫຼົ່ານີ້ຈະສະແດງຢູ່ເທິງສຸດຂອງລາຍຊື່ທ່ານ ແລະ ສາມາດຕິດຕໍ່ຫາທ່ານໄດ້ຕະຫຼອດເມື່ອເປີດໃຊ້ໂໝດຄວາມສຳຄັນ"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"ຮູບໂປຣໄຟລ໌ແມ່ນສະແດງຢູ່ໜ້າຈໍລັອກ"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"ທ່ານສາມາດຊອກຫາການສົນທະນາເຫຼົ່ານີ້ໄດ້ຢ່າງງ່າຍດາຍໃນຟອງຢູ່ໂຮມສະກຣີນຂອງທ່ານ"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"ລົບກວນໂໝດຫ້າມລົບກວນ"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"ເຂົ້າໃຈແລ້ວ"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"ການຕັ້ງຄ່າ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"ໜ້າຈໍການຂະຫຍາຍ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ການຄວບຄຸມໜ້າຈໍການຂະຫຍາຍ"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ຊູມເຂົ້າ"</string>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index a3bffe0..95e337d 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobiliojo ryšio viešosios interneto prieigos taškas išjungtas."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobiliojo ryšio viešosios interneto prieigos taškas įjungtas."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Ekrano perdavimas sustabdytas."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Darbo režimas išjungtas."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Darbo režimas įjungtas."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Darbo režimas išjungtas."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Darbo režimas įjungtas."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Duomenų taupymo priemonė išjungta."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Duomenų taupymo priemonė įjungta."</string>
@@ -414,6 +416,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limitas: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> įspėjimas"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Darbo profilis"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Nakties šviesa"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Per saulėlydį"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Iki saulėtekio"</string>
@@ -674,10 +678,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Piniginė"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Rodyti viską"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Atrakinti, kad būtų galima mokėti"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Paruošta"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Nustatyti mokėjimą"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Atrakinti, kad būtų galima naudoti"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Gaunant korteles kilo problema, bandykite dar kartą vėliau"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Darbo profilis"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Lėktuvo režimas"</string>
<string name="add_tile" msgid="6239678623873086686">"Pridėti išklotinės elementą"</string>
@@ -746,9 +752,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Būsena:</b> pakeista į begarsį lygį"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Būsenos:</b> reitingas padidintas"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Būsenos:</b> reitingas sumažintas"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Visada rodoma pranešimų viršuje, net įjungus svarbiausių pokalbių režimą"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Rodoma pokalbių pranešimų viršuje ir kaip profilio nuotrauka užrakinimo ekrane"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Rodoma pokalbių pranešimų viršuje ir kaip profilio nuotrauka užrakinimo ekrane, debesėlyje"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Rodoma pokalbių pranešimų viršuje ir kaip profilio nuotrauka užrakinimo ekrane, pertraukia netrukdymo režimą"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Rodoma pokalbių pranešimų viršuje ir kaip profilio nuotrauka užrakinimo ekrane, debesėlyje, pertraukia netrukdymo režimą"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Nustatymai"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Svarbiausi pokalbiai"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritetiniai"</string>
<string name="no_shortcut" msgid="8257177117568230126">"Programa „<xliff:g id="APP_NAME">%1$s</xliff:g>“ nepalaiko pokalbių funkcijų"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Šių pranešimų keisti negalima."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Šios grupės pranešimai čia nekonfigūruojami"</string>
@@ -868,6 +877,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Įjungta"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Išjungta"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Nepasiekiama"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Naršymo juosta"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Išdėstymas"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Papildomo mygtuko kairėje tipas"</string>
@@ -1026,14 +1037,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistemos naršymo funkcijos atnaujintos. Jei norite pakeisti, eikite į skiltį „Nustatymai“."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Eikite į skiltį „Nustatymai“, kad atnaujintumėte sistemos naršymo funkcijas"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Budėjimo laikas"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Pokalbis nustatytas į prioritetinį"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Svarbiausi pokalbiai"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Įjungus svarbiausių pokalbių režimą, šie pokalbiai visada rodomi sąrašo viršuje"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profilio nuotraukos rodomos užrakinimo ekrane"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Lengvai rasite šiuos pokalbius burbuluose pagrindiniame ekrane"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Pertraukti netrukdymo režimą"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Supratau"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Nustatymai"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Didinimo langas"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Didinimo lango valdikliai"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Artinti"</string>
@@ -1054,8 +1057,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Perkelti į apačią dešinėje"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Perkelti į kraštą ir slėpti"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Perkelti iš krašto ir rodyti"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"perjungti"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Įrenginio valdikliai"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Pridėkite prijungtų įrenginių valdiklių"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Įrenginio valdiklių nustatymas"</string>
@@ -1104,8 +1106,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Atsisakyti"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Tęsti"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Nustatymai"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Leisti"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Neaktyvu, patikrinkite progr."</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Klaida, bandoma iš naujo…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Nerasta"</string>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index 794614c..38ed168 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobilais tīklājs ir izslēgts."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobilais tīklājs ir ieslēgts."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Ekrāna apraidīšana ir apturēta."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Darba režīms ir izslēgts."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Darba režīms ir ieslēgts."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Darba režīms ir izslēgts."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Darba režīms ir ieslēgts."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Datu lietojuma samazinātājs ir izslēgts."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Datu lietojuma samazinātājs ir ieslēgts."</string>
@@ -412,6 +414,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Ierobežojums: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> brīdinājums"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Darba profils"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Nakts režīms"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Saulrietā"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Līdz saullēktam"</string>
@@ -671,10 +675,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Maks"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Rādīt visu"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Lai maksātu, atbloķējiet ekrānu"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Gatavs"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Maksājuma veida iestatīšana"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Lai izmantotu, atbloķējiet ekrānu"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Ienesot jūsu kartes, radās problēma. Lūdzu, vēlāk mēģiniet vēlreiz."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Darba profils"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Lidojuma režīms"</string>
<string name="add_tile" msgid="6239678623873086686">"Pievienot elementu"</string>
@@ -743,9 +749,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Statuss:</b> svarīgums pazemināts, un paziņojums tiks rādīts bez skaņas"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Statuss:</b> rangs paaugstināts"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Statuss:</b> rangs pazemināts"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Vienmēr tiek rādītas virs jūsu paziņojumiem (arī tad, ja ir ieslēgts režīms “Prioritāte”)"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Parādās sarunu paziņojumu augšdaļā un kā profila attēls bloķēšanas ekrānā."</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Parādās sarunu paziņojumu augšdaļā un kā profila attēls bloķēšanas ekrānā, arī kā burbulis."</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Parādās sarunu paziņojumu augšdaļā un kā profila attēls bloķēšanas ekrānā, pārtrauc režīmu “Netraucēt”."</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Parādās sarunu paziņojumu augšdaļā un kā profila attēls bloķēšanas ekrānā, arī kā burbulis, pārtrauc režīmu “Netraucēt”."</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Iestatījumi"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioritārās sarunas"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritārs"</string>
<string name="no_shortcut" msgid="8257177117568230126">"Lietotnē <xliff:g id="APP_NAME">%1$s</xliff:g> netiek atbalstītas sarunu funkcijas."</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Šos paziņojumus nevar modificēt."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Šeit nevar konfigurēt šo paziņojumu grupu."</string>
@@ -863,6 +872,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Ieslēgts"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Izslēgts"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Nav pieejams"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigācijas josla"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Izkārtojums"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Kreisās puses papildu pogas veids"</string>
@@ -1021,14 +1032,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistēmas navigācija ir atjaunināta. Lai veiktu izmaiņas, atveriet iestatījumus."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Atveriet iestatījumus, lai atjauninātu sistēmas navigāciju"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Gaidstāve"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Saruna iestatīta kā prioritāra"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioritārās sarunas"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Šīs sarunas tiek rādītas jūsu saraksta augšdaļā, un jūs vienmēr varat tās skatīt, ja ir ieslēgts režīms Prioritāte"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profila attēli tiek rādīti bloķēšanas ekrānā"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Šīs sarunas ērti varat skatīt sava sākuma ekrāna burbuļos"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Var tikt rādītas režīmā “Netraucēt”"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Labi"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Iestatījumi"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Palielināšanas logs"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Palielināšanas loga vadīklas"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Tuvināt"</string>
@@ -1049,8 +1052,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Pārvietot apakšpusē pa labi"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Pārvietot uz malu un paslēpt"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Pārvietot no malas un parādīt"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"pārslēgt"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Ierīču vadīklas"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Pievienojiet vadīklas pievienotajām ierīcēm"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Ierīču vadīklu iestatīšana"</string>
@@ -1098,8 +1100,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Nerādīt"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Atsākt"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Iestatījumi"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Atskaņot"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Neaktīva, pārbaudiet lietotni"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Radās kļūda. Mēģina vēlreiz…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Netika atrasta"</string>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index a8de9c2..69bb114 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Мобилната точка на пристап е исклучена."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Мобилната точка на пристап е вклучена."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Емитувањето на екранот запре."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Режимот на работа е исклучен."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Режимот на работа е вклучен."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Режимот на работа е исклучен."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Режимот на работа е вклучен."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Штедачот на интернет е исклучен."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Штедачот на интернет е вклучен."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Лимит: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Предупредување: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Работен профил"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Ноќно светло"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Вклуч. на зајдисонце"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"До изгрејсонце"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Паричник"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Прикажи ги сите"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Отклучете за да платите"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Подготвено"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Поставете плаќање"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Отклучете за да користите"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Имаше проблем при преземањето на картичките. Обидете се повторно подоцна"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Работен профил"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Авионски режим"</string>
<string name="add_tile" msgid="6239678623873086686">"Додај плочка"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Статус:</b> намалено на „Тивко“"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Статус:</b> рангирано повисоко"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Статус:</b> рангирано пониско"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Секогаш прикажувај на врвот од известувањата, дури и кога е вклучен „Приоритетен режим“"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Се прикажува најгоре во известувањата за разговор и како профилна слика на заклучен екран"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Се прикажува најгоре во известувањата за разговор и како профилна слика на заклучен екран, се појавува како балонче"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Се прикажува најгоре во известувањата за разговор и како профилна слика на заклучен екран, ја прекинува „Не вознемирувај“"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Се прикажува најгоре во известувањата за разговор и како профилна слика на заклучен екран, се појавува како балонче, ја прекинува „Не вознемирувај“"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Поставки"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Приоритетни разговори"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Приоритетно"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не поддржува функции за разговор"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Овие известувања не може да се изменат"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Оваа група известувања не може да се конфигурира тука"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Вклучено"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Исклучено"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Недостапно"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Лента за навигација"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Распоред"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Тип дополнително лево копче"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навигацијата на системот е ажурирана. За да извршите промени, одете во „Поставки“."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Одете во „Поставки“ за да ја ажурирате навигацијата на системот"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Подготвеност"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Разговорот е поставен како приоритетен"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Приоритетни разговори"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Разговориве се прикажани на врвот од списокот и секогаш може да ги видите кога е вклучен „Приоритетен режим“"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Профилните слики се прикажуваат на заклучен екран"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Лесно може да ги најдете разговориве во балончиња на почетниот екран"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Прекинува „Не вознемирувај“"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Сфатив"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Поставки"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Прозорец за зголемување"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Контроли на прозорец за зголемување"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Зумирај"</string>
@@ -1044,8 +1047,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Премести долу десно"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Премести до работ и сокриј"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Премести над работ и прикажи"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"вклучување/исклучување"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Контроли за уредите"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Додајте контроли за поврзаните уреди"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Поставете ги контролите за уредите"</string>
@@ -1092,8 +1094,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Отфрли"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Продолжи"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Поставки"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Пушти"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Неактивна, провери апликација"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Грешка, повторен обид…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Не е најдено"</string>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index 2b23462..1eb50c7 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"മൊബൈൽ ഹോട്ട്സ്പോട്ട് ഓഫാക്കി."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"മൊബൈൽ ഹോട്ട്സ്പോട്ട് ഓണാക്കി."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"സ്ക്രീൻ കാസ്റ്റുചെയ്യൽ നിർത്തി."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"പ്രവർത്തന മോഡ് ഓഫാണ്."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"പ്രവർത്തന മോഡ് ഓണാണ്."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"പ്രവർത്തന മോഡ് ഓഫാക്കി."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"പ്രവർത്തന മോഡ് ഓണാക്കി."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ഡാറ്റ സേവർ ഓഫാക്കി."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ഡാറ്റ സേവർ ഓണാക്കി."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> പരിധി"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> മുന്നറിയിപ്പ്"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"ഔദ്യോഗിക പ്രൊഫൈൽ"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"നൈറ്റ് ലൈറ്റ്"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"സൂര്യാസ്തമയത്തിന്"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"സൂര്യോദയം വരെ"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"വാലറ്റ്"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"എല്ലാം കാണിക്കുക"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"പണമടയ്ക്കാൻ അൺലോക്ക് ചെയ്യുക"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"തയ്യാർ"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"പേയ്മെന്റ് സജ്ജീകരിക്കുക"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ഉപയോഗിക്കാൻ അൺലോക്ക് ചെയ്യുക"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"നിങ്ങളുടെ കാർഡുകൾ ലഭ്യമാക്കുന്നതിൽ ഒരു പ്രശ്നമുണ്ടായി, പിന്നീട് വീണ്ടും ശ്രമിക്കുക"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"ഔദ്യോഗിക പ്രൊഫൈൽ"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"ഫ്ലൈറ്റ് മോഡ്"</string>
<string name="add_tile" msgid="6239678623873086686">"ടൈൽ ചേർക്കുക"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>നില:</b> നിശബ്ദമാക്കി തരം താഴ്ത്തി"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>നില:</b> ഉയർന്ന റാങ്കിംഗ് നൽകി"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>നില:</b> താഴ്ന്ന റാങ്കിംഗ് നൽകി"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"മുൻഗണനാ മോഡ് ഓണാണെങ്കിൽ പോലും എപ്പോഴും അറിയിപ്പുകളുടെ മുകളിൽ കാണിക്കും"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"ക്രമീകരണം"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"മുൻഗണനാ സംഭാഷണങ്ങൾ"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"മുൻഗണന"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> സംഭാഷണ ഫീച്ചറുകളെ പിന്തുണയ്ക്കുന്നില്ല"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"ഈ അറിയിപ്പുകൾ പരിഷ്ക്കരിക്കാനാവില്ല."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"അറിയിപ്പുകളുടെ ഈ ഗ്രൂപ്പ് ഇവിടെ കോണ്ഫിഗര് ചെയ്യാൻ കഴിയില്ല"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ഓൺ"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ഓഫ്"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"ലഭ്യമല്ല"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"നാവിഗേഷൻ ബാർ"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"ലേഔട്ട്"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"അധിക ഇടത് ബട്ടൺ തരം"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"സിസ്റ്റം നാവിഗേഷൻ അപ്ഡേറ്റ് ചെയ്തു. മാറ്റങ്ങൾ വരുത്താൻ ക്രമീകരണത്തിലേക്ക് പോവുക."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"സിസ്റ്റം നാവിഗേഷൻ അപ്ഡേറ്റ് ചെയ്യാൻ ക്രമീകരണത്തിലേക്ക് പോവുക"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"സ്റ്റാൻഡ്ബൈ"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"സംഭാഷണം മുൻഗണനയുള്ളതായി സജ്ജീകരിച്ചു"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"മുൻഗണനാ സംഭാഷണങ്ങൾ"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ഈ സംഭാഷണങ്ങൾ ലിസ്റ്റിന്റെ മുകളിൽ കാണിക്കും, മുൻഗണനാ മോഡ് ഓണാണെങ്കിൽ, എപ്പോഴും നിങ്ങളിലേക്ക് എത്താൻ അവയ്ക്ക് കഴിയും"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"പ്രൊഫെെൽ ചിത്രങ്ങൾ ലോക്ക് സ്ക്രീനിൽ കാണിക്കും"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"ഹോം സ്ക്രീനിലെ ബബിളുകളിൽ ഈ സംഭാഷണങ്ങൾ നിങ്ങൾക്ക് എളുപ്പത്തിൽ കണ്ടെത്താനാകും"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"\'ശല്യപ്പെടുത്തരുത്\' തടസ്സപ്പെടുത്തുക"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"മനസ്സിലായി"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"ക്രമീകരണം"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"മാഗ്നിഫിക്കേഷൻ വിൻഡോ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"മാഗ്നിഫിക്കേഷൻ വിൻഡോ നിയന്ത്രണങ്ങൾ"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"സൂം ഇൻ ചെയ്യുക"</string>
@@ -1044,8 +1051,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"ചുവടെ വലതുഭാഗത്തേക്ക് നീക്കുക"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"എഡ്ജിലേക്ക് നീക്കി മറയ്ക്കുക"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"എഡ്ജിൽ നിന്ന് നീക്കി കാണിക്കൂ"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"മാറ്റുക"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"ഉപകരണ നിയന്ത്രണങ്ങൾ"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"കണക്റ്റ് ചെയ്തവയ്ക്ക് നിയന്ത്രണങ്ങൾ ചേർക്കുക"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"ഉപകരണ നിയന്ത്രണങ്ങൾ സജ്ജീകരിക്കുക"</string>
@@ -1092,8 +1098,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"ഡിസ്മിസ് ചെയ്യുക"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"പുനരാരംഭിക്കുക"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"ക്രമീകരണം"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"പ്ലേ ചെയ്യുക"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"നിഷ്ക്രിയം, ആപ്പ് പരിശോധിക്കൂ"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"പിശക്, വീണ്ടും ശ്രമിക്കുന്നു…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"കണ്ടെത്തിയില്ല"</string>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index 54310c1..3f549d4 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Мобайл хотспотыг унтраасан."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Мобайл хотспотыг асаасан."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Дэлгэц дамжуулалт зогссон."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Ажлын горимыг унтраасан."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Ажлын горимыг асаасан."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Ажлын горимыг унтраасан."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Ажлын горимыг асаасан."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Дата хэмнэгчийг унтраасан."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Дата хэмнэгчийг асаасан."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> хязгаар"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> анхааруулга"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Ажлын профайл"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Шөнийн гэрэл"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Нар жаргах үед"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Нар мандах хүртэл"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Түрийвч"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Бүгдийг харуулах"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Төлөхийн тулд түгжээг тайлна уу"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Бэлэн"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Төлбөр тохируулах"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Ашиглахын тулд түгжээг тайлах"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Таны картыг авахад асуудал гарлаа. Дараа дахин оролдоно уу"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Ажлын профайл"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Нислэгийн горим"</string>
<string name="add_tile" msgid="6239678623873086686">"Вебсайтын цонх нэмэх"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Төлөв:</b> Чимээгүй болгож зэрэглэлийг нь бууруулсан"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Төлөв:</b> Дээгүүр зэрэглэл хийсэн"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Төлөв:</b> Доогуур зэрэглэл хийсэн"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Чухал горим асаалттай байсан ч таны мэдэгдлийн дээр үргэлж харуулдаг"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Харилцан ярианы дээд талд болон түгжигдсэн дэлгэц дээр профайл зураг байдлаар харуулна"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Харилцан ярианы мэдэгдлийн дээд талд болон түгжигдсэн дэлгэц дээр профайл зураг байдлаар харуулах бөгөөд бөмбөлөг хэлбэрээр харагдана"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Харилцан ярианы мэдэгдлийн дээд талд болон түгжигдсэн дэлгэц дээр профайл зураг байдлаар харуулах бөгөөд Бүү саад бол горимыг тасалдуулна"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Харилцан ярианы мэдэгдлийн дээд талд болон түгжигдсэн дэлгэц дээр профайл зураг байдлаар харуулах бөгөөд бөмбөлөг хэлбэрээр харагдана. Бүү саад бол горимыг тасалдуулна"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Тохиргоо"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Чухал харилцан яриа"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Ач холбогдол"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> нь харилцан ярианы онцлогуудыг дэмждэггүй"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Эдгээр мэдэгдлийг өөрчлөх боломжгүй."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Энэ бүлэг мэдэгдлийг энд тохируулах боломжгүй байна"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Идэвхтэй"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Идэвхгүй"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Боломжгүй"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Навигацын самбар"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Бүдүүвч"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Нэмэлт зүүн товчлуураар шивэх"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Системийн навигацыг шинэчиллээ. Өөрчлөхийн тулд Тохиргоо руу очно уу."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Системийн навигацыг шинэчлэхийн тулд Тохиргоо руу очно уу"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Зогсолтын горим"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Харилцан яриаг чухал гэж тохируулсан"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Чухал харилцан яриа"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Эдгээр харилцан яриаг Чухал горим асаалттай үед таны жагсаалтын дээр харуулах бөгөөд танд үргэлж харуулах боломжтой"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Профайл зургийг түгжигдсэн дэлгэц дээр харуулдаг"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Та бөмбөлгүүд дэх эдгээр харилцан яриаг Үндсэн нүүрээсээ хялбархан олох боломжтой"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Бүү саад бол онцлогийг үл хэрэгсэн тасалдуулна"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Ойлголоо"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Тохиргоо"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Томруулалтын цонх"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Томруулалтын цонхны хяналт"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Томруулах"</string>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index 487d3a9..50dc6e7 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"मोबाइल हॉटस्पॉट बंद केला."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"मोबाइल हॉटस्पॉट सुरू केला."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"स्क्रीन कास्ट करणे थांबले."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"कार्य मोड बंद."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"कार्य मोड सुरू."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"कार्य मोड बंद केला."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"कार्य मोड सुरू केला."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"डेटा सर्व्हर बंद केला."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"डेटा सर्व्हर सुरू केला."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> मर्यादा"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> चेतावणी"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"कार्य प्रोफाइल"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"रात्रीचा प्रकाश"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"संध्याकाळी सुरू असते"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"सूर्योदयापर्यंत"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"सर्व दाखवा"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"पैसे देण्यासाठी अनलॉक करा"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"तयार आहे"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"पेमेंट सेट करा"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"वापरण्यासाठी अनलॉक करा"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"तुमची कार्ड मिळवताना समस्या आली, कृपया नंतर पुन्हा प्रयत्न करा"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"कार्य प्रोफाईल"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"विमान मोड"</string>
<string name="add_tile" msgid="6239678623873086686">"टाइल जोडा"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>स्थिती</b> ला सायलंट म्हणून डीमोट केले गेले"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>स्थिती</b> ला थोडे जास्त म्हणून रँक केले गेले"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>स्थिती</b> ला थोडी कमी म्हणून रँक केले गेले"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"प्राधान्य मोड सुरू असतानादेखील, नेहमी तुमच्या सूचनांच्या वरती दाखवले जाते"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"संभाषण सूचनांच्या वरती आणि लॉक स्क्रीनवरील प्रोफाइल फोटो म्हणून दिसते"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"संभाषण सूचनांच्या वरती आणि लॉक स्क्रीनवरील प्रोफाइल फोटो म्हणून दिसते, बबल म्हणून दिसते"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"संभाषण सूचनांच्या वरती आणि लॉक स्क्रीनवरील प्रोफाइल फोटो म्हणून दिसते, व्यत्यय आणू नका यामध्ये अडथळा आणते"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"संभाषण सूचनांच्या वरती आणि लॉक स्क्रीनवरील प्रोफाइल फोटो म्हणून दिसते, बबल म्हणून दिसते, व्यत्यय आणू नका यामध्ये अडथळा आणते"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"सेटिंग्ज"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"प्राधान्य दिलेली संभाषणे"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"प्राधान्य"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> हे संभाषण वैशिष्ट्यांना सपोर्ट करत नाही"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"या सूचनांमध्ये सुधारणा केली जाऊ शकत नाही."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"या सूचनांचा संच येथे कॉंफिगर केला जाऊ शकत नाही"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"सुरू"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"बंद"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"उपलब्ध नाही"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"नॅव्हिगेशन बार"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"लेआउट"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"अतिरिक्त डाव्या बटणाचा प्रकार"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"सिस्टम नेव्हिगेशन अपडेट केले. बदल करण्यासाठी, सेटिंग्जवर जा."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"सिस्टम नेव्हिगेशन अपडेट करण्यासाठी सेटिंग्जवर जा"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्टँडबाय"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"संभाषणाला प्राधान्य म्हणून सेट केले आहे"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"प्राधान्य दिलेली संभाषणे"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ही संभाषणे तुमच्या सूचीच्या सर्वात वरती दाखवली जातात आणि प्राधान्य मोड सुरू असताना तुम्हाला नेहमी कळू शकते"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"प्रोफाइल फोटो लॉक स्क्रीनवर दाखवले जातात"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"तुम्हाला तुमच्या होम स्क्रीन वरील बबलमध्ये ही संभाषणे सहज आढळतील"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"व्यत्यय आणू नका मध्ये अडथळा आणतील"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"समजले"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"सेटिंग्ज"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"मॅग्निफिकेशन विंडो"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"मॅग्निफिकेशन विंडो नियंत्रणे"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"झूम इन करा"</string>
@@ -1044,8 +1047,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"तळाशी उजवीकडे हलवा"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"एजवर हलवा आणि लपवा"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"एजवर हलवा आणि दाखवा"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"टॉगल करा"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"डिव्हाइस नियंत्रणे"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"तुमच्या कनेक्ट केलेल्या डिव्हाइससाठी नियंत्रणे जोडा"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"डिव्हाइस नियंत्रणे सेट करा"</string>
@@ -1092,8 +1094,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"डिसमिस करा"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"पुन्हा सुरू करा"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"सेटिंग्ज"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"प्ले करणे"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"निष्क्रिय, ॲप तपासा"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"एरर, पुन्हा प्रयत्न करत आहे…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"आढळले नाही"</string>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index 3945370..9f5631c 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Tempat liputan mudah alih bergerak dimatikan."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Tempat liputan mudah alih bergerak dihidupkan."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Penghantaran skrin dihentikan."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Mod kerja mati."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Mod kerja hidup."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Mod kerja dimatikan."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Mod kerja dihidupkan."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Penjimat Data dimatikan."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Penjimat Data dihidupkan."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> had"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Amaran <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Profil kerja"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Cahaya Malam"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Dihidupkan pd senja"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Hingga matahari terbit"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Tunjukkan semua"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Buka kunci untuk membayar"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Sedia"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Sediakan pembayaran"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Buka kunci untuk menggunakan"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Terdapat masalah sewaktu mendapatkan kad anda. Sila cuba sebentar lagi"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profil kerja"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Mod pesawat"</string>
<string name="add_tile" msgid="6239678623873086686">"Tambahkan jubin"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Diturunkan Taraf kepada Senyap"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Dinilai Lebih Tinggi"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> Dinilai Lebih Rendah"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Sentiasa ditunjukkan di sebelah atas pemberitahuan anda, walaupun apabila mod Keutamaan dihidupkan"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Ditunjukkan di bahagian atas pemberitahuan perbualan dan sebagai gambar profil pada skrin kunci"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Ditunjukkan di bahagian atas pemberitahuan perbualan dan sebagai gambar profil pada skrin kunci, muncul sebagai gelembung"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Ditunjukkan di bahagian atas pemberitahuan perbualan dan sebagai gambar profil pada skrin kunci, mengganggu Jangan Ganggu"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Ditunjukkan di bahagian atas pemberitahuan perbualan dan sebagai gambar profil pada skrin kunci, muncul sebagai gelembung, mengganggu Jangan Ganggu"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Tetapan"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Perbualan keutamaan"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Keutamaan"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> tidak menyokong ciri perbualan"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Pemberitahuan ini tidak boleh diubah suai."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Kumpulan pemberitahuan ini tidak boleh dikonfigurasikan di sini"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Hidup"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Mati"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Tidak tersedia"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Bar navigasi"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Reka letak"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Jenis butang kiri tambahan"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigasi sistem dikemas kini. Untuk membuat perubahan, pergi ke Tetapan."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Pergi ke Tetapan untuk mengemas kini navigasi sistem"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Tunggu sedia"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Perbualan ditetapkan kepada keutamaan"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Perbualan keutamaan"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Perbualan ini ditunjukkan di sebelah atas senarai anda dan sentiasa boleh mencapai anda apabila mod Keutamaan dihidupkan"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Gambar profil ditunjukkan pada skrin kunci"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Anda boleh menemukan perbualan ini dengan mudah dalam gelembung pada Skrin utama anda"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Ganggu ciri Jangan Ganggu"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Tetapan"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Tetingkap Pembesaran"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kawalan Tetingkap Pembesaran"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zum masuk"</string>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index 0e5193e..9ee7b92 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"မိုဘိုင်း ဟော့စပေါ့ ပိတ်ထား။"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"မိုဘိုင်း ဟော့စပေါ့ ဖွင့်ထား။"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"မျက်နှာပြင် ကာစ်တင် လုပ်မှု ရပ်လိုက်ပြီ။"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"အလုပ် မုဒ်ကို ပိတ်ထားပါသည်။"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"အလုပ် မုဒ်ကို ဖွင့်ထားပါသည်။"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"အလုပ် မုဒ်ကို ပိတ်ထားပါသည်။"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"အလုပ် မုဒ်ကို ဖွင့်ထားပါသည်။"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ဒေတာချွေတာမှု ပိတ်ထားသည်။"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ဒေတာချွေတာမှု ဖွင့်ထားသည်။"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ကန့်သတ်ချက်"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> သတိပေးချက်"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"အလုပ်ပရိုဖိုင်"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"ညအလင်းရောင်"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"နေဝင်ချိန်၌ ဖွင့်ရန်"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"နေထွက်ချိန် အထိ"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"အားလုံးပြရန်"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ငွေပေးချေရန် လော့ခ်ဖွင့်ပါ"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"အဆင်သင့်"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"ငွေပေးချေမှု သတ်မှတ်ရန်"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"သုံးရန် လော့ခ်ဖွင့်ပါ"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"သင်၏ကတ်များ ရယူရာတွင် ပြဿနာရှိနေသည်၊ နောက်မှ ထပ်စမ်းကြည့်ပါ"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"အလုပ် ပရိုဖိုင်"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"လေယာဉ်ပျံမုဒ်"</string>
<string name="add_tile" msgid="6239678623873086686">"လေးထောင့်ကွက် ထည့်ရန်"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>အခြေအနေ-</b> အသံတိတ်ခြင်းသို့ ပြန်ချိန်ညှိထားသည်"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>အခြေအနေ-</b> အဆင့်တိုးထားသည်"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>အခြေအနေ-</b> အဆင့်လျှော့ထားသည်"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"‘ဦးစားပေးမုဒ်’ ကို ဖွင့်ထားသည့်အခါတွင်ပင် သင့်အကြောင်းကြားချက်များ၏ ထိပ်ဆုံးတွင် အမြဲပြသည်"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"စကားဝိုင်း အကြောင်းကြားချက်များ၏ ထိပ်ပိုင်းတွင် ပြ၍ လော့ခ်မျက်နှာပြင်တွင် ပရိုဖိုင်ပုံအဖြစ် ပြသည်"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"စကားဝိုင်း အကြောင်းကြားချက်များ၏ ထိပ်ပိုင်းတွင် ပြ၍ လော့ခ်မျက်နှာပြင်တွင် ပရိုဖိုင်ပုံအဖြစ် ပြကာ ပူဖောင်းကွက်အဖြစ် မြင်ရသည်"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"စကားဝိုင်း အကြောင်းကြားချက်များ၏ ထိပ်ပိုင်းတွင် ပြ၍ လော့ခ်မျက်နှာပြင်တွင် ပရိုဖိုင်ပုံအဖြစ် ပြကာ ‘မနှောင့်ယှက်ရ’ ကို ရပ်တန့်သည်"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"စကားဝိုင်း အကြောင်းကြားချက်များ၏ ထိပ်ပိုင်းတွင် ပြ၍ လော့ခ်မျက်နှာပြင်တွင် ပရိုဖိုင်ပုံအဖြစ် ပြကာ ပူဖောင်းကွက်အဖြစ် မြင်ရပြီး ‘မနှောင့်ယှက်ရ’ ကို ရပ်တန့်သည်"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"ဆက်တင်များ"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"ဦးစားပေး စကားဝိုင်းများ"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"ဦးစားပေး"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> က စကားဝိုင်းဝန်ဆောင်မှုများကို မပံ့ပိုးပါ"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"ဤအကြောင်းကြားချက်များကို ပြုပြင်၍ မရပါ။"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"ဤအကြောင်းကြားချက်အုပ်စုကို ဤနေရာတွင် စီစဉ်သတ်မှတ်၍ မရပါ"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ဖွင့်"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ပိတ်"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"မရနိုင်ပါ"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"ရွှေ့လျားရန်ဘားတန်း"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"အပြင်အဆင်"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"လက်ဝဲခလုတ် အမျိုးအစားအပို"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"စနစ်လမ်းညွှန်ခြင်း အပ်ဒိတ်လုပ်ပြီးပါပြီ။ အပြောင်းအလဲများ ပြုလုပ်ရန် \'ဆက်တင်များ\' သို့သွားပါ။"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"စနစ်လမ်းညွှန်ခြင်း အပ်ဒိတ်လုပ်ရန် \'ဆက်တင်များ\' သို့သွားပါ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"အသင့်အနေအထား"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"စကားဝိုင်းကို ဦးစားပေးအဖြစ် သတ်မှတ်ထားသည်"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"ဦးစားပေး စကားဝိုင်းများ"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ဤစကားဝိုင်းများကို သင့်စာရင်း၏ထိပ်ဆုံးတွင် ပြပေးပြီး ‘ဦးစားပေးမုဒ်’ ကို ဖွင့်ထားသောအခါ သင့်ထံသို့ အမြဲရောက်ရှိနိုင်သည်"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"ပရိုဖိုင်ပုံများကို လော့ခ်ချထားချိန် ဖန်သားပြင်တွင် ပြပေးသည်"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"ဤစကားဝိုင်းများကို သင့်ပင်မစာမျက်နှာရှိ ပူဖောင်းကွက်များတွင် အလွယ်တကူ ရှာနိုင်ပါသည်"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"\'မနှောင့်ယှက်ရ\' ကို ကြားဖြတ်ခြင်း"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Ok"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"ဆက်တင်များ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"ဝင်းဒိုး ချဲ့ခြင်း"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ဝင်းဒိုး ထိန်းချုပ်မှုများ ချဲ့ခြင်း"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ဇူးမ်ဆွဲရန်"</string>
@@ -1044,8 +1047,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"ညာဘက်အောက်ခြေသို့ ရွှေ့ရန်"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"အစွန်းသို့ရွှေ့ပြီး ဝှက်ရန်"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"အစွန်းမှရွှေ့ပြီး ပြရန်"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"ခလုတ်"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"စက်ထိန်းစနစ်"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"ချိတ်ဆက်စက်များအတွက် ထိန်းချုပ်မှုများထည့်ပါ"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"စက်ထိန်းစနစ် ထည့်သွင်းခြင်း"</string>
@@ -1092,8 +1094,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"ပယ်ရန်"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"ဆက်လုပ်ရန်"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"ဆက်တင်များ"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"ဖွင့်ခြင်း"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"ရပ်နေသည်၊ အက်ပ်ကို စစ်ဆေးပါ"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"မှားသွားသည်၊ ပြန်စမ်းနေသည်…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"မတွေ့ပါ"</string>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 3dcea65..113adba 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobil Wi-Fi-sone er slått av."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobil Wi-Fi-sone er slått på."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Skjermcastingen er stoppet."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Arbeidsmodusen er av."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Arbeidsmodusen er på."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Arbeidsmodusen er slått av."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Arbeidsmodusen er slått på."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Datasparing er slått av."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Datasparing er slått på."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Grense på <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Advarsel for <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Jobbprofil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Nattlys"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"På ved solnedgang"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Til soloppgang"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Vis alle"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Lås opp for å betale"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Klar"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Konfigurer betaling"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Lås opp for å bruke"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Det oppsto et problem med henting av kortene. Prøv igjen senere"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Work-profil"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Flymodus"</string>
<string name="add_tile" msgid="6239678623873086686">"Legg til felt"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Nedgradert til lydløst"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Rangert høyere"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> Rangert lavere"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Vises alltid øverst i varslene – selv når prioritetsmodus er på"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Vises øverst på samtalevarsler og som et profilbilde på låseskjermen"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Vises øverst på samtalevarsler og som et profilbilde på låseskjermen, vises som en boble"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Vises øverst på samtalevarsler og som et profilbilde på låseskjermen, avbryter «Ikke forstyrr»"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Vises øverst på samtalevarsler og som et profilbilde på låseskjermen, vises som en boble, avbryter «Ikke forstyrr»"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Innstillinger"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioriterte samtaler"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritet"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> støtter ikke samtalefunksjoner"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Disse varslene kan ikke endres."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Denne varselgruppen kan ikke konfigureres her"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"På"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Av"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Utilgjengelig"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigasjonsrad"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Oppsett"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Ekstra venstre-knapptype"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemnavigeringen er oppdatert. For å gjøre endringer, gå til Innstillinger."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gå til Innstillinger for å oppdatere systemnavigeringen"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ventemodus"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Samtalen er prioritert"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioriterte samtaler"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Disse samtalene vises øverst i listen og kan alltid nå deg når prioritetsmodus er på"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profilbilder vises på låseskjermen"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Det er lett å finne disse samtalene i bobler på startskjermen"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Overstyr «Ikke forstyrr»"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Greit"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Innstillinger"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Forstørringsvindu"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontroller for forstørringsvindu"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zoom inn"</string>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index cd87cd5..27948be 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"मोबाइल हटस्पट बन्द गरियो।"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"मोबाइल हटस्पट खुला गरियो।"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"स्क्रिन कास्टिङ रोकियो।"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"कार्य मोड बन्द।"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"कार्य मोड अन।"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"कार्य मोड बन्द भयो।"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"कार्य मोड सक्रिय भयो।"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"डेटा सेभरलाई निष्क्रिय पारियो।"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"डेटा सेभरलाई सक्रिय गरियो।"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> सीमा"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> चेतावनी दिँदै"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"कार्य प्रोफाइल"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Night Light"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"सूर्यास्तमा सक्रिय"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"सूर्योदयसम्म"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"वालेट"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"सबै देखाइयोस्"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"भुक्तानी गर्न अनलक गर्नुहोस्"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"सक्रिय छ"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"भुक्तानी विधि सेटअप गर्नुहोस्"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"यो वालेट प्रयोग गर्न डिभाइस अनलक गर्नुहोस्"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"तपाईंका कार्डहरू प्राप्त गर्ने क्रममा समस्या भयो, कृपया पछि फेरि प्रयास गर्नुहोस्"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"कार्य प्रोफाइल"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"हवाइजहाज मोड"</string>
<string name="add_tile" msgid="6239678623873086686">"टाइल थप्नुहोस्"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>स्थिति:</b> सूचनालाई कम महत्त्वपूर्ण ठानी साइलेन्ट मोडमा सेट गरिएको छ"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>स्थिति:</b> धेरै महत्त्वपूर्ण सूचनाका रूपमा सेट गरिएको छ"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>स्थिति:</b> कम महत्त्वपूर्ण सूचनाका रूपमा सेट गरिएको छ"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"\'प्राथमिकता\' मोड अन भएका बेला पनि यो सधैँ तपाईंको सूचनाको सिरानमा देखाइन्छ"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"सेटिङ"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"महत्त्वपूर्ण वार्तालापहरू"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"प्राथमिकता"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> मा वार्तालापसम्बन्धी सुविधा प्रयोग गर्न मिल्दैन"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"यी सूचनाहरू परिमार्जन गर्न मिल्दैन।"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"यहाँबाट सूचनाहरूको यो समूह कन्फिगर गर्न सकिँदैन"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"अन छ"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"अफ"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"उपलब्ध छैन"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"नेभिगेशन पट्टी"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"लेआउट"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"अतिरिक्त बायाँतिरको बटनको प्रकार"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"सिस्टम नेभिगेसन अद्यावधिक गरियो। परिवर्तन गर्न सेटिङमा जानुहोस्।"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"सिस्टम नेभिगेसन अद्यावधिक गर्न सेटिङमा जानुहोस्"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्ट्यान्डबाई"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"वार्तालापको प्राथमिकता निर्धारण गरी \"महत्त्वपूर्ण\" बनाइयो"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"महत्त्वपूर्ण वार्तालापहरू"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"यी वार्तालापहरू तपाईंको सूचीको सिरानमा देखाइन्छन् र प्राथमिकता मोड अन भएका बेला तपाईंलाई यी वार्तालापहरू सधैँ देखाइन्छन्"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"प्रोफाइल फोटोहरू लक स्क्रिनमा देखाइन्छन्"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"तपाईं यी वार्तालापहरू आफ्नो होम स्क्रिनमा रहेका बबलमा सजिलैसँग भेट्टाउन सक्नुहुन्छ"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"बाधा नपुऱ्याउनुहोस् मोडलाई बेवास्ता गरियोस्"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"बुझेँ"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"सेटिङ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"म्याग्निफिकेसन विन्डो"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"म्याग्निफिकेसन विन्डोका नियन्त्रणहरू"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"जुम इन गर्नुहोस्"</string>
@@ -1044,8 +1051,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"पुछारको दायाँतिर सार्नुहोस्"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"किनारामा सार्नुहोस् र नदेखिने पार्नु…"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"किनाराबाट सार्नुहोस् र देखिने पार्नु…"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"टगल गर्नुहोस्"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"डिभाइस नियन्त्रण गर्ने विजेटहरू"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"आफ्ना कनेक्ट गरिएका यन्त्रका लागि नियन्त्रण सुविधाहरू थप्नुहोस्"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"डिभाइस नियन्त्रण गर्ने विजेटहरू सेटअप गर्नुहोस्"</string>
@@ -1087,15 +1093,12 @@
<string name="controls_structure_tooltip" msgid="4355922222944447867">"थप हेर्न स्वाइप गर्नुहोस्"</string>
<string name="controls_seeding_in_progress" msgid="3033855341410264148">"सिफारिसहरू लोड गर्दै"</string>
<string name="controls_media_title" msgid="1746947284862928133">"मिडिया"</string>
- <!-- no translation found for controls_media_close_session (1193000643003066508) -->
- <skip />
- <!-- no translation found for controls_media_active_session (3146882316024153337) -->
- <skip />
+ <string name="controls_media_close_session" msgid="1193000643003066508">"यो मिडिया सत्र लुकाउने हो?"</string>
+ <string name="controls_media_active_session" msgid="3146882316024153337">"हालको मिडिया सत्र लुकाउन मिल्दैन।"</string>
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"हटाउनुहोस्"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"सुचारु गर्नुहोस्"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"सेटिङ"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"प्ले गर्नुहोस्"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"निष्क्रिय छ, एप जाँच गर्नु…"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"त्रुटि भयो, फेरि प्रयास गर्दै…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"फेला परेन"</string>
@@ -1156,6 +1159,5 @@
<string name="accessibility_udfps_disabled_button" msgid="4284034245130239384">"फिंगरप्रिन्ट सेन्सर असक्षम पारिएको छ"</string>
<string name="accessibility_authenticate_hint" msgid="798914151813205721">"प्रमाणित गर्नुहोस्"</string>
<string name="accessibility_enter_hint" msgid="2617864063504824834">"डिभाइस हाल्नुहोस्"</string>
- <!-- no translation found for keyguard_try_fingerprint (2825130772993061165) -->
- <skip />
+ <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"फिंगरप्रिन्ट प्रयोग गरी खोल्नुहोस्"</string>
</resources>
diff --git a/packages/SystemUI/res/values-night/colors.xml b/packages/SystemUI/res/values-night/colors.xml
index 8f88950..c473229 100644
--- a/packages/SystemUI/res/values-night/colors.xml
+++ b/packages/SystemUI/res/values-night/colors.xml
@@ -95,9 +95,6 @@
<!-- Color of background circle of user avatars in quick settings user switcher -->
<color name="qs_user_switcher_avatar_background">#3C4043</color>
- <!-- Colors for privacy dialog. These should be changed to the new palette -->
- <color name="privacy_circle">#81C995</color> <!-- g300 -->
-
<!-- Accessibility floating menu -->
<color name="accessibility_floating_menu_background">#B3000000</color> <!-- 70% -->
</resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index d5d0946..c007b65 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobiele hotspot staat uit."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobiele hotspot staat aan."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Casten van scherm gestopt."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Werkmodus uit."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Werkmodus aan."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Werkmodus staat uit."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Werkmodus staat aan."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Databesparing staat uit."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Databesparing staat aan."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limiet van <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Waarschuwing voor <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Werkprofiel"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Nachtverlichting"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Aan bij zonsondergang"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Tot zonsopgang"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Alles tonen"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Ontgrendelen om te betalen"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Klaar"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Betaling instellen"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Ontgrendelen om te gebruiken"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Er is een probleem opgetreden bij het ophalen van je kaarten. Probeer het later opnieuw."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Werkprofiel"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Vliegtuigmodus"</string>
<string name="add_tile" msgid="6239678623873086686">"Tegel toevoegen"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> verlaagd naar Stil"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> hoger gerangschikt"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> lager gerangschikt"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Staat altijd bovenaan je meldingen, ook als de prioriteitsstand aanstaat"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Wordt getoond bovenaan gespreksmeldingen en als profielfoto op het vergrendelscherm"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Wordt getoond bovenaan gespreksmeldingen en als profielfoto op het vergrendelscherm, verschijnt als bubbel"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Wordt getoond bovenaan gespreksmeldingen en als profielfoto op het vergrendelscherm, onderbreekt Niet storen"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Wordt getoond bovenaan gespreksmeldingen en als profielfoto op het vergrendelscherm, verschijnt als bubbel, onderbreekt Niet storen"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Instellingen"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioriteitsgesprekken"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioriteit"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ondersteunt geen gespreksfuncties"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Deze meldingen kunnen niet worden aangepast."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Deze groep meldingen kan hier niet worden ingesteld"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Aan"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Uit"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Niet beschikbaar"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigatiebalk"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Lay-out"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Extra knoptype links"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systeemnavigatie geüpdatet. Als je wijzigingen wilt aanbrengen, ga je naar Instellingen."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ga naar Instellingen om de systeemnavigatie te updaten"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stand-by"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Gesprek ingesteld als prioriteit"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioriteitsgesprekken"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Deze gesprekken staan bovenaan je lijst en kunnen je altijd bereiken als de prioriteitsstand aanstaat"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profielfoto\'s worden getoond op het vergrendelscherm"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Je kunt deze gesprekken makkelijk vinden in ballonnen op je startscherm"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Onderbreken \'Niet storen\'"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Instellingen"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Vergrotingsvenster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Bediening van vergrotingsvenster"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Inzoomen"</string>
diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml
index 95f1d35..c57dd52 100644
--- a/packages/SystemUI/res/values-or/strings.xml
+++ b/packages/SystemUI/res/values-or/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"ମୋବାଇଲ୍ ହଟସ୍ପଟ୍ ବନ୍ଦ ଅଛି।"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"ମୋବାଇଲ୍ ହଟସ୍ପଟ୍ ଅନ୍ ଅଛି।"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"ସ୍କ୍ରୀନ୍ କାଷ୍ଟ କରିବା ରହିଯାଇଛି।"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"ୱର୍କ ମୋଡ୍ ଅଫ୍।"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"ୱର୍କ ମୋଡ୍ ଅନ୍।"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"ୱର୍କ ମୋଡ୍କୁ ଅଫ୍ କରାଯାଇଛି।"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"ୱର୍କ ମୋଡ୍କୁ ଅନ୍ କରାଯାଇଛି।"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ଡାଟା ସେଭର୍ ଅଫ୍ କରାଗଲା।"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ଡାଟା ସେଭର୍ ଅନ୍ କରାଗଲା।"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ସୀମା"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ଚେତାବନୀ"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"ୱର୍କ ପ୍ରୋଫାଇଲ୍"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"ନାଇଟ୍ ଲାଇଟ୍"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"ସୂର୍ଯ୍ୟାସ୍ତ ବେଳେ ଅନ୍ ହେବ"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"ସୂର୍ଯ୍ୟୋଦୟ ପର୍ଯ୍ୟନ୍ତ"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"ୱାଲେଟ୍"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"ସବୁ ଦେଖାନ୍ତୁ"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ପେମେଣ୍ଟ କରିବାକୁ ଅନଲକ୍ କରନ୍ତୁ"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"ପ୍ରସ୍ତୁତ"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"ପେମେଣ୍ଟ ସେଟ୍ ଅପ୍ କରନ୍ତୁ"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ବ୍ୟବହାର କରିବାକୁ ଅନଲକ୍ କରନ୍ତୁ"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"ଆପଣଙ୍କ କାର୍ଡଗୁଡ଼ିକ ପାଇବାରେ ଏକ ସମସ୍ୟା ହୋଇଥିଲା। ଦୟାକରି ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"ୱର୍କ ପ୍ରୋଫାଇଲ୍"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"ଏରୋପ୍ଲେନ୍ ମୋଡ୍"</string>
<string name="add_tile" msgid="6239678623873086686">"ଟାଇଲ୍ ଯୋଡ଼ନ୍ତୁ"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>ସ୍ଥିତି:</b> ନୀରବକୁ ଡିମୋଟ୍ କରାଯାଇଛି"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>ସ୍ଥିତି:</b> ରେଙ୍କ ଉପରକୁ କରାଯାଇଛି"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>ସ୍ଥିତି:</b> ରେଙ୍କ ତଳକୁ କରାଯାଇଛି"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"ଆପଣଙ୍କ ପ୍ରାଥମିକତା ମୋଡ୍ ଚାଲୁ ଥିବା ସମୟରେ ମଧ୍ୟ ସର୍ବଦା ଆପଣଙ୍କ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ଶୀର୍ଷରେ ଦେଖାଯାଇଥାଏ"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"ସେଟିଂସ୍"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"ପ୍ରାଥମିକତା ଦିଆଯାଇଥିବା ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"ପ୍ରାଥମିକତା"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ବାର୍ତ୍ତାଳାପ ଫିଚରଗୁଡ଼ିକୁ ସମର୍ଥନ କରେ ନାହିଁ"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପରିବର୍ତ୍ତନ କରିହେବ ନାହିଁ।"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"ଏଠାରେ ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ଗ୍ରୁପ୍ କନଫ୍ୟୁଗର୍ କରାଯାଇପାରିବ ନାହିଁ"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ଚାଲୁ"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ବନ୍ଦ"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"ଅନୁପଲବ୍ଧ"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"ନାଭିଗେଶନ୍ ବାର୍"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"ଲେଆଉଟ୍"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"ସମ୍ପୂର୍ଣ୍ଣ ବାମ ବଟନ୍ ପ୍ରକାର"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ସିଷ୍ଟମ୍ ନାଭିଗେସନ୍ ଅପ୍ଡେଟ୍ ହୋଇଛି। ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ, ସେଟିଂସ୍କୁ ଯାଆନ୍ତୁ।"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ସିଷ୍ଟମ୍ ନାଭିଗେସନ୍ ଅପ୍ଡେଟ୍ କରିବା ପାଇଁ ସେଟିଂସ୍କୁ ଯାଆନ୍ତୁ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ଷ୍ଟାଣ୍ଡବାଏ"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"ବାର୍ତ୍ତାଳାପ ପ୍ରାଥମିକତାରେ ସେଟ୍ କରାଯାଇଛି"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"ପ୍ରାଥମିକତା ଦିଆଯାଇଥିବା ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ଏହି ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ ଆପଣଙ୍କ ତାଲିକାର ଶୀର୍ଷରେ ଦେଖାଯାଏ ଏବଂ ପ୍ରାଥମିକତା ମୋଡ୍ ଚାଲୁ ଥିବା ସମୟରେ ସର୍ବଦା ଆପଣଙ୍କ ନିକଟରେ ପହଞ୍ଚିପାରିବ"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"ପ୍ରୋଫାଇଲ୍ ଛବିଗୁଡ଼ିକ ଲକ୍ ସ୍କ୍ରିନରେ ଦେଖାଯାଏ"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"ଆପଣ ଆପଣଙ୍କ ମୂଳସ୍କ୍ରିନରେ ଥିବା ବବଲଗୁଡ଼ିକରେ ଏହି ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକୁ ସହଜରେ ପାଇପାରିବେ"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"\'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\' ମୋଡରେ ବାଧା"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"ବୁଝିଗଲି"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"ସେଟିଂସ୍"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"ମ୍ୟାଗ୍ନିଫିକେସନ୍ ୱିଣ୍ଡୋ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ମ୍ୟାଗ୍ନିଫିକେସନ୍ ୱିଣ୍ଡୋ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ଜୁମ୍ ଇନ୍ କରନ୍ତୁ"</string>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index e0e1b4f..58130d4 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"ਮੋਬਾਈਲ ਹੌਟਸਪੌਟ ਬੰਦ ਕੀਤਾ।"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"ਮੋਬਾਈਲ ਹੌਟਸਪੌਟ ਚਾਲੂ ਕੀਤਾ।"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"ਸਕ੍ਰੀਨ ਜੋੜਨਾ ਬੰਦ ਹੋਇਆ।"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"ਕੰਮ ਮੋਡ ਬੰਦ ਹੈ।"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"ਕੰਮ ਮੋਡ ਚਾਲੂ ਹੈ।"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"ਕੰਮ ਮੋਡ ਬੰਦ ਕੀਤਾ ਗਿਆ।"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"ਕੰਮ ਮੋਡ ਚਾਲੂ ਕੀਤਾ ਗਿਆ।"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ਡਾਟਾ ਸੇਵਰ ਬੰਦ ਕੀਤਾ ਗਿਆ।"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ਡਾਟਾ ਸੇਵਰ ਚਾਲੂ ਕੀਤਾ ਗਿਆ।"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ਸੀਮਾ"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ਚਿਤਾਵਨੀ"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"ਰਾਤ ਦੀ ਰੋਸ਼ਨੀ"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"ਸੂਰਜ ਛਿਪਣ \'ਤੇ ਚਾਲੂ"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"ਸੂਰਜ ਚੜ੍ਹਨ ਤੱਕ"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"ਵਾਲੇਟ"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"ਸਭ ਦਿਖਾਓ"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ਭੁਗਤਾਨ ਕਰਨ ਲਈ ਅਣਲਾਕ ਕਰੋ"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"ਤਿਆਰ"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"ਭੁਗਤਾਨ ਸੈੱਟਅੱਪ ਕਰੋ"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ਵਰਤਣ ਲਈ ਅਣਲਾਕ ਕਰੋ"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"ਤੁਹਾਡੇ ਕਾਰਡ ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਕੋਈ ਸਮੱਸਿਆ ਆਈ, ਕਿਰਪਾ ਕਰਕੇ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"ਹਵਾਈ-ਜਹਾਜ਼ ਮੋਡ"</string>
<string name="add_tile" msgid="6239678623873086686">"ਟਾਇਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>ਸਥਿਤੀ:</b> ਦਰਜਾ ਘਟਾ ਕੇ ਸ਼ਾਂਤ \'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>ਸਥਿਤੀ:</b> ਦਰਜਾ ਵਧਾਇਆ ਗਿਆ"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>ਸਥਿਤੀ:</b> ਦਰਜਾ ਘਟਾਇਆ ਗਿਆ"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"ਹਮੇਸ਼ਾਂ ਤੁਹਾਡੀਆਂ ਸੂਚਨਾਵਾਂ ਦੇ ਸਿਖਰ \'ਤੇ ਦਿਖਾਇਆ ਜਾਂਦਾ ਹੈ, ਭਾਵੇਂ ਤਰਜੀਹ ਮੋਡ ਚਾਲੂ ਹੋਵੇ"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"ਸੈਟਿੰਗਾਂ"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"ਤਰਜੀਹੀ ਗੱਲਾਂਬਾਤਾਂ"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"ਤਰਜੀਹ"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਐਪ ਗੱਲਬਾਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"ਇਹਨਾਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"ਇਹ ਸੂਚਨਾਵਾਂ ਦਾ ਗਰੁੱਪ ਇੱਥੇ ਸੰਰੂਪਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ਚਾਲੂ"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ਬੰਦ"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"ਅਣਉਪਲਬਧ"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ ਪੱਟੀ"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"ਖਾਕਾ"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"ਵਧੇਰੇ ਖੱਬੇ ਬਟਨ ਕਿਸਮ"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ਸਿਸਟਮ ਨੈਵੀਗੇਸ਼ਨ ਅੱਪਡੇਟ ਹੋ ਗਿਆ। ਤਬਦੀਲੀਆਂ ਕਰਨ ਲਈ, ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ।"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ਸਿਸਟਮ ਨੈਵੀਗੇਸ਼ਨ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ਸਟੈਂਡਬਾਈ"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"ਗੱਲਬਾਤ ਨੂੰ ਤਰਜੀਹੀ ਗੱਲਬਾਤ ਵਜੋਂ ਸੈੱਟ ਕੀਤਾ ਗਿਆ"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"ਤਰਜੀਹੀ ਗੱਲਾਂਬਾਤਾਂ"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ਇਹ ਗੱਲਾਂਬਾਤਾਂ ਤੁਹਾਡੀ ਸੂਚੀ ਦੇ ਸਿਖਰ \'ਤੇ ਦਿਖਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ ਅਤੇ ਤਰਜੀਹ ਮੋਡ ਚਾਲੂ ਹੋਣ \'ਤੇ ਹਮੇਸ਼ਾਂ ਤੁਹਾਡੇ ਤੱਕ ਪਹੁੰਚ ਸਕਦੀਆਂ ਹਨ"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"ਪ੍ਰੋਫਾਈਲ ਤਸਵੀਰਾਂ ਨੂੰ ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਦਿਖਾਇਆ ਜਾਂਦਾ ਹੈ"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"ਤੁਸੀਂ ਆਪਣੀ ਹੋਮ ਸਕ੍ਰੀਨ \'ਤੇ ਬੁਲਬੁਲਿਆਂ ਵਿੱਚ ਇਹਨਾਂ ਗੱਲਾਂਬਾਤਾਂ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਲੱਭ ਸਕਦੇ ਹੋ"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"\'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਵਿਘਨ ਪੈ ਸਕਦਾ ਹੈ"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"ਸਮਝ ਲਿਆ"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"ਸੈਟਿੰਗਾਂ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"ਵੱਡਦਰਸ਼ੀਕਰਨ Window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ਵੱਡਦਰਸ਼ੀਕਰਨ Window ਦੇ ਕੰਟਰੋਲ"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ਜ਼ੂਮ ਵਧਾਓ"</string>
@@ -1044,8 +1051,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"ਹੇਠਾਂ ਵੱਲ ਸੱਜੇ ਲਿਜਾਓ"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"ਕਿਨਾਰੇ ਵਿੱਚ ਲਿਜਾ ਕੇ ਲੁਕਾਓ"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"ਕਿਨਾਰੇ ਤੋਂ ਬਾਹਰ ਕੱਢ ਕੇ ਦਿਖਾਓ"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"ਟੌਗਲ ਕਰੋ"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"ਡੀਵਾਈਸ ਕੰਟਰੋਲ"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"ਆਪਣੇ ਕਨੈਕਟ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਲਈ ਕੰਟਰੋਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"ਡੀਵਾਈਸ ਕੰਟਰੋਲਾਂ ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ"</string>
@@ -1092,8 +1098,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"ਖਾਰਜ ਕਰੋ"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"ਮੁੜ-ਚਾਲੂ ਕਰੋ"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"ਸੈਟਿੰਗਾਂ"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"ਚਲਾਓ"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"ਅਕਿਰਿਆਸ਼ੀਲ, ਐਪ ਦੀ ਜਾਂਚ ਕਰੋ"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"ਗੜਬੜ, ਮੁੜ ਕੋਸ਼ਿਸ਼ ਹੋ ਰਹੀ ਹੈ…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"ਨਹੀਂ ਮਿਲਿਆ"</string>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index d95eabc..20075e9 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobilny hotspot został wyłączony."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobilny hotspot został włączony."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Zatrzymano przesyłanie ekranu."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Tryb pracy wyłączony."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Tryb pracy włączony."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Tryb pracy wyłączony."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Tryb pracy włączony."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Oszczędzanie danych jest wyłączone."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Oszczędzanie danych jest włączone."</string>
@@ -414,6 +416,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limit <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Ostrzeżenie: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Profil służbowy"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Podświetlenie nocne"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Włącz o zachodzie"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Do wschodu słońca"</string>
@@ -674,10 +678,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Portfel"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Pokaż wszystko"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Odblokuj, aby zapłacić"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Gotowe"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Skonfiguruj płatność"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Odblokuj, aby użyć"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Podczas pobierania kart wystąpił problem. Spróbuj ponownie później."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profil służbowy"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Tryb samolotowy"</string>
<string name="add_tile" msgid="6239678623873086686">"Dodaj nazwę"</string>
@@ -746,9 +752,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Stan:</b> zmieniono na Ciche"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Stan:</b> podniesiono ważność"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Stan:</b> obniżono ważność"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Zawsze pokazywane u góry powiadomień, nawet po włączeniu trybu Priorytet"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Wyświetla się u góry powiadomień w rozmowach oraz jako zdjęcie profilowe na ekran blokady"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Wyświetla się u góry powiadomień w rozmowach oraz jako zdjęcie profilowe na ekran blokady, jako dymek"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Wyświetla się u góry powiadomień w rozmowach oraz jako zdjęcie profilowe na ekran blokady, przerywa działanie trybu Nie przeszkadzać"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Wyświetla się u góry powiadomień w rozmowach oraz jako zdjęcie profilowe na ekran blokady, jako dymek, przerywa działanie trybu Nie przeszkadzać"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Ustawienia"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Rozmowy priorytetowe"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priorytet"</string>
<string name="no_shortcut" msgid="8257177117568230126">"Aplikacja <xliff:g id="APP_NAME">%1$s</xliff:g> nie obsługuje funkcji rozmów"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Tych powiadomień nie można zmodyfikować."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Tej grupy powiadomień nie można tu skonfigurować"</string>
@@ -868,6 +877,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Wł."</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Wył."</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Niedostępne"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Pasek nawigacji"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Układ"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Typ dodatkowego lewego przycisku"</string>
@@ -1026,14 +1037,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Nawigacja w systemie została zaktualizowana. Aby wprowadzić zmiany, otwórz Ustawienia."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Otwórz Ustawienia, by zaktualizować nawigację w systemie"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Tryb gotowości"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Rozmowę ustawiono jako priorytetową"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Rozmowy priorytetowe"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Te rozmowy są pokazywane na początku listy i nie przegapisz ich, jeśli włączysz tryb Priorytet"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Zdjęcia profilowe są widoczne na ekranie blokady"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Łatwo znajdziesz te rozmowy w dymkach na ekranie głównym"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Ignorują tryb Nie przeszkadzać"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Ustawienia"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Okno powiększenia"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Elementy sterujące okna powiększenia"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Powiększ"</string>
@@ -1054,8 +1057,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Przenieś w prawy dolny róg"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Przenieś do krawędzi i ukryj"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Przenieś poza krawędź i pokaż"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"przełącz"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Sterowanie urządzeniami"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Dodaj elementy sterujące połączonymi urządzeniami"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Konfigurowanie sterowania urządzeniami"</string>
@@ -1104,8 +1106,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Odrzuć"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Wznów"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Ustawienia"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Odtwórz"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Nieaktywny, sprawdź aplikację"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Błąd, próbuję jeszcze raz…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Nie znaleziono"</string>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index b786dfb..8f4634c 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"O ponto de acesso móvel foi desativado."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"O ponto de acesso móvel foi ativado."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"A transmissão de tela foi interrompida."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Modo de trabalho desativado."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Modo de trabalho ativado."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Modo de trabalho desativado."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Modo de trabalho ativado."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Economia de dados desativada."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Economia de dados ativada."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limite: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Aviso de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Perfil de trabalho"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Modo noturno"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Ativ. ao pôr do sol"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Até o nascer do sol"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Carteira"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Mostrar tudo"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Desbloqueie para pagar"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Pronto"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configurar o pagamento"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Desbloquear para usar"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Ocorreu um problema ao carregar os cards. Tente novamente mais tarde"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Perfil de trabalho"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Modo avião"</string>
<string name="add_tile" msgid="6239678623873086686">"Adicionar bloco"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> rebaixada a Silenciosa"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> classificada com maior prioridade"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> classificada com menor prioridade"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Sempre aparecem em cima das notificações, mesmo quando o modo Prioridade está ativado"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Aparece na parte superior das notificações de conversa e como uma foto do perfil na tela de bloqueio"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Aparece na parte superior das notificações de conversa, como uma foto do perfil na tela de bloqueio e como um balão"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Aparece na parte superior das notificações de conversa e como uma foto do perfil na tela de bloqueio. Interrompe o Não perturbe"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Aparece na parte superior das notificações de conversa, como uma foto do perfil na tela de bloqueio e como um balão. Interrompe o Não perturbe"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Configurações"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Conversas prioritárias"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritárias"</string>
<string name="no_shortcut" msgid="8257177117568230126">"O app <xliff:g id="APP_NAME">%1$s</xliff:g> não é compatível com recursos de conversa"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar essas notificações."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar esse grupo de notificações aqui"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Ativado"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Desativado"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Indisponível"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Barra de navegação"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Tipo de botão esquerdo extra"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navegação no sistema atualizada. Se quiser alterá-la, acesse as configurações."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Acesse as configurações para atualizar a navegação no sistema"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Em espera"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"A conversa foi definida como prioritária"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Conversas prioritárias"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Essas conversas são exibidas em cima da sua lista e ficam em evidência quando o modo Prioridade está ativado"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"As fotos do perfil são exibidas na tela de bloqueio"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Veja essas conversas com facilidade em balões na sua tela inicial"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interromper o \"Não perturbe\""</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Ok"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Configurações"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Janela de ampliação"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controles da janela de ampliação"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Aumentar zoom"</string>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 496fcb2..f4f95ea 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Zona Wi-Fi móvel desligada."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Zona Wi-Fi móvel ligada."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Transmissão do ecrã interrompida."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Modo de trabalho desativado."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Modo de trabalho ativado."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"O modo de trabalho foi desativado."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"O modo de trabalho foi ativado."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Poupança de dados desativada."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Poupança de dados ativada."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limite de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Aviso de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Perfil de trabalho"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Luz noturna"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Ativ. ao pôr-do-sol"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Até ao amanhecer"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Carteira"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Mostrar tudo"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Desbloquear para pagar"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Pronto"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configurar pagamento"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Desbloquear para utilizar"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Ocorreu um problema ao obter os seus cartões. Tente novamente mais tarde."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Perfil de trabalho"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Modo de avião"</string>
<string name="add_tile" msgid="6239678623873086686">"Adicionar mosaico"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Estado:</b> despromovida para Silenciosa"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Estado:</b> passou para classificação superior"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Estado:</b> passou para classificação inferior"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Apresentadas sempre no topo das suas notificações, mesmo quando o modo Prioridade está ativado"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Aparece na parte superior das notificações de conversas e como uma imagem do perfil no ecrã de bloqueio"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Aparece na parte superior das notificações de conversas e como uma imagem do perfil no ecrã de bloqueio, surge como um balão"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Aparece na parte superior das notificações de conversas e como uma imagem do perfil no ecrã de bloqueio, interrompe o modo Não incomodar"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Aparece na parte superior das notificações de conversas e como uma imagem do perfil no ecrã de bloqueio, surge como um balão, interrompe o modo Não incomodar"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Definições"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Conversas com prioridade"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioridade"</string>
<string name="no_shortcut" msgid="8257177117568230126">"A app <xliff:g id="APP_NAME">%1$s</xliff:g> não suporta funcionalidades de conversa."</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar estas notificações."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar este grupo de notificações aqui."</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Ativado"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Desativado"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Indisponível"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Barra de navegação"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Esquema"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Tipo de botão esquerdo adicional"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"A navegação no sistema foi atualizada. Para efetuar alterações, aceda às Definições."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Aceda às Definições para atualizar a navegação no sistema."</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Modo de espera"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Conversa definida como prioritária"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Conversas com prioridade"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Estas conversas são apresentadas no topo da sua lista e recebe-as sempre quando o modo Prioridade está ativado"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"As imagens de perfil são apresentadas no ecrã de bloqueio"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Pode encontrar facilmente estas conversas em balões no seu ecrã principal"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interrompem o modo Não incomodar."</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Definições"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Janela de ampliação"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controlos da janela de ampliação"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Aumentar zoom"</string>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index b786dfb..8f4634c 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"O ponto de acesso móvel foi desativado."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"O ponto de acesso móvel foi ativado."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"A transmissão de tela foi interrompida."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Modo de trabalho desativado."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Modo de trabalho ativado."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Modo de trabalho desativado."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Modo de trabalho ativado."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Economia de dados desativada."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Economia de dados ativada."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limite: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Aviso de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Perfil de trabalho"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Modo noturno"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Ativ. ao pôr do sol"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Até o nascer do sol"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Carteira"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Mostrar tudo"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Desbloqueie para pagar"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Pronto"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configurar o pagamento"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Desbloquear para usar"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Ocorreu um problema ao carregar os cards. Tente novamente mais tarde"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Perfil de trabalho"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Modo avião"</string>
<string name="add_tile" msgid="6239678623873086686">"Adicionar bloco"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> rebaixada a Silenciosa"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> classificada com maior prioridade"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> classificada com menor prioridade"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Sempre aparecem em cima das notificações, mesmo quando o modo Prioridade está ativado"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Aparece na parte superior das notificações de conversa e como uma foto do perfil na tela de bloqueio"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Aparece na parte superior das notificações de conversa, como uma foto do perfil na tela de bloqueio e como um balão"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Aparece na parte superior das notificações de conversa e como uma foto do perfil na tela de bloqueio. Interrompe o Não perturbe"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Aparece na parte superior das notificações de conversa, como uma foto do perfil na tela de bloqueio e como um balão. Interrompe o Não perturbe"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Configurações"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Conversas prioritárias"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritárias"</string>
<string name="no_shortcut" msgid="8257177117568230126">"O app <xliff:g id="APP_NAME">%1$s</xliff:g> não é compatível com recursos de conversa"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar essas notificações."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar esse grupo de notificações aqui"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Ativado"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Desativado"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Indisponível"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Barra de navegação"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Tipo de botão esquerdo extra"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navegação no sistema atualizada. Se quiser alterá-la, acesse as configurações."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Acesse as configurações para atualizar a navegação no sistema"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Em espera"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"A conversa foi definida como prioritária"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Conversas prioritárias"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Essas conversas são exibidas em cima da sua lista e ficam em evidência quando o modo Prioridade está ativado"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"As fotos do perfil são exibidas na tela de bloqueio"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Veja essas conversas com facilidade em balões na sua tela inicial"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Interromper o \"Não perturbe\""</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Ok"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Configurações"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Janela de ampliação"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controles da janela de ampliação"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Aumentar zoom"</string>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index 2100466..9e669bb 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Hotspotul mobil este dezactivat."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Hotspotul mobil este activat."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Transmiterea ecranului a fost oprită."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Modul de lucru este dezactivat."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Modul de lucru este activat."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Modul de lucru a fost dezactivat."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Modul de lucru a fost activat."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Economizorul de date a fost dezactivat."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Economizorul de date a fost activat."</string>
@@ -412,6 +414,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limită de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Avertizare: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Profil de serviciu"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Lumină de noapte"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Activată la apus"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Până la răsărit"</string>
@@ -671,10 +675,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Afișați-le pe toate"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Deblocați pentru a plăti"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Gata"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Configurați o metodă de plată"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Deblocați pentru a folosi"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"A apărut o problemă la preluarea cardurilor. Încercați din nou mai târziu"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profil de serviciu"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Mod Avion"</string>
<string name="add_tile" msgid="6239678623873086686">"Adăugați o casetă"</string>
@@ -743,9 +749,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Stare:</b> setată ca Silențioasă"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Stare:</b> clasificată mai sus"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Stare:</b> clasificată mai jos"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Se afișează întotdeauna în partea de sus a notificărilor, chiar și când modul Cu prioritate este activat"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Se afișează în partea de sus a notificărilor pentru conversații și ca fotografie de profil pe ecranul de blocare"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Se afișează în partea de sus a notificărilor pentru conversații și ca fotografie de profil pe ecranul de blocare, apare ca un balon"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Se afișează în partea de sus a notificărilor pentru conversații și ca fotografie de profil pe ecranul de blocare, întrerupe funcția Nu deranja"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Se afișează în partea de sus a notificărilor pentru conversații și ca fotografie de profil pe ecranul de blocare, apare ca un balon, întrerupe funcția Nu deranja"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Setări"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Conversații cu prioritate"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritate"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> nu acceptă funcții pentru conversații"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Aceste notificări nu pot fi modificate."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Acest grup de notificări nu poate fi configurat aici"</string>
@@ -863,6 +872,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Activat"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Dezactivați"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Indisponibil"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Bară de navigare"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Aspect"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Tip de buton din extrema stângă"</string>
@@ -1021,14 +1032,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigarea în sistem a fost actualizată. Pentru a face modificări, accesați Setările."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Accesați Setările pentru a actualiza navigarea în sistem"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Conversația a fost setată ca prioritară"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Conversații cu prioritate"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Aceste conversații se afișează în partea de sus a listei și apar chiar și când modul Cu prioritate este activat"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Fotografiile de profil apar pe ecranul de blocare"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Găsiți cu ușurință aceste conversații în baloane pe ecranul de pornire"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Întrerup modul Nu deranja"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Setări"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Fereastra de mărire"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Comenzi pentru fereastra de mărire"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Măriți"</string>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 6fdb8bc..65927fb 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Точка доступа отключена."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Точка доступа включена."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Трансляция прекращена."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Рабочий режим отключен."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Рабочий режим включен."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Рабочий режим отключен."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Рабочий режим включен."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Режим экономии трафика отключен."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Режим экономии трафика включен."</string>
@@ -414,6 +416,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Ограничение: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Предупреждение: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Рабочий профиль"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Ночная подсветка"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Вкл. на закате"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"До рассвета"</string>
@@ -674,10 +678,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Кошелек"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Показать все"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Разблокировать для оплаты"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Можно использовать"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Добавить способ оплаты"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Разблокировать для использования"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Не удалось получить информацию о картах. Повторите попытку позже."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Рабочий профиль"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Режим полета"</string>
<string name="add_tile" msgid="6239678623873086686">"Добавить кнопку быстрого доступа"</string>
@@ -746,9 +752,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Статус:</b> понижено до уровня \"Без звука\""</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Статус:</b> уровень важности повышен"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Статус:</b> уровень важности понижен"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Всегда показывается вверху списка уведомлений, даже если включен режим \"Только важные\""</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Появляется в верхней части уведомлений о сообщениях, а также в качестве фото профиля на заблокированном экране"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Появляется в верхней части уведомлений о сообщениях, в виде всплывающего чата, а также в качестве фото профиля на заблокированном экране."</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Появляется в верхней части уведомлений о сообщениях, а также в качестве фото профиля на заблокированном экране, прерывает режим \"Не беспокоить\"."</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Появляется в верхней части уведомлений о сообщениях, в виде всплывающего чата, а также в качестве фото профиля на заблокированном экране, прерывает режим \"Не беспокоить\"."</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Настройки"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Важные разговоры"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Приоритет"</string>
<string name="no_shortcut" msgid="8257177117568230126">"Приложение \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" не поддерживает функции разговоров."</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Эти уведомления нельзя изменить."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Эту группу уведомлений нельзя настроить здесь."</string>
@@ -868,6 +877,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Включено"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Отключено"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Недоступно"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Панель навигации"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Расположение кнопок"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Дополнительный тип кнопки \"Влево\""</string>
@@ -1026,14 +1037,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Параметры навигации в системе обновлены. Чтобы изменить их, перейдите в настройки."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Чтобы обновить параметры навигации в системе, перейдите в настройки."</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Переход в режим ожидания"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Разговор помечен как важный"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Важные разговоры."</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Эти разговоры показываются вверху списка, и вы можете их читать при включенном режиме \"Только важные\"."</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"На заблокированном экране показываются фото профиля."</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Эти разговоры можно найти во всплывающих чатах на главном экране."</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Показывать в режиме \"Не беспокоить\""</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"ОК"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Настройки"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Окно увеличения"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Настройки окна увеличения"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Увеличить"</string>
@@ -1054,8 +1057,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Перенести в правый нижний угол"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Перенести к краю и скрыть"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Вернуть из-за края и показать"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"включить или отключить"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Управление устройствами"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Добавьте виджеты для управления устройствами."</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Настройте виджеты управления устройствами"</string>
@@ -1104,8 +1106,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Скрыть"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Возобновить"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Настройки"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Воспроизведение"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Нет ответа. Проверьте приложение."</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Ошибка. Повторная попытка…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Не найдено."</string>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index 45abf95..07d18ad 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"ජංගම හොට්ස්පොටය අක්රිය කරන ලදි."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"ජංගම හොට්ස්පොටය සක්රිය කරන ලදි."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"තිරය විකාශය කිරීම නැවත් වන ලදි."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"වැඩ ප්රකාරය ක්රියාවිරහිතයි."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"වැඩ ප්රකාරය ක්රියාත්මකයි."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"වැඩ ප්රකාරය ක්රියාවිරහිත කරන ලදී."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"වැඩ ප්රකාරය ක්රියාත්මක කරන ලදී."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"දත්ත සුරැකුම ක්රියාවිරහිත කරන ලදී."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"දත්ත සුරැකුම ක්රියාත්මක කරන ලදී."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> සීමිත"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> අවවාද කිරීම"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"කාර්යාල පැතිකඩ"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"රාත්රී ආලෝකය"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"හිරු බැසීමේදී ක්රි."</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"හිරු නගින තෙක්"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"පසුම්බිය"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"සියල්ල පෙන්වන්න"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ගෙවීමට අගුලු හරින්න"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"සූදානම්"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"ගෙවීම පිහිටුවන්න"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"භාවිත කිරීමට අගුලු හරින්න"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"ඔබගේ කාඩ්පත ලබා ගැනීමේ ගැටලුවක් විය, කරුණාකර පසුව නැවත උත්සාහ කරන්න"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"කාර්යාල පැතිකඩ"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"ගුවන්යානා ප්රකාරය"</string>
<string name="add_tile" msgid="6239678623873086686">"ටයිල් එක් කරන්න"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>තත්ත්වය:</b> නිශ්ශබ්ද වෙත පහත දමන ලදි"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>තත්ත්වය:</b> ඉහළට ශ්රේණිගත කරන ලදි"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>තත්ත්වය:</b> පහළට ශ්රේණිගත කරන ලදි"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"ප්රමුඛතා ප්රකාරය ක්රියාත්මක විට පවා, ඔබගේ දැනුම්දීම්වල ඉහළින්ම පෙන්වයි"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"සංවාද දැනුම්දීම්වල ඉහළින්ම සහ අගුලු තිරයේ ඇති පැතිකඩ පින්තූරයක් ලෙස පෙන්වයි"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"සංවාද දැනුම්දීම්වල ඉහළින්ම සහ අගුලු තිරයේ ඇති පැතිකඩ පින්තූරයක් ලෙස පෙන්වයි, බුබුළක් ලෙස දිස් වේ"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"සංවාද දැනුම්දීම්වල ඉහළින්ම සහ අගුලු තිරයේ ඇති පැතිකඩ පින්තූරයක් ලෙස පෙන්වයි, බාධා නොකරන්න සඳහා බාධා කරයි"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"සංවාද දැනුම්දීම්වල ඉහළින්ම සහ අගුලු තිරයේ ඇති පැතිකඩ පින්තූරයක් ලෙස පෙන්වයි, බුබුළක් ලෙස දිස් වේ, බාධා නොකරන්න සඳහා බාධා කරයි"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"සැකසීම්"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"ප්රමුඛතා සංවාද"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"ප්රමුඛතාව"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> සංවාද විශේෂාංගවලට සහාය නොදක්වයි"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"මෙම දැනුම්දීම් වෙනස් කළ නොහැක."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"මෙම දැනුම්දීම් සමූහය මෙහි වින්යාස කළ නොහැක"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ක්රියාත්මකයි"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ක්රියාවිරහිතයි"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"ලබා ගත නොහැකිය"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"සංචලන තීරුව"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"පිරිසැලසුම"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"අමතර වම් බොත්තම් වර්ගය"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"පද්ධති සංචලනය යාවත්කාලීන කළා. වෙනස්කම් සිදු කිරීමට, සැකසීම් වෙත යන්න."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"පද්ධති සංචලනය යාවත්කාලීන කිරීමට සැකසීම් වෙත යන්න"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"පොරොත්තු"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"සංවාදය ප්රමුඛතාව වෙත සකසන ලදී"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"ප්රමුඛතා සංවාද"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"මෙම සංවාද ඔබගේ ලැයිස්තුවේ ඉහළින්ම පෙන්වන අතර ප්රමුඛතා ප්රකාරය ක්රියාත්මක විට සෑම විටම ඔබ වෙත ළඟා විය හැකිය"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"අගුලු තිරයේ පැතිකඩ පින්තූර පෙන්වයි"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"ඔබටද ඔබගේ මුල් තිරයේ බුබුළුවල මෙම සංවාද පහසුවෙන් සොයා ගත හැකිය"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"බාධා නොකරන්න හට බාධා කරන්න"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"තේරුණා"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"සැකසීම්"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"විශාලන කවුළුව"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"විශාලනය කිරීමේ කවුළු පාලන"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"විශාලනය වැඩි කරන්න"</string>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 63c3b8b..7392c21 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobilný hotspot je vypnutý."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobilný hotspot je zapnutý."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Prenášanie bolo zastavené."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Pracovný režim vypnutý"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Pracovný režim zapnutý"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Pracovný režim je vypnutý."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Pracovný režim je zapnutý."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Šetrič dát bol vypnutý."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Šetrič dát bol zapnutý."</string>
@@ -414,6 +416,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Upozornenie pri <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Pracovný profil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Nočný režim"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Zapne sa pri západe slnka"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Do východu slnka"</string>
@@ -674,10 +678,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Peňaženka"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Zobraziť všetko"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Odomknúť a zaplatiť"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Pripravené"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Nastaviť platbu"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Odomknúť a použiť"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Pri načítavaní kariet sa vyskytol problém. Skúste to neskôr."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Pracovný profil"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Režim v lietadle"</string>
<string name="add_tile" msgid="6239678623873086686">"Pridať dlaždicu"</string>
@@ -746,9 +752,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Preradené nižšie do kategórie Tiché"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Preradené vyššie"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Stav:</b> Preradené nižšie"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Vždy sa zobrazuje v hornej časti upozornení, aj keď je zapnutý režim priority"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Zobrazuje sa v hornej časti upozornení konverzácie a ako profilová fotka na uzamknutej obrazovke"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Zobrazuje sa ako bublina v hornej časti upozornení konverzácie a profilová fotka na uzamknutej obrazovke"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Zobrazuje sa v hornej časti upozornení konverzácie a ako profilová fotka na uzamknutej obrazovke, preruší režim bez vyrušení"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Zobrazuje sa ako bublina v hornej časti upozornení konverzácie a profilová fotka na uzamknutej obrazovke, preruší režim bez vyrušení"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Nastavenia"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioritné konverzácie"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priorita"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> nepodporuje funkcie konverzácie"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Tieto upozornenia sa nedajú upraviť."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Túto skupinu upozornení nejde na tomto mieste konfigurovať"</string>
@@ -868,6 +877,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Zapnuté"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Vypnuté"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Nedostupné"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigačný panel"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Rozloženie"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Dodatočný typ ľavého tlačidla"</string>
@@ -1026,14 +1037,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigácia v systéme bola aktualizovaná. Ak chcete vykonať zmeny, prejdite do Nastavení."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Prejdite do Nastavení a aktualizujte navigáciu v systéme"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Pohotovostný režim"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Konverzácia je nastavená ako prioritná"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioritné konverzácie"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Tieto konverzácie sa zobrazujú na začiatku zoznamu a keď je zapnutý režim priority, vždy dostanete upozornenie"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profilové fotky sa zobrazujú na uzamknutej obrazovke"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Tieto konverzácie ľahko nájdete v bublinách na ploche"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Prerušovať režim bez vyrušení"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Dobre"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Nastavenia"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Okno priblíženia"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ovládacie prvky okna priblíženia"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Priblížiť"</string>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index b1f8a2b..1d26588 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobilna dostopna točka je izklopljena."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobilna dostopna točka je vklopljena."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Predvajanje zaslona je ustavljeno."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Način za delo izklopljen."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Način za delo vklopljen."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Način za delo je izklopljen."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Način za delo je vklopljen."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Varčevanje s podatki je izklopljeno."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Varčevanje s podatki je vklopljeno."</string>
@@ -414,6 +416,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Omejitev: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Opozorilo – <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Delovni profil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Nočna svetloba"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Ob sončnem zahodu"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Do sončnega vzhoda"</string>
@@ -674,10 +678,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Denarnica"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Prikaži vse"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Odklenite za plačevanje"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Pripravljeno"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Nastavite plačilno sredstvo"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Odklenite za uporabo"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Pri pridobivanju kartic je prišlo do težave. Poskusite znova pozneje."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profil za Android Work"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Način za letalo"</string>
<string name="add_tile" msgid="6239678623873086686">"Dodajanje ploščice"</string>
@@ -746,9 +752,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Stanje:</b> Uvrščeno med obvestila brez zvoka"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Stanje:</b> Uvrščeno višje"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Stanje:</b> Uvrščeno nižje"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Vedno prikazano na vrhu obvestil, tudi ko je vklopljen prednostni način"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Prikaz na vrhu razdelka z obvestili za pogovor in kot profilna slika na zaklenjenem zaslonu"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Prikaz v obliki oblačka na vrhu razdelka z obvestili za pogovor in kot profilna slika na zaklenjenem zaslonu"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Prikaz na vrhu razdelka z obvestili za pogovor in kot profilna slika na zaklenjenem zaslonu, preglasitev načina Ne moti"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Prikaz v obliki oblačka na vrhu razdelka z obvestili za pogovor in kot profilna slika na zaklenjenem zaslonu, preglasitev načina Ne moti"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Nastavitve"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prednostni pogovori"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prednostno"</string>
<string name="no_shortcut" msgid="8257177117568230126">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> ne podpira pogovornih funkcij."</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Za ta obvestila ni mogoče spremeniti nastavitev."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Te skupine obvestil ni mogoče konfigurirati tukaj"</string>
@@ -868,6 +877,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Vklopljeno"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Izklopljeno"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Ni na voljo"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Vrstica za krmarjenje"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Postavitev"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Vrsta dodatnega levega gumba"</string>
@@ -1026,14 +1037,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Krmarjenje po sistemu je posodobljeno. Če želite opraviti spremembe, odprite nastavitve."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Če želite posodobiti krmarjenje po sistemu, odprite nastavitve"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje pripravljenosti"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Pogovor je nastavljen kot prednosten"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prednostni pogovori"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Ti pogovori so prikazani na vrhu seznama in vas lahko vedno dosežejo, ko je vklopljen prednostni način."</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profilne slike so prikazane na zaklenjenem zaslonu."</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Te pogovore brez težav najdete v oblačkih na začetnem zaslonu."</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Preglasi način »ne moti«"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"V redu"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Nastavitve"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Povečevalno okno"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrolniki povečevalnega okna"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Povečaj"</string>
@@ -1054,8 +1057,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Premakni spodaj desno"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Premakni na rob in skrij"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Premakni z roba in pokaži"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"preklop"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Kontrolniki naprave"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Dodajte kontrolnike za povezane naprave."</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Nastavitev kontrolnikov naprave"</string>
@@ -1104,8 +1106,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Opusti"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Nadaljuj"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Nastavitve"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Predvajaj"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Neaktivno, poglejte aplikacijo"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Napaka, vnovični poskus …"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Ni mogoče najti"</string>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index f1f7a7a..6c7c86d 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Qasja në zona publike interneti është e çaktivizuar."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Zona e qasjes publike për internet është e aktivizuar."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Transmetimi i ekranit ndaloi."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Modaliteti i punës është i çaktivizuar."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Modaliteti i punës është i aktivizuar."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Modaliteti i punës është i çaktivizuar."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Modaliteti i punës është i aktivizuar."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Kursyesi i të dhënave është çaktivizuar."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Kursyesi i të dhënave është aktivizuar."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Kufiri: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Paralajmërim për kufirin prej <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Profili i punës"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Drita e natës"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Në perëndim të diellit"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Deri në lindje të diellit"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Shfaqi të gjitha"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Shkyçe për të paguar"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Gati"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Konfiguro pagesën"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Shkyçe për ta përdorur"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Pati një problem me marrjen e kartave të tua. Provo përsëri më vonë"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profili i punës"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Modaliteti i aeroplanit"</string>
<string name="add_tile" msgid="6239678623873086686">"Shto një pllakëz"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Statusi:</b> Ulur në nivel si në heshtje"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Statusi:</b> Renditur më lart"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Statusi:</b> Renditur më poshtë"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Shfaqen gjithmonë në krye të njoftimeve, edhe kur modaliteti \"Me përparësi\" është aktiv"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Cilësimet"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Bisedat me përparësi"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Përparësia"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> nuk mbështet veçoritë e bisedës"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Këto njoftime nuk mund të modifikohen."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Ky grup njoftimesh nuk mund të konfigurohet këtu"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Aktiv"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Joaktiv"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Nuk ofrohet"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Shiriti i navigimit"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Struktura"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Lloji i butonit shtesë majtas"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigimi i sistemit u përditësua. Për të bërë ndryshime, shko te \"Cilësimet\"."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Shko te \"Cilësimet\" për të përditësuar navigimin e sistemit"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Në gatishmëri"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Biseda u caktua me përparësi"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Bisedat me përparësi"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Këto biseda shfaqen në krye të listës sate dhe mund të të shfaqen gjithmonë kur modaliteti \"Me përparësi\" është aktiv"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Fotografitë e profilit shfaqen në ekranin e kyçjes"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Mund t\'i gjesh me lehtësi këto biseda te flluskat në ekranin bazë"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Ndërprit \"Mos shqetëso\""</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"E kuptova"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Cilësimet"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Dritarja e zmadhimit"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrollet e dritares së zmadhimit"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zmadho"</string>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 22af16a..986a2c1 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Мобилни хотспот је искључен."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Мобилни хотспот је укључен."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Пребацивање екрана је заустављено."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Режим рада је искључен."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Режим рада је укључен."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Режим рада је искључен."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Режим рада је укључен."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Уштеда података је искључена."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Уштеда података је укључена."</string>
@@ -412,6 +414,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Ограничење од <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Упозорење за <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Пословни профил"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Ноћно светло"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Укључује се по заласку сунца"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"До изласка сунца"</string>
@@ -671,10 +675,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Новчаник"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Прикажи све"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Откључај ради плаћања"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Спремно"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Подесите плаћање"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Откључај ради коришћења"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Дошло је до проблема при преузимању картица. Пробајте поново касније"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Пословни профил"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Режим рада у авиону"</string>
<string name="add_tile" msgid="6239678623873086686">"Додај плочицу"</string>
@@ -743,9 +749,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Статус:</b> Деградирано у Нечујно"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Статус:</b> Рангирано више"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Статус:</b> Рангирано ниже"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Увек се приказује у врху обавештења чак и када је Приоритетни режим укључен"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Приказује се у врху обавештења о конверзацијама и као слика профила на закључаном екрану"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Приказује се у врху обавештења о конверзацијама и као слика профила на закључаном екрану, појављује се као облачић"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Приказује се у врху обавештења о конверзацијама и као слика профила на закључаном екрану, прекида режим Не узнемиравај"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Приказује се у врху обавештења о конверзацијама и као слика профила на закључаном екрану, појављује се као облачић, прекида режим Не узнемиравај"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Подешавања"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Приоритетне конверзације"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Приоритет"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не подржава функције конверзације"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Ова обавештења не могу да се мењају."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Ова група обавештења не може да се конфигурише овде"</string>
@@ -863,6 +872,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Укључено"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Искључено"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Недоступно"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Трака за навигацију"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Распоред"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Додатни тип левог дугмета"</string>
@@ -1021,14 +1032,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навигација система је ажурирана. Да бисте унели измене, идите у Подешавања."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Идите у Подешавања да бисте ажурирали навигацију система"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Стање приправности"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Конверзација је подешена на приоритетну"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Приоритетне конверзације"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Ове конверзације се приказују у врху листе и увек могу да допру до вас када је Приоритетни режим укључен"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Слике профила се приказују на закључаном екрану"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Лако можете да пронађете ове конверзације у облачићима на почетном екрану"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Омета подешавање Не узнемиравај"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Важи"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Подешавања"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Прозор за увећање"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Контроле прозора за увећање"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Увећајте"</string>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index ebcae0f..cd7e1f6 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Den mobila surfzonen har inaktiverats."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Den mobila surfzonen har aktiverats."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Castningen av skärmen har stoppats."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Arbetsläget är inaktiverat."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Arbetsläget aktiverat."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Arbetsläget har inaktiverats."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Arbetsläget har aktiverats."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Databesparing har inaktiverats."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Databesparing har aktiverats."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Gräns: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Varning <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Jobbprofil"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Nattljus"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"På från solnedgången"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Till soluppgången"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Visa alla"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Lås upp för att betala"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Klar"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Konfigurera betalning"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Lås upp för att använda"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Det gick inte att hämta dina kort. Försök igen senare."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Jobbprofil"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Flygplansläge"</string>
<string name="add_tile" msgid="6239678623873086686">"Lägg till en ruta"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Ändrad till Tyst"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Höjd"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> Sänkt"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Visas alltid överst i aviseringarna, även när prioritetsläget är på"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Visas högst upp i konversationsaviseringarna och som profilbild på låsskärmen"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Visas högst upp i konversationsaviseringarna och som profilbild på låsskärmen, visas som bubbla"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Visas högst upp i konversationsaviseringarna och som profilbild på låsskärmen, åsidosätter Stör ej"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Visas högst upp i konversationsaviseringarna och som profilbild på låsskärmen, visas som bubbla, åsidosätter Stör ej"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Inställningar"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Prioriterade konversationer"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Prioritet"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> har inte stöd för konversationsfunktioner"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Det går inte att ändra de här aviseringarna."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Den här aviseringsgruppen kan inte konfigureras här"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"På"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Av"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Inte tillgängligt"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigeringsfält"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Knapptyp för extra vänster"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemnavigeringen har uppdaterats. Öppna inställningarna om du vill ändra något."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Öppna inställningarna och uppdatera systemnavigeringen"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Viloläge"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Konversationen har angetts som prioriterad"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Prioriterade konversationer"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"De här konversationerna visas överst i listan och kan alltid nå dig när prioritetsläget på"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profilbilder visas på låsskärmen"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Du hittar enkelt de här konversationerna i bubblor på startskärmen"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Avbryt Stör ej"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Inställningar"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Förstoringsfönster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Inställningar för förstoringsfönster"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Zooma in"</string>
@@ -1087,7 +1090,7 @@
<string name="controls_seeding_in_progress" msgid="3033855341410264148">"Rekommendationer läses in"</string>
<string name="controls_media_title" msgid="1746947284862928133">"Media"</string>
<string name="controls_media_close_session" msgid="1193000643003066508">"Vill du dölja mediesessionen?"</string>
- <string name="controls_media_active_session" msgid="3146882316024153337">"Den aktuella mediesessionen kan inte döljas"</string>
+ <string name="controls_media_active_session" msgid="3146882316024153337">"Den aktuella mediesessionen kan inte döljas."</string>
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Stäng"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Återuppta"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Inställningar"</string>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 2a45ce5..75337fd 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mtandaopepe unahamishika umezimwa."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mtandaopepe unaohamishika umewashwa."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Utumaji wa skrini umesitishwa."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Hali ya kazi imezimwa."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Hali ya kazi imewashwa."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Hali ya kazi imezimwa."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Hali ya kazi imewashwa."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Kiokoa Data kimezimwa."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Kiokoa Data kimewashwa."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"kikomo <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Onyo <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Wasifu wa kazini"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Mwanga wa Usiku"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Itawashwa machweo"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Hadi macheo"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Onyesha zote"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Fungua ili ulipe"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Tayari"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Weka njia ya kulipa"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Fungua ili utumie"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Hitilafu imetokea wakati wa kuleta kadi zako, tafadhali jaribu tena baadaye"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Wasifu wa kazini"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Hali ya ndegeni"</string>
<string name="add_tile" msgid="6239678623873086686">"Ongeza kigae"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Imeshushwa Hadhi Kuwa Kimya"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Hali:</b> Imeorodheshwa Katika Nafasi ya Juu"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Hali:</b> Imeorodheshwa Katika Nafasi ya Chini"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Huonyeshwa kwenye sehemu ya juu ya arifa zako kila wakati, hata wakati umewasha hali ya Kipaumbele"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Huonyeshwa kwenye sehemu ya juu ya arifa za mazungumzo na kama picha ya wasifu kwenye skrini iliyofungwa"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Huonyeshwa kwenye sehemu ya juu ya arifa za mazungumzo na kama picha ya wasifu kwenye skrini iliyofungwa. Huonekana kama kiputo"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Huonyeshwa kwenye sehemu ya juu ya arifa za mazungumzo na kama picha ya wasifu kwenye skrini iliyofungwa. Hukatiza kipengele cha Usinisumbue"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Huonyeshwa kwenye sehemu ya juu ya arifa za mazungumzo na kama picha ya wasifu kwenye skrini iliyofungwa. Huonekana kama kiputo na hukatiza kipengele cha Usinisumbue"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Mipangilio"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Mazungumzo ya kipaumbele"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Kipaumbele"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> haitumii vipengele vya mazungumzo"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Arifa hizi haziwezi kubadilishwa."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Kikundi hiki cha arifa hakiwezi kuwekewa mipangilio hapa"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Imewashwa"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Imezimwa"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Hakipatikani"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Sehemu ya viungo muhimu"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Mpangilio"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Aina ya kitufe cha kushoto cha ziada"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Umesasisha usogezaji kwenye mfumo. Ili ubadilishe, nenda kwenye Mipangilio."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Nenda kwenye mipangilio ili usasishe usogezaji kwenye mfumo"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Hali tuli"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Mazungumzo yamepewa kipaumbele"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Mazungumzo ya kipaumbele"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Mazungumzo haya yanaonyeshwa kwenye sehemu ya juu ya orodha yako na yanaweza kukufikia ukiwa umewasha hali ya Kipaumbele"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Picha za wasifu zinaonyeshwa kwenye skrini iliyofungwa"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Unaweza kupata mazungumzo haya kwa urahisi katika viputo kwenye Skrini yako ya kwanza"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Katiza kipengele cha Usinisumbue"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Nimeelewa"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Mipangilio"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Dirisha la Ukuzaji"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Vidhibiti vya Dirisha la Ukuzaji"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Vuta karibu"</string>
diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml
index 63b4c3b..5e540d0 100644
--- a/packages/SystemUI/res/values-ta/strings.xml
+++ b/packages/SystemUI/res/values-ta/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"மொபைல் ஹாட்ஸ்பாட் முடக்கப்பட்டது."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"மொபைல் ஹாட்ஸ்பாட் இயக்கப்பட்டது."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"திரையை அனுப்புதல் நிறுத்தப்பட்டது."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"பணிப் பயன்முறை முடக்கப்பட்டுள்ளது."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"பணிப் பயன்முறை இயக்கப்பட்டுள்ளது."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"பணிப் பயன்முறை முடக்கப்பட்டது."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"பணிப் பயன்முறை இயக்கப்பட்டது."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"டேட்டா சேமிப்பான் முடக்கப்பட்டது."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"டேட்டா சேமிப்பான் இயக்கப்பட்டது."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> வரம்பு"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> எச்சரிக்கை"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"பணிக் கணக்கு"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"நைட் லைட்"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"மாலையில் ஆன் செய்"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"காலை வரை"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"வாலட்"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"அனைத்தையும் காட்டு"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"பணம் செலுத்த அன்லாக் செய்க"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"தயார்"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"பேமெண்ட் முறையை அமையுங்கள்"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"பயன்படுத்துவதற்கு அன்லாக் செய்க"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"உங்கள் கார்டுகளின் விவரங்களைப் பெறுவதில் சிக்கல் ஏற்பட்டது, பிறகு முயலவும்"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"பணிக் கணக்கு"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"விமானப் பயன்முறை"</string>
<string name="add_tile" msgid="6239678623873086686">"டைலைச் சேர்க்கும்"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>நிலை:</b> சைலன்ட் நிலைக்குக் குறைத்து அமைக்கப்பட்டது"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>நிலை:</b> முக்கியத்துவம் உயர்த்தப்பட்டது"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>நிலை:</b> முக்கியத்துவம் குறைக்கப்பட்டது"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"முன்னுரிமைப் பயன்முறை இயக்கப்பட்டிருக்கும்போதும், எப்போதுமே அறிவிப்புகளின் மேல்புறத்தில் காட்டப்படும்"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"உரையாடல் அறிவிப்புகளின் மேற்பகுதியில் காட்டப்படும், திரை பூட்டப்பட்டிருக்கும்போது சுயவிவரப் படமாகக் காட்டப்படும்"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"உரையாடல் அறிவிப்புகளின் மேற்பகுதியில் காட்டப்படும், திரை பூட்டப்பட்டிருக்கும்போது சுயவிவரப் படமாகக் காட்டப்படும், குமிழாகத் தோன்றும்"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"உரையாடல் அறிவிப்புகளின் மேற்பகுதியில் காட்டப்படும், திரை பூட்டப்பட்டிருக்கும்போது சுயவிவரப் படமாகக் காட்டப்படும், தொந்தரவு செய்ய வேண்டாம் அம்சம் இயக்கப்பட்டிருக்கும்போதும் காட்டப்படும்"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"உரையாடல் அறிவிப்புகளின் மேற்பகுதியில் காட்டப்படும், திரை பூட்டப்பட்டிருக்கும்போது சுயவிவரப் படமாகக் காட்டப்படும், குமிழாகத் தோன்றும், தொந்தரவு செய்ய வேண்டாம் அம்சம் இயக்கப்பட்டிருக்கும்போதும் காட்டப்படும்"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"அமைப்புகள்"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"முன்னுரிமை உரையாடல்கள்"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"முன்னுரிமை"</string>
<string name="no_shortcut" msgid="8257177117568230126">"உரையாடல் அம்சங்களை <xliff:g id="APP_NAME">%1$s</xliff:g> ஆதரிக்காது"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"இந்த அறிவிப்புகளை மாற்ற இயலாது."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"இந்த அறிவுப்புக் குழுக்களை இங்கே உள்ளமைக்க இயலாது"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ஆன்"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ஆஃப்"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"இல்லை"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"வழிசெலுத்தல் பட்டி"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"தளவமைப்பு"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"கூடுதல் இடப்புற பட்டன் வகை"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"சிஸ்டம் நேவிகேஷன் மாற்றப்பட்டது. மாற்றங்களைச் செய்ய ‘அமைப்புகளுக்குச்’ செல்லவும்."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"சிஸ்டம் நேவிகேஷனை மாற்ற ’அமைப்புகளுக்குச்’ செல்லவும்"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"இயக்க நேரம்"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"முன்னுரிமை அளிக்கப்பட்ட உரையாடலாக அமைக்கப்பட்டது"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"முன்னுரிமை உரையாடல்கள்"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"முன்னுரிமைப் பயன்முறை இயக்கப்பட்டிருக்கும்போது பட்டியலின் மேல்புறத்தில் இந்த உரையாடல்கள் எப்போதுமே காட்டப்படும்"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"லாக் ஸ்கிரீனில் சுயவிவரப் படங்கள் காட்டப்படும்"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"முகப்புத் திரையில் தோன்றும் குமிழ்களில் இந்த உரையாடல்களை எளிதாகப் பார்க்கலாம்"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"\'தொந்தரவு செய்ய வேண்டாம்\' அம்சத்தைக் குறுக்கிடும்"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"சரி"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"அமைப்புகள்"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"பெரிதாக்கல் சாளரம்"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"பெரிதாக்கல் சாளரக் கட்டுப்பாடுகள்"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"பெரிதாக்கு"</string>
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index 7b05e36..4805e91 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"మొబైల్ హాట్స్పాట్ ఆఫ్ చేయబడింది."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"మొబైల్ హాట్స్పాట్ ఆన్ చేయబడింది."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"స్క్రీన్ ప్రసారం ఆపివేయబడింది."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"పని మోడ్ ఆఫ్లో ఉంది."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"పని మోడ్ ఆన్లో ఉంది."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"పని మోడ్ ఆఫ్ చేయబడింది."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"పని మోడ్ ఆన్ చేయబడింది."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"డేటా సేవర్ ఆఫ్ చేయబడింది."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"డేటా సేవర్ ఆన్ చేయబడింది."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> పరిమితి"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> హెచ్చరిక"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"ఆఫీస్ ప్రొఫైల్"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"రాత్రి కాంతి"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"సూర్యాస్తమయానికి"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"సూర్యోదయం వరకు"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"అన్నింటినీ చూపు"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"పే చేయడానికి అన్లాక్ చేయండి"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"సిద్ధంగా ఉంది"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"పేమెంట్ను సెటప్ చేయండి"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ఉపయోగించడానికి అన్లాక్ చేయండి"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"మీ కార్డ్లను పొందడంలో సమస్య ఉంది, దయచేసి తర్వాత మళ్లీ ట్రై చేయండి"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"ఆఫీస్ ప్రొఫైల్"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"ఎయిర్ప్లేన్ మోడ్"</string>
<string name="add_tile" msgid="6239678623873086686">"టైల్ను జోడించండి"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>స్టేటస్:</b> నిశ్శబ్దం స్థాయికి తగ్గించబడింది"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>స్టేటస్:</b> ఎక్కువ ర్యాంక్కు సర్దుబాటు చేయబడింది"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>స్టేటస్:</b> తక్కువ ర్యాంక్కు సర్దుబాటు చేయబడింది"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"ప్రాధాన్యత మోడ్ ఆన్లో ఉన్నప్పుడు కూడా ఇది ఎల్లప్పుడూ మీ నోటిఫికేషన్ల ఎగువన కనిపిస్తుంది"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"సెట్టింగ్లు"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"ప్రాధాన్య సంభాషణలు"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"ప్రాధాన్యత"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> సంభాషణ ఫీచర్లను సపోర్ట్ చేయదు"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"ఈ నోటిఫికేషన్లను సవరించడం వీలుపడదు."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"ఈ నోటిఫికేషన్ల సమూహాన్ని ఇక్కడ కాన్ఫిగర్ చేయలేము"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"ఆన్"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ఆఫ్ చేయి"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"అందుబాటులో లేదు"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"నావిగేషన్ బార్"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"లేఅవుట్"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"అత్యంత ఎడమ వైపు ఉన్న బటన్ రకం"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"సిస్టమ్ నావిగేషన్ అప్డేట్ చేయబడింది. మార్పులు చేయడానికి, సెట్టింగ్లకు వెళ్లండి."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"సిస్టమ్ నావిగేషన్ను అప్డేట్ చేయడానికి సెట్టింగ్లకు వెళ్లండి"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"స్టాండ్బై"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"సంభాషణ ప్రధానమైనదిగా సెట్ చేయబడింది"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"ప్రాధాన్య సంభాషణలు"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"ఈ సంభాషణలు మీ లిస్ట్ ఎగువన కనిపిస్తాయి అలాగే మీ ప్రాధాన్యత మోడ్ ఆన్లో ఉన్నప్పుడు ఎల్లప్పుడూ మిమ్మల్ని చేరుకోవచ్చు"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"లాక్ స్క్రీన్లో ప్రొఫైల్ ఫోటోలు చూపబడతాయి"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"మీరు ఈ సంభాషణలను మీ మొదటి స్క్రీన్లో బబుల్స్లో సులభంగా కనుగొనవచ్చు"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"\'అంతరాయం కలిగించవద్దు\' మోడ్కు అంతరాయం"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"అర్థమైంది"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"సెట్టింగ్లు"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"మాగ్నిఫికేషన్ విండో"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"మాగ్నిఫికేషన్ నియంత్రణల విండో"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"దగ్గరగా జూమ్ చేయండి"</string>
@@ -1044,8 +1051,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"దిగువ కుడి వైపునకు తరలించు"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"అంచుకు తరలించి దాచండి"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"అంచుని తరలించి చూపించు"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"టోగుల్ చేయి"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"డివైజ్ కంట్రోల్స్"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"మీ కనెక్ట్ అయిన పరికరాలకు కంట్రోల్స్ను జోడించండి"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"పరికరం నియంత్రణలను సెటప్ చేయడం"</string>
@@ -1092,8 +1098,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"విస్మరించు"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"కొనసాగించండి"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"సెట్టింగ్లు"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"ప్లే చేయండి"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"ఇన్యాక్టివ్, యాప్ చెక్ చేయండి"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"లోపం, మళ్లీ ప్రయత్నిస్తోంది..."</string>
<string name="controls_error_removed" msgid="6675638069846014366">"కనుగొనబడలేదు"</string>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 171ecd4..c8b76e1 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"ปิดฮอตสปอตเคลื่อนที่แล้ว"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"เปิดฮอตสปอตเคลื่อนที่แล้ว"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"หยุดการส่งหน้าจอแล้ว"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"โหมดการทำงานปิดอยู่"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"โหมดการทำงานเปิดอยู่"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"ปิดโหมดการทำงานแล้ว"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"เปิดโหมดการทำงานแล้ว"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ปิดโปรแกรมประหยัดอินเทอร์เน็ตแล้ว"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"เปิดโปรแกรมประหยัดอินเทอร์เน็ตแล้ว"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"ขีดจำกัด <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"คำเตือน <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"โปรไฟล์งาน"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"แสงตอนกลางคืน"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"เปิดตอนพระอาทิตย์ตก"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"จนพระอาทิตย์ขึ้น"</string>
@@ -479,7 +483,7 @@
<string name="accessibility_multi_user_switch_quick_contact" msgid="4504508915324898576">"แสดงโปรไฟล์"</string>
<string name="user_add_user" msgid="4336657383006913022">"เพิ่มผู้ใช้"</string>
<string name="user_new_user_name" msgid="2019166282704195789">"ผู้ใช้ใหม่"</string>
- <string name="guest_exit_guest_dialog_title" msgid="5015697561580641422">"ต้องการนำผู้เข้าร่วมออกไหม"</string>
+ <string name="guest_exit_guest_dialog_title" msgid="5015697561580641422">"ต้องการนำผู้ใช้ชั่วคราวออกไหม"</string>
<string name="guest_exit_guest_dialog_message" msgid="8183450985628495709">"ระบบจะลบแอปและข้อมูลทั้งหมดในเซสชันนี้"</string>
<string name="guest_exit_guest_dialog_remove" msgid="7505817591242703757">"นำออก"</string>
<string name="guest_wipe_session_title" msgid="7147965814683990944">"ยินดีต้อนรับผู้เข้าร่วมกลับมาอีกครั้ง"</string>
@@ -488,7 +492,7 @@
<string name="guest_wipe_session_dontwipe" msgid="3211052048269304205">"ใช่ ดำเนินการต่อ"</string>
<string name="guest_notification_title" msgid="4434456703930764167">"ผู้ใช้ที่เป็นผู้เข้าร่วม"</string>
<string name="guest_notification_text" msgid="4202692942089571351">"หากต้องการลบแอปและข้อมูล ให้นำผู้ใช้ที่เป็นผู้เข้าร่วมออก"</string>
- <string name="guest_notification_remove_action" msgid="4153019027696868099">"นำผู้เข้าร่วมออก"</string>
+ <string name="guest_notification_remove_action" msgid="4153019027696868099">"นำผู้ใช้ชั่วคราวออก"</string>
<string name="user_logout_notification_title" msgid="3644848998053832589">"ออกจากระบบผู้ใช้"</string>
<string name="user_logout_notification_text" msgid="7441286737342997991">"ทำการออกจากระบบให้ผู้ใช้รายปัจจุบัน"</string>
<string name="user_logout_notification_action" msgid="7974458760719361881">"ออกจากระบบผู้ใช้"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"แสดงทั้งหมด"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ปลดล็อกเพื่อชำระเงิน"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"พร้อม"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"ตั้งค่าการชำระเงิน"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ปลดล็อกเพื่อใช้"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"เกิดปัญหาในการดึงข้อมูลบัตรของคุณ โปรดลองอีกครั้งในภายหลัง"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"โปรไฟล์งาน"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"โหมดบนเครื่องบิน"</string>
<string name="add_tile" msgid="6239678623873086686">"เพิ่มไทล์"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>สถานะ:</b> ลดระดับเป็นปิดเสียง"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>สถานะ:</b> อันดับสูงขึ้น"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>สถานะ:</b> อันดับต่ำลง"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"แสดงที่ด้านบนของการแจ้งเตือนเสมอแม้ว่าโหมดลำดับความสำคัญสูงจะเปิดอยู่"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"แสดงที่ด้านบนของการแจ้งเตือนการสนทนาและเป็นรูปโปรไฟล์บนหน้าจอล็อก"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"แสดงที่ด้านบนของการแจ้งเตือนการสนทนาและเป็นรูปโปรไฟล์บนหน้าจอล็อก ปรากฏเป็นบับเบิล"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"แสดงที่ด้านบนของการแจ้งเตือนการสนทนาและเป็นรูปโปรไฟล์บนหน้าจอล็อก แสดงในโหมดห้ามรบกวน"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"แสดงที่ด้านบนของการแจ้งเตือนการสนทนาและเป็นรูปโปรไฟล์บนหน้าจอล็อก ปรากฏเป็นบับเบิล แสดงในโหมดห้ามรบกวน"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"การตั้งค่า"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"การสนทนาสำคัญ"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"ลำดับความสำคัญ"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ไม่รองรับฟีเจอร์การสนทนา"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"แก้ไขการแจ้งเตือนเหล่านี้ไม่ได้"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"การแจ้งเตือนกลุ่มนี้กำหนดค่าที่นี่ไม่ได้"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"เปิด"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"ปิด"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"ไม่มี"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"แถบนำทาง"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"การจัดวาง"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"ประเภทปุ่มทางซ้ายเพิ่มเติม"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"อัปเดตการไปยังส่วนต่างๆ ของระบบแล้ว หากต้องการเปลี่ยนแปลง ให้ไปที่การตั้งค่า"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ไปที่การตั้งค่าเพื่ออัปเดตการไปยังส่วนต่างๆ ของระบบ"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"สแตนด์บาย"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"ตั้งค่าเป็นการสนทนาสำคัญแล้ว"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"การสนทนาสำคัญ"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"การสนทนาเหล่านี้จะแสดงที่ด้านบนของรายการและให้คุณเข้าถึงได้อยู่เสมอเมื่อโหมดลำดับความสำคัญสูงเปิดอยู่"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"รูปโปรไฟล์จะแสดงในหน้าจอล็อก"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"คุณค้นหาการสนทนาเหล่านี้ได้ง่ายๆ ในบับเบิลบนหน้าจอหลัก"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"แสดงในโหมดห้ามรบกวน"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"รับทราบ"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"การตั้งค่า"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"หน้าต่างการขยาย"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"การควบคุมหน้าต่างการขยาย"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"ซูมเข้า"</string>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index 0490ff7..b6f5d31 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Na-off ang mobile hotspot."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Na-on ang mobile hotspot."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Itinigil ang pagka-cast sa screen."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Naka-off ang work mode."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Naka-on ang work mode."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Na-off ang work mode."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Na-on ang work mode."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Na-off ang Data Saver."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Na-on ang Data Saver."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ang limitasyon"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Babala sa <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Profile sa trabaho"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Night Light"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Mao-on sa sunset"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Hanggang sunrise"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Ipakita lahat"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"I-unlock para magbayad"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Handa na"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Mag-set up ng pagbabayad"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"I-unlock para magamit"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Nagkaproblema sa pagkuha ng iyong mga card, pakisubukan ulit sa ibang pagkakataon"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Profile sa trabaho"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Airplane mode"</string>
<string name="add_tile" msgid="6239678623873086686">"Magdagdag ng tile"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Status:</b> Na-demote sa Naka-silent"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Status:</b> Ranked nang Mas Mataas"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Status:</b> Na-rank nang Mas Mababa"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Palaging ipinapakita sa itaas ng iyong mga notification, kahit na naka-on ang Priority mode"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Makikita sa itaas ng mga notification ng pag-uusap at bilang larawan sa profile sa lock screen"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Makikita sa itaas ng mga notification ng pag-uusap at bilang larawan sa profile sa lock screen, lumalabas bilang bubble"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Makikita sa itaas ng mga notification ng pag-uusap at bilang larawan sa profile sa lock screen, naaabala ang Huwag Istorbohin"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Makikita sa itaas ng mga notification ng pag-uusap at bilang larawan sa profile sa lock screen, lumalabas bilang bubble, naaabala ang Huwag Istorbohin"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Mga Setting"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Mga priyoridad na pag-uusap"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Priyoridad"</string>
<string name="no_shortcut" msgid="8257177117568230126">"Hindi sinusuportahan ng <xliff:g id="APP_NAME">%1$s</xliff:g> ang mga feature ng pag-uusap"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Hindi puwedeng baguhin ang mga notification na ito."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Hindi mako-configure dito ang pangkat na ito ng mga notification"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"I-on"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"I-off"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Hindi available"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigation bar"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Layout"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Uri ng extra na button ng kaliwa"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Na-update na ang pag-navigate ng system. Para gumawa ng mga pagbabago, pumunta sa Mga Setting."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Pumunta sa Mga Setting para i-update ang pag-navigate sa system"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Naka-standby"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Ginawang priyoridad ang pag-uusap"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Mga priyoridad na pag-uusap"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Ipinapakita ang pag-uusap na ito sa itaas ng listahan mo at palaging ipapakita sa iyo kapag naka-on ang Priority mode"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Ipinapakita ang mga larawan sa profile sa lock screen"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Madali mong mahahanap ang mga pag-uusap na ito sa mga bubble sa iyong Home screen"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Ihinto ang Huwag Istorbohin"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Mga Setting"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Window ng Pag-magnify"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Mga Kontrol sa Pag-magnify ng Window"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Mag-zoom in"</string>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 12cae9b..d36d840 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobil hotspot kapatıldı."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobil hotspot açıldı."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Ekran yayını durduruldu."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Çalışma modu kapalı."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Çalışma modu açık."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Çalışma modu kapatıldı."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Çalışma modu açıldı."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Veri Tasarrufu kapatıldı."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Veri Tasarrufu açıldı."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Sınır: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> uyarısı"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"İş profili"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Gece Işığı"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Gün batımı açılacak"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Sabaha kadar"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Cüzdan"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Tümünü göster"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Ödeme için kilidi aç"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Hazır"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Ödeme ayarlarını belirle"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Kullanmak için kilidi aç"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Kartlarınız alınırken bir sorun oluştu. Lütfen daha sonra tekrar deneyin"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"İş profili"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Uçak modu"</string>
<string name="add_tile" msgid="6239678623873086686">"Blok ekle"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Durum:</b> Sessize Düşürüldü"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Durum:</b> Daha Yüksek Sıralandı"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Durum:</b> Daha Düşük Sıralandı"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Öncelik modu açık olduğunda bile her zaman bildirimlerinizin üst kısmında gösterilir"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Görüşme bildirimlerinin üstünde ve kilit ekranında profil resmi olarak gösterilir"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Görüşme bildirimlerinin üstünde ve kilit ekranında profil resmi olarak gösterilir, baloncuk olarak görünür"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Görüşme bildirimlerinin üstünde ve kilit ekranında profil resmi olarak gösterilir, Rahatsız Etmeyin\'i kesintiye uğratır"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Görüşme bildirimlerinin üstünde ve kilit ekranında profil resmi olarak gösterilir, baloncuk olarak görünür, Rahatsız Etmeyin\'i kesintiye uğratır"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Ayarlar"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Öncelikli görüşmeler"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Öncelik"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>, sohbet özelliklerini desteklemiyor"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirimler değiştirilemez."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Bu bildirim grubu burada yapılandırılamaz"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Açık"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Kapalı"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Kullanılamıyor"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Gezinme çubuğu"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Düzen"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Ekstra sol düğme türü"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistemde gezinme yöntemi güncellendi. Değişiklik yapmak için Ayarlar\'a gidin."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Sistemde gezinme yöntemini güncellemek için Ayarlar\'a gidin"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Beklemeye alınıyor"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Görüşme öncelikli olarak ayarlandı"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Öncelikli görüşmeler"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Listenizin üst kısmında gösterilen bu görüşmeler, Öncelik modu açık olduğunda her zaman size ulaşabilir"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profil resimleri kilit ekranında gösterilir"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Bu görüşmeleri, ana ekranınızdaki baloncuklarda kolayca bulabilirsiniz"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Rahatsız Etmeyin\'i keser"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Anladım"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Ayarlar"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Büyütme Penceresi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Büyütme Penceresi Kontrolleri"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Yakınlaştır"</string>
@@ -1132,7 +1135,7 @@
<string name="location_status" msgid="1294990572202541812">"Konum paylaşılıyor"</string>
<string name="location_status_content_description" msgid="2982386178160071305">"<xliff:g id="NAME">%1$s</xliff:g>, konum bilgisini paylaşıyor"</string>
<string name="new_story_status" msgid="9012195158584846525">"Yeni hikaye"</string>
- <string name="new_story_status_content_description" msgid="4963137422622516708">"<xliff:g id="NAME">%1$s</xliff:g>, yeni bir hikaye paylaştı"</string>
+ <string name="new_story_status_content_description" msgid="4963137422622516708">"<xliff:g id="NAME">%1$s</xliff:g> yeni bir hikaye paylaştı"</string>
<string name="video_status" msgid="4548544654316843225">"İzleniyor"</string>
<string name="audio_status" msgid="4237055636967709208">"Dinleniyor"</string>
<string name="game_status" msgid="1340694320630973259">"Çalınıyor"</string>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 4e7de71..0433542 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Мобільну точку доступу вимкнено."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Мобільну точку доступу ввімкнено."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Трансляцію екрана зупинено."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Робочий режим вимкнено."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Робочий режим увімкнено."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Робочий режим вимкнено."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Робочий режим увімкнено."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Заощадження трафіку вимкнено."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Заощадження трафіку ввімкнено."</string>
@@ -414,6 +416,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Обмеження: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Застереження: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Робочий профіль"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Нічний екран"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Вмикається ввечері"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"До сходу сонця"</string>
@@ -674,10 +678,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Гаманець"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Показати все"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Розблокувати, щоб сплатити"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Готово"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Налаштувати платіж"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Розблокувати, щоб використовувати"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Не вдалось отримати ваші картки. Повторіть спробу пізніше."</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Робочий профіль"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Режим польоту"</string>
<string name="add_tile" msgid="6239678623873086686">"Додавання опції"</string>
@@ -746,9 +752,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Статус</b>: знижено до \"Без звуку\""</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Статус</b>: пріоритет підвищено"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Статус</b>: пріоритет знижено"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Завжди відображаються вгорі списку сповіщень, навіть коли ввімкнено режим пріоритетності"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"З’являється вгорі сповіщень про розмови та як зображення профілю на заблокованому екрані"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"З’являється вгорі сповіщень про розмови та як зображення профілю на заблокованому екрані, відображається у вигляді спливаючої підказки"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"З’являється вгорі сповіщень про розмови та як зображення профілю на заблокованому екрані, показується навіть у режимі \"Не турбувати\""</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"З’являється вгорі сповіщень про розмови та як зображення профілю на заблокованому екрані, відображається у вигляді спливаючої підказки, показується навіть у режимі \"Не турбувати\""</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Налаштування"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Важливі розмови"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Пріоритет"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> не підтримує функції розмов"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Ці сповіщення не можна змінити."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Цю групу сповіщень не можна налаштувати тут"</string>
@@ -868,6 +877,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Увімкнено"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Вимкнено"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Недоступно"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Панель навігації"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Макет"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Додатковий тип кнопки ліворуч"</string>
@@ -1026,14 +1037,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навігацію в системі оновлено. Щоб внести зміни, перейдіть у налаштування."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Перейдіть у налаштування, щоб оновити навігацію в системі"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Режим очікування"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Розмову призначено важливою"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Важливі розмови"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Ці розмови відображаються вгорі списку, і ви завжди можете їх побачити, якщо ввімкнено режим пріоритетності"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Зображення профілів видно на заблокованому екрані"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Для зручності ці розмови відображаються в спливаючих чатах на головному екрані"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Переривають режим \"Не турбувати\""</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Налаштування"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Вікно збільшення"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Елементи керування вікна збільшення"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Наблизити"</string>
@@ -1054,8 +1057,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"Перемістити праворуч униз"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Перемістити до краю, приховати"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Перемістити від краю, показати"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"перемкнути"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"Керування пристроями"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"Додайте елементи керування для підключених пристроїв"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"Налаштувати елементи керування пристроями"</string>
@@ -1104,8 +1106,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"Закрити"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"Відновити"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"Налаштування"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"Відтворення"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"Неактивно, перейдіть у додаток"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"Помилка. Повторна спроба…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"Не знайдено"</string>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index 702bc7e..6b89434 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"موبائل ہاٹ اسپاٹ کو آف کر دیا گیا۔"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"موبائل ہاٹ اسپاٹ کو آن کر دیا گیا۔"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"اسکرین کو کاسٹ کرنا بند کر دیا۔"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"کام موڈ آف ہے۔"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"کام موڈ آن ہے۔"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"کام موڈ آف ہو گیا۔"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"کام موڈ آن ہو گیا۔"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"ڈیٹا سیور آف ہو گیا۔"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"ڈیٹا سرور آن ہو گیا۔"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> حد"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> وارننگ"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"دفتری پروفائل"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"نائٹ لائٹ"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"غروب آفتاب کے وقت آن ہوگی"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"طلوع آفتاب تک"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"سبھی دکھائیں"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ادائیگی کرنے کے لیے غیر مقفل کریں"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"تیار ہے"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"ادائیگی سیٹ اپ کریں"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"استعمال کرنے کے لیے غیر مقفل کریں"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"آپ کے کارڈز حاصل کرنے میں ایک مسئلہ درپیش تھا، براہ کرم بعد میں دوبارہ کوشش کریں"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"دفتری پروفائل"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"ہوائی جہاز وضع"</string>
<string name="add_tile" msgid="6239678623873086686">"ٹائل شامل کریں"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>اسٹیٹس:</b> کو خاموش پر درجہ بند کیا گیا"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>اسٹیٹس:</b> کو اعلی درجہ دیا گیا"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>اسٹیٹس:</b> کو کم درجہ دیا گیا"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"ترجیحی موڈ آن ہونے پر بھی، ہمیشہ آپ کی اطلاعات کے اوپری حصے میں دکھائی جاتی ہے"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"یہ گفتگو کی اطلاعات کے اوپری حصّے پر اور مقفل اسکرین پر پروفائل کی تصویر کے بطور دکھائی دیتا ہے"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"یہ گفتگو کی اطلاعات کے اوپری حصّے پر اور مقفل اسکرین پر پروفائل کی تصویر کے بطور دکھائی دیتا ہے، بلبلے کے بطور ظاہر ہوتا ہے"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"یہ گفتگو کی اطلاعات کے اوپری حصّے پر اور مقفل اسکرین پر پروفائل کی تصویر کے بطور دکھائی دیتا ہے، \'ڈسٹرب نہ کریں\' میں مداخلت کرتا ہے"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"یہ گفتگو کی اطلاعات کے اوپری حصّے پر اور مقفل اسکرین پر پروفائل کی تصویر کے بطور دکھائی دیتا ہے، بلبلے کے بطور ظاہر ہوتا ہے، \'ڈسٹرب نہ کریں\' میں مداخلت کرتا ہے"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"ترتیبات"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"ترجیحی گفتگوئیں"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"ترجیح"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> گفتگو کی خصوصیات کو سپورٹ نہیں کرتا ہے"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"ان اطلاعات کی ترمیم نہیں کی جا سکتی۔"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"اطلاعات کے اس گروپ کو یہاں کنفیگر نہیں کیا جا سکتا"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"آن"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"آف"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"غیر دستیاب ہے"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"نیویگیشن بار"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"لے آؤٹ"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"بائيں جانب کی اضافی بٹن کی قسم"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"سسٹم نیویگیشن اپ ڈیٹ کیا گیا۔ تبدیلیاں کرنے کے لیے، ترتیبات پر جائیں۔"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"سسٹم نیویگیشن اپ ڈیٹ کرنے کے لیے ترتیبات پر جائیں"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"اسٹینڈ بائی"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"گفتگو کو ترجیح پر سیٹ کیا گیا"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"ترجیحی گفتگوئیں"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"یہ گفتگوئیں آپ کی فہرست کے اوپری حصے میں دکھائ جاتی ہیں اور جب آپ کا ترجیحی موڈ آن ہوتا ہے تو ہمیشہ آپ تک پہنچ سکتی ہیں"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"پروفائل کی تصاویر مقفل اسکرین پر دکھائی جاتی ہیں"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"آپ ان مکالموں کو آسانی سے اپنی ہوم اسکرین پر بلبلوں میں تلاش کر سکتے ہیں"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"ڈسٹرب نہ کریں میں مداخلت کریں"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"سمجھ آ گئی"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"ترتیبات"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"میگنیفکیشن ونڈو"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"میگنیفکیشن ونڈو کنٹرولز"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"زوم ان کریں"</string>
@@ -1044,8 +1047,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"نیچے دائیں جانب لے جائیں"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"EDGE پر لے جائیں اور چھپائیں"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"EDGE اور شو سے باہر منتقل کریں"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"ٹوگل کریں"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"آلہ کے کنٹرولز"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"اپنے منسلک آلات کے لیے کنٹرولز شامل کریں"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"آلہ کے کنٹرولز سیٹ اپ کریں"</string>
@@ -1092,8 +1094,7 @@
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"برخاست کریں"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"دوبارہ شروع کریں"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"ترتیبات"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"چلائیں"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"غیر فعال، ایپ چیک کریں"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"خرابی، دوبارہ کوشش کی جا رہی ہے…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"نہیں ملا"</string>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index 216a094..7fb0604 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Mobil ulanish nuqtasi o‘chirildi."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Mobil ulanish nuqtasi yoqildi."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Ekranni translatsiya qilish to‘xtadi."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Ish rejimi o‘chiq."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Ish rejimi yoniq."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Ish rejimi o‘chirib qo‘yildi."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Ishchi rejim yoqildi."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Trafik tejash rejimi o‘chirib qo‘yildi."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Trafik tejash rejimi yoqildi."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Cheklov: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Ogohlantirish: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Ish profili"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Tungi rejim"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Kunbotarda yoqish"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Quyosh chiqqunicha"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Hammasi"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Toʻlov uchun qulfdan chiqarish"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Tayyor"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Toʻlovni sozlash"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Foydalanish uchun qulfdan chiqarish"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Bildirgilarni yuklashda xatolik yuz berdi, keyinroq qaytadan urining"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Ish profili"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Parvoz rejimi"</string>
<string name="add_tile" msgid="6239678623873086686">"Tezkor sozlamalar tugmasini qo‘shish"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Holati:</b> Sokin darajaga tushirildi"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Holati:</b> Yuqori darajaga chiqarildi"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Holati:</b> Quyi darajaga tushirildi"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"“Faqat muhim” rejimi yoniq boʻlsa ham doimo bildirishnomalaringizning tepasida chiqadi"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Suhbat bildirishnomalari tepasida va ekran qulfida profil rasmi sifatida chiqariladi"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Suhbat bildirishnomalari tepasida va ekran qulfida profil rasmi sifatida chiqariladi, bulutcha sifatida chiqadi"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Suhbat bildirishnomalari tepasida va ekran qulfida profil rasmi sifatida chiqariladi, Bezovta qilinmasin rejimini bekor qiladi"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Suhbat bildirishnomalari tepasida va ekran qulfida profil rasmi sifatida chiqariladi, bulutcha sifatida chiqadi, Bezovta qilinmasin rejimini bekor qiladi"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Sozlamalar"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Muhim suhbatlar"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Muhim"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasida suhbat funksiyalari ishlamaydi"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirishnomalarni tahrirlash imkonsiz."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Ushbu bildirishnomalar guruhi bu yerda sozlanmaydi"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Yoniq"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Yoqilmagan"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Mavjud emas"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Navigatsiya paneli"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Tugmalar joylashuvi"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Qo‘shimcha Chapga tugmasi turi"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Tizim navigatsiyasi yangilandi. Buni Sozlamalar orqali oʻzgartirishingiz mumkin."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Tizim navigatsiyasini yangilash uchun Sozlamalarni oching"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Kutib turing"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Suhbat muhim deb belgilandi"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Muhim suhbatlar"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Bu suhbatlar roʻyxat yuqorisida chiqadi va “M|uhim” rejimi yoniq boʻlganda oʻqish mumkin"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Profil rasmlari ekran qulfida chiqadi"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Bu suhbatlarni osongina bosh ekrandagi bulutchalardan topishingiz mumkin"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Bezovta qilinmasin rejimida chiqarish"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Sozlamalar"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Kattalashtirish oynasi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kattalashtirish oynasi sozlamalari"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Yaqinlashtirish"</string>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index a6a9ace..1840aed 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"Đã tắt điểm phát sóng di động."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"Đã bật điểm phát sóng di động."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Đã ngừng truyền màn hình."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Chế độ làm việc tắt."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Chế độ làm việc bật."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Chế độ làm việc đã tắt."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Chế độ làm việc đã bật."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Đã tắt Trình tiết kiệm dữ liệu."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Đã bật Trình tiết kiệm dữ liệu."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Giới hạn <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Cảnh báo <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Hồ sơ công việc"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Ánh sáng đêm"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Bật khi trời tối"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Cho đến khi trời sáng"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"Ví"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Hiện tất cả"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Mở khóa để thanh toán"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Sẵn sàng"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Thiết lập phương thức thanh toán"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Mở khóa để sử dụng"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Đã xảy ra sự cố khi tải thẻ của bạn. Vui lòng thử lại sau"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Hồ sơ công việc"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Chế độ máy bay"</string>
<string name="add_tile" msgid="6239678623873086686">"Thêm ô"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Trạng thái:</b> Đã thay đổi thành Im lặng"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Trạng thái:</b> Đã tăng mức độ quan trọng"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Trạng thái:</b> Đã giảm mức độ quan trọng"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Luôn hiển thị ở đầu thông báo, ngay cả khi Chế độ ưu tiên đang bật"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Hiện ở đầu phần thông báo cuộc trò chuyện và ở dạng ảnh hồ sơ trên màn hình khóa"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Hiện ở đầu phần thông báo cuộc trò chuyện và ở dạng ảnh hồ sơ trên màn hình khóa, xuất hiện ở dạng bong bóng"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Hiện ở đầu phần thông báo cuộc trò chuyện và ở dạng ảnh hồ sơ trên màn hình khóa, làm gián đoạn chế độ Không làm phiền"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Hiện ở đầu phần thông báo cuộc trò chuyện và ở dạng ảnh hồ sơ trên màn hình khóa, xuất hiện ở dạng bong bóng, làm gián đoạn chế độ Không làm phiền"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Cài đặt"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Cuộc trò chuyện ưu tiên"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Mức độ ưu tiên"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> không hỗ trợ các tính năng trò chuyện"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Không thể sửa đổi các thông báo này."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Không thể định cấu hình nhóm thông báo này tại đây"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Đang bật"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Đang tắt"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Không có sẵn"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Thanh điều hướng"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Bố cục"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Loại nút bổ sung bên trái"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Đã cập nhật chế độ di chuyển trên hệ thống. Để thay đổi, hãy chuyển đến phần Cài đặt."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Chuyển đến phần Cài đặt để cập nhật chế độ di chuyển trên hệ thống"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Chế độ chờ"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Đặt cuộc trò chuyện thành ưu tiên"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Cuộc trò chuyện ưu tiên"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Các cuộc trò chuyện này hiển thị ở đầu danh sách và luôn trong tầm nhìn của bạn khi Chế độ ưu tiên đang bật"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Ảnh hồ sơ hiển thị trên màn hình khóa"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Bạn có thể dễ dàng tìm thấy những cuộc trò chuyện này trong bong bóng trò chuyện trên Màn hình chính"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Làm gián đoạn chế độ Không làm phiền"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"OK"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Cài đặt"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Cửa sổ phóng to"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Các tùy chọn điều khiển cửa sổ phóng to"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Phóng to"</string>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 04b239b..0c1fdcc 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"移动热点已关闭。"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"移动热点已开启。"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"屏幕投射已停止。"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"工作模式关闭。"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"工作模式开启。"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"工作模式已关闭。"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"工作模式已开启。"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"流量节省程序已关闭。"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"流量节省程序已开启。"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"上限为<xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g>警告"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"工作资料"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"护眼模式"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"在日落时开启"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"在日出时关闭"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"电子钱包"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"全部显示"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"解锁设备才能付款"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"已可使用"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"设置付款方式"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"解锁设备即可使用"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"获取您的卡片时出现问题,请稍后重试"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"工作资料"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"飞行模式"</string>
<string name="add_tile" msgid="6239678623873086686">"添加图块"</string>
@@ -740,9 +746,16 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>状态</b>:已降低为“静音”"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>状态</b>:已调高顺序"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>状态</b>:已调低顺序"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"始终显示在通知列表的顶部,即使“优先”模式处于开启状态也是如此"</string>
+ <!-- no translation found for notification_channel_summary_priority_baseline (46674690072551234) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_bubble (1275413109619074576) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_dnd (6665395023264154361) -->
+ <skip />
+ <!-- no translation found for notification_channel_summary_priority_all (7151752959650048285) -->
+ <skip />
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"设置"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"优先对话"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"优先"</string>
<string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g>不支持对话功能"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"无法修改这些通知。"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"您无法在此处配置这组通知"</string>
@@ -858,6 +871,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"开启"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"关闭"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"不可用"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"导航栏"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"布局"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"其他向左按钮类型"</string>
@@ -1016,14 +1031,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"系统导航已更新。要进行更改,请转到“设置”。"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"转到“设置”即可更新系统导航"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待机"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"已设置为优先对话"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"优先对话"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"“优先”模式处于开启状态时,这些对话会显示在对话列表顶部,并且始终显示在屏幕上"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"个人资料照片会显示在锁定屏幕上"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"这些对话会以对话泡形式显示在主屏幕上,您可以轻松查看"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"中断勿扰模式"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"知道了"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"设置"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"放大窗口"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"放大窗口控件"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"放大"</string>
@@ -1044,8 +1051,7 @@
<string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"移至右下角"</string>
<string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"移至边缘并隐藏"</string>
<string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"移至边缘以外并显示"</string>
- <!-- no translation found for accessibility_floating_button_action_double_tap_to_toggle (7976492639670692037) -->
- <skip />
+ <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"开启/关闭"</string>
<string name="quick_controls_title" msgid="6839108006171302273">"设备控制器"</string>
<string name="quick_controls_subtitle" msgid="1667408093326318053">"为您所连接的设备添加控制器"</string>
<string name="quick_controls_setup_title" msgid="8901436655997849822">"设置设备控件"</string>
@@ -1087,15 +1093,12 @@
<string name="controls_structure_tooltip" msgid="4355922222944447867">"滑动可查看更多结构"</string>
<string name="controls_seeding_in_progress" msgid="3033855341410264148">"正在加载推荐内容"</string>
<string name="controls_media_title" msgid="1746947284862928133">"媒体"</string>
- <!-- no translation found for controls_media_close_session (1193000643003066508) -->
- <skip />
- <!-- no translation found for controls_media_active_session (3146882316024153337) -->
- <skip />
+ <string name="controls_media_close_session" msgid="1193000643003066508">"要隐藏此媒体会话吗?"</string>
+ <string name="controls_media_active_session" msgid="3146882316024153337">"无法隐藏当前的媒体会话。"</string>
<string name="controls_media_dismiss_button" msgid="9081375542265132213">"关闭"</string>
<string name="controls_media_resume" msgid="1933520684481586053">"继续播放"</string>
<string name="controls_media_settings_button" msgid="5815790345117172504">"设置"</string>
- <!-- no translation found for controls_media_smartspace_rec_title (1699818353932537407) -->
- <skip />
+ <string name="controls_media_smartspace_rec_title" msgid="1699818353932537407">"播放"</string>
<string name="controls_error_timeout" msgid="794197289772728958">"无效,请检查应用"</string>
<string name="controls_error_retryable" msgid="864025882878378470">"出现错误,正在重试…"</string>
<string name="controls_error_removed" msgid="6675638069846014366">"未找到"</string>
@@ -1156,6 +1159,5 @@
<string name="accessibility_udfps_disabled_button" msgid="4284034245130239384">"指纹传感器已停用"</string>
<string name="accessibility_authenticate_hint" msgid="798914151813205721">"身份验证"</string>
<string name="accessibility_enter_hint" msgid="2617864063504824834">"进入设备"</string>
- <!-- no translation found for keyguard_try_fingerprint (2825130772993061165) -->
- <skip />
+ <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"使用指纹即可打开"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 51b9a54..6588758 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"流動熱點已關閉。"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"流動熱點已開啟。"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"已停止投放螢幕。"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"工作模式已關閉。"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"工作模式已開啟。"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"已關閉工作模式。"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"已開啟工作模式。"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"已關閉數據節省模式。"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"已開啟數據節省模式。"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"上限為 <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> 警告"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"工作設定檔"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"夜間模式"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"在日落時開啟"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"在日出時關閉"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"電子錢包"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"顯示全部"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"解鎖裝置才能付款"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"準備就緒"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"設定付款方法"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"解鎖即可使用"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"擷取資訊卡時發生問題,請稍後再試。"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"工作設定檔"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"飛行模式"</string>
<string name="add_tile" msgid="6239678623873086686">"加入圖塊"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>狀態:</b>已降低為靜音"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>狀態:</b>已提高次序"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>狀態:</b>已調低次序"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"無論是否開啟「優先」模式,一律在通知頂端顯示"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"顯示在對話通知頂部 (在上鎖畫面會顯示為個人檔案相片)"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"以對話氣泡形式顯示在對話通知頂部 (在上鎖畫面會顯示為個人檔案相片)"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"顯示在對話通知頂部 (在上鎖畫面會顯示為個人檔案相片),並會中斷「請勿打擾」模式"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"以對話氣泡形式顯示在對話通知頂部 (在上鎖畫面會顯示為個人檔案相片),並會中斷「請勿打擾」模式"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"設定"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"優先對話"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"優先"</string>
<string name="no_shortcut" msgid="8257177117568230126">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」不支援對話功能"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"無法修改這些通知。"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"無法在此設定這組通知"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"開啟"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"關閉"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"無法使用"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"導覽列"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"配置"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"其他向左按鈕類型"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"系統導覽已更新。如需變更,請前往「設定」。"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"前往「設定」更新系統導覽"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待機"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"對話已設為優先"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"優先對話"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"開啟「優先」模式後,這些對話會顯示在清單頂端,讓您一眼就能看見"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"上鎖畫面會顯示個人檔案相片"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"主畫面上會以對話氣泡顯示這些對話,讓您一眼就能看見"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"中斷「請勿騷擾」"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"知道了"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"設定"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"放大視窗"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"放大視窗控制項"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"放大"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 8a93729..b241d7b 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"可攜式無線基地台已關閉。"</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"可攜式無線基地台已開啟。"</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"已停止投放螢幕。"</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"工作模式已關閉。"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"工作模式已開啟。"</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"工作模式已關閉。"</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"工作模式已開啟。"</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"數據節省模式已關閉。"</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"數據節省模式已開啟。"</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"上限為 <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> 警告"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"工作資料夾"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"夜燈"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"於日落時開啟"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"於日出時關閉"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"電子錢包"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"顯示全部"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"解鎖裝置才能付款"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"已可使用"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"設定付款方式"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"解鎖即可使用"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"擷取卡片時發生問題,請稍後再試"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"工作資料夾"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"飛航模式"</string>
<string name="add_tile" msgid="6239678623873086686">"新增圖塊"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>狀態:</b>已降低為靜音"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>狀態:</b>已調高順序"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>狀態:</b>已調降順序"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"一律顯示在通知頂端 (無論是否開啟「優先」模式)"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"顯示在對話通知頂端 (螢幕鎖定時會顯示為個人資料相片)"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"以對話框的形式顯示在對話通知頂端 (螢幕鎖定時會顯示為個人資料相片)"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"顯示在對話通知頂端 (螢幕鎖定時會顯示為個人資料相片),並會中斷「零打擾」模式"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"以對話框的形式顯示在對話通知頂端 (螢幕鎖定時會顯示為個人資料相片),並會中斷「零打擾」模式"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"設定"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"優先對話"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"優先"</string>
<string name="no_shortcut" msgid="8257177117568230126">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」不支援對話功能"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"無法修改這些通知。"</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"無法在這裡設定這個通知群組"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"開啟"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"關閉"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"無法使用"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"導覽列"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"配置"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"其他向左按鈕類型"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"系統操作機制已更新。如要進行變更,請前往「設定」。"</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"請前往「設定」更新系統操作機制"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待機"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"對話已設為優先"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"優先對話"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"開啟「優先」模式後,這些對話會顯示在清單頂端,讓你一眼就能看見"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"螢幕鎖定畫面上會顯示個人資料相片"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"主畫面上會以對話框形式顯示這些對話,讓你一眼就能看見"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"中斷零打擾模式"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"我知道了"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"設定"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"放大視窗"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"放大視窗控制項"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"放大"</string>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 674a7c8..ab94067 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -289,9 +289,11 @@
<string name="accessibility_quick_settings_hotspot_changed_off" msgid="7002061268910095176">"I-hotspot ivaliwe."</string>
<string name="accessibility_quick_settings_hotspot_changed_on" msgid="2576895346762408840">"I-hotspot ivuliwe."</string>
<string name="accessibility_casting_turned_off" msgid="1387906158563374962">"Ukusakaza kwesikrini kumisiwe."</string>
- <string name="accessibility_quick_settings_work_mode_off" msgid="562749867895549696">"Imodi yomsebenzi ivaliwe."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_off (9106217884005620744) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_on" msgid="2779253456042059110">"Imodi yomsebenzi ivuliwe."</string>
- <string name="accessibility_quick_settings_work_mode_changed_off" msgid="6256690740556798683">"Imodi yomsebenzi ivaliwe."</string>
+ <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (2653550342355027441) -->
+ <skip />
<string name="accessibility_quick_settings_work_mode_changed_on" msgid="1105258550138313384">"Imodi yomsebenzi ivuliwe."</string>
<string name="accessibility_quick_settings_data_saver_changed_off" msgid="4910847127871603832">"Iseva yedatha ivaliwe."</string>
<string name="accessibility_quick_settings_data_saver_changed_on" msgid="6370606590802623078">"Iseva yedatha ivuliwe."</string>
@@ -410,6 +412,8 @@
<string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> umkhawulo"</string>
<string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> isexwayiso"</string>
<string name="quick_settings_work_mode_label" msgid="2754212289804324685">"Iphrofayela yomsebenzi"</string>
+ <!-- no translation found for quick_settings_work_mode_paused (4841109346916998613) -->
+ <skip />
<string name="quick_settings_night_display_label" msgid="8180030659141778180">"Ukukhanya kwasebusuku"</string>
<string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Kuvulwe ekushoneni kwelanga"</string>
<string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Kuze kube sekuphumeni kwelanga"</string>
@@ -668,10 +672,12 @@
<string name="wallet_title" msgid="5369767670735827105">"I-wallet"</string>
<string name="wallet_app_button_label" msgid="7123784239111190992">"Bonisa konke"</string>
<string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"Vula ukuze ukhokhele"</string>
- <string name="wallet_secondary_label_active" msgid="4909706168969888137">"Isikulungele"</string>
- <string name="wallet_secondary_label_no_card" msgid="1750103386908123401">"Setha inkokhelo"</string>
+ <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) -->
+ <skip />
<string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"Vula ukuze usebenzise"</string>
<string name="wallet_error_generic" msgid="257704570182963611">"Kube khona inkinga yokuthola amakhadi akho, sicela uzame futhi ngemuva kwesikhathi"</string>
+ <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) -->
+ <skip />
<string name="status_bar_work" msgid="5238641949837091056">"Iphrofayela yomsebenzi"</string>
<string name="status_bar_airplane" msgid="4848702508684541009">"Imodi yendiza"</string>
<string name="add_tile" msgid="6239678623873086686">"Engeza ithayili"</string>
@@ -740,9 +746,12 @@
<string name="notification_channel_summary_automatic_silenced" msgid="7403004439649872047">"<b>Isimo:</b> Sehliselwe Kokuthulile"</string>
<string name="notification_channel_summary_automatic_promoted" msgid="1301710305149590426">"<b>Isimo:</b> Silinganiselwe phezulu"</string>
<string name="notification_channel_summary_automatic_demoted" msgid="1831303964660807700">"<b>Isimo:</b> Silinganiselwe phansi"</string>
- <string name="notification_channel_summary_priority" msgid="4592979359953954258">"Iboniswa phezulu njalo ezazisweni zakho, ngisho nalapho kuvulwe imodi Ebalulekile"</string>
+ <string name="notification_channel_summary_priority_baseline" msgid="46674690072551234">"Ivela phezu kwezaziso zengxoxo nanjengesithombe sephrofayela esikrinini sokukhiya"</string>
+ <string name="notification_channel_summary_priority_bubble" msgid="1275413109619074576">"Ivela phezu kwezaziso zengxoxo futhi njengesithombe sephrofayela esikrinini sokukhiya, ivela njengebhamuza"</string>
+ <string name="notification_channel_summary_priority_dnd" msgid="6665395023264154361">"Ivela phezu kwezaziso zengxoxo futhi njengesithombe sephrofayela esikrinini sokukhiya, ukuphazamisa okuthi Ungaphazamisi"</string>
+ <string name="notification_channel_summary_priority_all" msgid="7151752959650048285">"Ivela phezu kwezaziso zengxoxo futhi njengesithombe sephrofayela esikrinini sokukhiya, ivela njengebhamuza, ukuphazamisa okuthi Ungaphazamisi"</string>
<string name="notification_conversation_channel_settings" msgid="2409977688430606835">"Izilungiselelo"</string>
- <string name="notification_priority_title" msgid="5256226572739882190">"Izingxoxo ezibalulekile"</string>
+ <string name="notification_priority_title" msgid="2079708866333537093">"Okubalulekile"</string>
<string name="no_shortcut" msgid="8257177117568230126">"I-<xliff:g id="APP_NAME">%1$s</xliff:g> ayisekeli izici zengxoxo"</string>
<string name="notification_unblockable_desc" msgid="2073030886006190804">"Lezi zaziso azikwazi ukushintshwa."</string>
<string name="notification_multichannel_desc" msgid="7414593090056236179">"Leli qembu lezaziso alikwazi ukulungiselelwa lapha"</string>
@@ -858,6 +867,8 @@
<string name="switch_bar_on" msgid="1770868129120096114">"Vuliwe"</string>
<string name="switch_bar_off" msgid="5669805115416379556">"Valiwe"</string>
<string name="tile_unavailable" msgid="3095879009136616920">"Akutholakali"</string>
+ <!-- no translation found for tile_disabled (373212051546573069) -->
+ <skip />
<string name="nav_bar" msgid="4642708685386136807">"Ibha yokuzula"</string>
<string name="nav_bar_layout" msgid="4716392484772899544">"Isakhiwo"</string>
<string name="left_nav_bar_button_type" msgid="2634852842345192790">"Uhlobo lwenkinobho engakwesokunxele engeziwe"</string>
@@ -1016,14 +1027,6 @@
<string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Ukuzulazula kwesistimu kubuyekeziwe. Ukuze wenze ushintsho, hamba kokuthi Izilungiselelo."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Hamba kuzilungiselelo ukuze ubuyekeze ukuzulazula kwesistimu"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ilindile"</string>
- <string name="priority_onboarding_title" msgid="2893070698479227616">"Izingxoxo zisethwe kweziza kuqala"</string>
- <string name="priority_onboarding_behavior" msgid="636826237468953117">"Izingxoxo ezibalulekile"</string>
- <string name="priority_onboarding_show_at_top_text" msgid="3861580571311518785">"Lezi zingxoxo ziboniswe phezulu ohlwini lwakho futhi zingafinyelela kuwe njalo lapho imodi Ebalulekile ivuliwe"</string>
- <string name="priority_onboarding_show_avatar_text" msgid="1781653813573865071">"Izithombe zephrofayela ziboniswe esikrinini esikhiyiwe"</string>
- <string name="priority_onboarding_appear_as_bubble_text" msgid="4359924720680083057">"Ungathola lezi zingxoxo kalula emabhamuzeni esikrinini sakho Sasekhaya"</string>
- <string name="priority_onboarding_ignores_dnd_text" msgid="2918952762719600529">"Thikameza Ukungaphazamisi"</string>
- <string name="priority_onboarding_done_button_title" msgid="4569550984286506007">"Ngiyezwa"</string>
- <string name="priority_onboarding_settings_button_title" msgid="6663601574303585927">"Amasethingi"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Iwindi Lesikhulisi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Izilawuli Zewindi Lesikhulisi"</string>
<string name="accessibility_control_zoom_in" msgid="1189272315480097417">"Sondeza"</string>
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index ee25a10..08a2e19 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -255,7 +255,6 @@
<!-- media -->
<color name="media_disabled">#80ffffff</color>
<color name="media_seamless_border">?android:attr/colorAccent</color>
- <color name="media_divider">#1d000000</color>
<!-- controls -->
<color name="control_primary_text">#E6FFFFFF</color>
@@ -280,7 +279,7 @@
<color name="screenrecord_status_color">#E94235</color>
- <color name="privacy_circle">#5BB974</color> <!-- g400 -->
+ <color name="privacy_chip_background">#3ddc84</color>
<!-- Accessibility floating menu -->
<color name="accessibility_floating_menu_background">#CCFFFFFF</color> <!-- 80% -->
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 120b3f8a..d4dbcf9 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -148,6 +148,9 @@
<!-- Minimum display time for a heads up notification, in milliseconds. -->
<integer name="heads_up_notification_minimum_time">2000</integer>
+ <!-- Whether to hide the notification header when the HUN is expanded. -->
+ <bool name="heads_up_notification_hides_header">false</bool>
+
<!-- The number of milliseconds before the heads up notification accepts touches. -->
<integer name="touch_acceptance_delay">700</integer>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 073913d..c60ec78 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -549,13 +549,16 @@
(Toolbar_minWidth (56dp) + qs_tile_margin_top_bottom (4dp))
-->
<dimen name="qs_customize_header_min_height">54dp</dimen>
+ <dimen name="qs_customize_internal_side_paddings">8dp</dimen>
<dimen name="qs_tile_margin_top">18dp</dimen>
<dimen name="qs_tile_icon_background_stroke_width">-1dp</dimen>
<dimen name="qs_tile_background_size">56dp</dimen>
<dimen name="qs_icon_size">20dp</dimen>
<dimen name="qs_label_container_margin">10dp</dimen>
<dimen name="qs_quick_tile_size">60dp</dimen>
- <dimen name="qs_quick_tile_padding">12dp</dimen>
+ <dimen name="qs_tile_padding">12dp</dimen>
+ <dimen name="qs_tile_start_padding">16dp</dimen>
+ <dimen name="qs_drawable_end_margin">4dp</dimen>
<dimen name="qs_header_gear_translation">16dp</dimen>
<dimen name="qs_header_tile_margin_bottom">18dp</dimen>
<dimen name="qs_page_indicator_width">16dp</dimen>
@@ -564,8 +567,6 @@
Scaled @dimen/qs_page_indicator-width by .4f.
-->
<dimen name="qs_page_indicator_dot_width">6.4dp</dimen>
- <dimen name="qs_tile_side_label_padding">12dp</dimen>
- <dimen name="qs_tile_icon_size">24dp</dimen>
<dimen name="qs_tile_text_size">14sp</dimen>
<dimen name="qs_tile_divider_height">1dp</dimen>
<dimen name="qs_panel_padding">16dp</dimen>
@@ -616,7 +617,7 @@
<dimen name="qs_footer_padding">20dp</dimen>
<dimen name="qs_security_footer_height">88dp</dimen>
<dimen name="qs_security_footer_single_line_height">48dp</dimen>
- <dimen name="qs_security_footer_vertical_margin">8dp</dimen>
+ <dimen name="qs_footers_margin_bottom">8dp</dimen>
<dimen name="qs_security_footer_background_inset">0dp</dimen>
<dimen name="qs_security_footer_corner_radius">28dp</dimen>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 3480d10..30add20 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -690,11 +690,11 @@
<!-- Announcement made when the screen stopped casting (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_casting_turned_off">Screen casting stopped.</string>
<!-- Content description of the work mode title in quick settings when off (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_work_mode_off">Work mode off.</string>
+ <string name="accessibility_quick_settings_work_mode_off">Work mode paused.</string>
<!-- Content description of the work mode title in quick settings when on (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_work_mode_on">Work mode on.</string>
<!-- Announcement made when the work mode changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
- <string name="accessibility_quick_settings_work_mode_changed_off">Work mode turned off.</string>
+ <string name="accessibility_quick_settings_work_mode_changed_off">Work mode turned paused.</string>
<!-- Announcement made when the work mode changes to on (not shown on the screen). [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_work_mode_changed_on">Work mode turned on.</string>
<!-- Announcement made when the Data Saver changes to off (not shown on the screen). [CHAR LIMIT=NONE] -->
@@ -954,6 +954,8 @@
off. "Work profile" means a separate profile on a user's phone that's specifically for their
work apps and managed by their company. "Work" is used as an adjective. [CHAR LIMIT=NONE] -->
<string name="quick_settings_work_mode_label">Work profile</string>
+ <!-- QuickSettings: Secondary label for work mode tile when it's off. [CHAR LIMIT=NONE] -->
+ <string name="quick_settings_work_mode_paused">Paused</string>
<!-- QuickSettings: Label for the toggle to activate Night display (renamed "Night Light" with title caps). [CHAR LIMIT=20] -->
<string name="quick_settings_night_display_label">Night Light</string>
<!-- QuickSettings: Secondary text for when the Night Light will be enabled at sunset. [CHAR LIMIT=20] -->
@@ -1113,16 +1115,16 @@
<string name="interruption_level_alarms_twoline">Alarms\nonly</string>
<!-- Indication on the keyguard that is shown when the device is wirelessly charging. [CHAR LIMIT=80]-->
- <string name="keyguard_indication_charging_time_wireless"><xliff:g id="percentage" example="20%">%2$s</xliff:g> • Charging wirelessly (<xliff:g id="charging_time_left" example="4 hours and 2 minutes">%1$s</xliff:g> until full)</string>
+ <string name="keyguard_indication_charging_time_wireless"><xliff:g id="percentage" example="20%">%2$s</xliff:g> • Charging wirelessly • Full in <xliff:g id="charging_time_left" example="4 hr, 2 min">%1$s</xliff:g></string>
<!-- Indication on the keyguard that is shown when the device is charging. [CHAR LIMIT=50]-->
- <string name="keyguard_indication_charging_time"><xliff:g id="percentage">%2$s</xliff:g> • Charging (<xliff:g id="charging_time_left" example="4 hours and 2 minutes">%1$s</xliff:g> until full)</string>
+ <string name="keyguard_indication_charging_time"><xliff:g id="percentage">%2$s</xliff:g> • Charging • Full in <xliff:g id="charging_time_left" example="4 hr, 2 min">%1$s</xliff:g></string>
<!-- Indication on the keyguard that is shown when the device is charging rapidly. Should match keyguard_plugged_in_charging_fast [CHAR LIMIT=50]-->
- <string name="keyguard_indication_charging_time_fast"><xliff:g id="percentage">%2$s</xliff:g> • Charging rapidly (<xliff:g id="charging_time_left" example="4 hours and 2 minutes">%1$s</xliff:g> until full)</string>
+ <string name="keyguard_indication_charging_time_fast"><xliff:g id="percentage">%2$s</xliff:g> • Charging rapidly • Full in <xliff:g id="charging_time_left" example="4 hr, 2 min">%1$s</xliff:g></string>
<!-- Indication on the keyguard that is shown when the device is charging slowly. Should match keyguard_plugged_in_charging_slowly [CHAR LIMIT=50]-->
- <string name="keyguard_indication_charging_time_slowly"><xliff:g id="percentage">%2$s</xliff:g> • Charging slowly (<xliff:g id="charging_time_left" example="4 hours and 2 minutes">%1$s</xliff:g> until full)</string>
+ <string name="keyguard_indication_charging_time_slowly"><xliff:g id="percentage">%2$s</xliff:g> • Charging slowly • Full in <xliff:g id="charging_time_left" example="4 hr, 2 min">%1$s</xliff:g></string>
<!-- Related to user switcher --><skip/>
@@ -2187,6 +2189,9 @@
<!-- The tile in quick settings is unavailable. [CHAR LIMIT=32] -->
<string name="tile_unavailable">Unavailable</string>
+ <!-- The tile in quick settings is disabled by a device administration policy [CHAR LIMIT=32] -->
+ <string name="tile_disabled">Disabled</string>
+
<!-- SysUI Tuner: Button that leads to the navigation bar customization screen [CHAR LIMIT=60] -->
<string name="nav_bar">Navigation bar</string>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index aa1f954..abc44a2 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -14,8 +14,8 @@
limitations under the License.
-->
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- NOTE: Adding the androidprv: namespace to this file will break the studio build. -->
<style name="ClearAllButtonDefaultMargins">
<item name="android:layout_marginStart">0dp</item>
<item name="android:layout_marginTop">0dp</item>
@@ -226,13 +226,21 @@
<item name="android:textSize">@dimen/qs_tile_text_size</item>
</style>
- <style name="TextAppearance.QS.Status" parent="TextAppearance.QS.TileLabel.Secondary">
- <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
- <item name="android:textColor">@color/dark_mode_qs_icon_color_single_tone</item>
+ <style name="TextAppearance.QS.Status">
+ <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
+ <item name="android:textColor">?android:attr/textColorPrimary</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:letterSpacing">0.01</item>
+ <item name="android:lineHeight">20sp</item>
+ </style>
+
+ <style name="TextAppearance.QS.Status.NoCarrierText">
+ <item name="android:textColor">?android:attr/textColorTertiary</item>
</style>
<style name="TextAppearance.QS.Build">
<item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+ <item name="android:textColor">?android:attr/textColorSecondary</item>
<item name="android:textSize">14sp</item>
</style>
@@ -334,7 +342,6 @@
<item name="wallpaperTextColorSecondary">@*android:color/secondary_text_material_dark</item>
<item name="wallpaperTextColorAccent">@*android:color/system_accent1_100</item>
<item name="android:colorError">@*android:color/error_color_material_dark</item>
- <item name="android:colorControlHighlight">@*android:color/primary_text_material_dark</item>
<item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
<item name="passwordStyle">@style/PasswordTheme</item>
<item name="numPadKeyStyle">@style/NumPadKey</item>
@@ -351,7 +358,6 @@
<item name="wallpaperTextColorSecondary">@*android:color/secondary_text_material_light</item>
<item name="wallpaperTextColorAccent">@*android:color/system_accent2_600</item>
<item name="android:colorError">@*android:color/error_color_material_light</item>
- <item name="android:colorControlHighlight">#40000000</item>
<item name="shadowRadius">0</item>
<!-- Needed for MediaRoute chooser dialog -->
@@ -389,7 +395,6 @@
<style name="Theme.SystemUI.QuickSettings" parent="@*android:style/Theme.DeviceDefault">
<item name="lightIconTheme">@style/QSIconTheme</item>
<item name="darkIconTheme">@style/QSIconTheme</item>
- <item name="android:textColor">?android:attr/textColorPrimary</item>
<item name="android:colorError">@*android:color/error_color_material_dark</item>
<item name="android:windowIsFloating">true</item>
<item name="android:homeAsUpIndicator">@drawable/ic_arrow_back</item>
@@ -637,7 +642,7 @@
<style name="MediaPlayer.OutlineButton">
<item name="android:background">@drawable/qs_media_button_background</item>
<item name="android:textColor">?android:attr/textColorPrimary</item>
- <item name="android:backgroundTint">?androidprv:attr/colorAccentPrimaryVariant</item>
+ <item name="android:backgroundTint">@color/media_player_outline_button_bg</item>
<item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
</style>
@@ -654,7 +659,7 @@
</style>
<style name="MediaPlayer.Album">
- <item name="android:backgroundTint">?androidprv:attr/colorAccentSecondary</item>
+ <item name="android:backgroundTint">@color/media_player_album_bg</item>
</style>
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl
index 114472b..277b2e3 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/IOverviewProxy.aidl
@@ -75,4 +75,10 @@
* Sent when the split screen is resized
*/
void onSplitScreenSecondaryBoundsChanged(in Rect bounds, in Rect insets) = 17;
+
+ /**
+ * Sent IME status changes
+ */
+ void onImeWindowStatusChanged(int displayId, IBinder token, int vis, int backDisposition,
+ boolean showImeSwitcher) = 18;
}
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/tracing/FrameProtoTracer.java b/packages/SystemUI/shared/src/com/android/systemui/shared/tracing/FrameProtoTracer.java
index 356e0ca..4394ecb 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/tracing/FrameProtoTracer.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/tracing/FrameProtoTracer.java
@@ -49,7 +49,7 @@
private final TraceBuffer<P, S, T> mBuffer;
private final File mTraceFile;
private final ProtoTraceParams<P, S, T, R> mParams;
- private final Choreographer mChoreographer;
+ private Choreographer mChoreographer;
private final Queue<T> mPool = new LinkedList<>();
private final ArrayList<ProtoTraceable<R>> mTraceables = new ArrayList<>();
private final ArrayList<ProtoTraceable<R>> mTmpTraceables = new ArrayList<>();
@@ -94,7 +94,6 @@
}
});
mTraceFile = params.getTraceFile();
- mChoreographer = Choreographer.getMainThreadInstance();
}
public void start() {
@@ -140,6 +139,9 @@
}
// Schedule an update on the next frame
+ if (mChoreographer == null) {
+ mChoreographer = Choreographer.getMainThreadInstance();
+ }
mChoreographer.postFrameCallback(this);
mFrameScheduled = true;
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java
index e92cae4..4b71a3a 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java
@@ -25,7 +25,6 @@
import android.app.smartspace.SmartspaceManager;
import android.app.smartspace.SmartspaceSession;
import android.app.smartspace.SmartspaceTarget;
-import android.content.Context;
import android.content.Intent;
import android.content.pm.UserInfo;
import android.content.res.Resources;
@@ -45,7 +44,6 @@
import com.android.keyguard.clock.ClockManager;
import com.android.settingslib.Utils;
import com.android.systemui.R;
-import com.android.systemui.SystemUIFactory;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.dagger.qualifiers.Main;
@@ -69,6 +67,7 @@
import com.android.systemui.util.settings.SecureSettings;
import java.util.Locale;
+import java.util.Optional;
import java.util.TimeZone;
import java.util.concurrent.Executor;
@@ -89,7 +88,6 @@
private final Executor mUiExecutor;
private final BatteryController mBatteryController;
private final FeatureFlags mFeatureFlags;
- private final SystemUIFactory mSystemUIFactory;
/**
* Clock for both small and large sizes
@@ -113,7 +111,6 @@
private boolean mShowSensitiveContentForCurrentUser;
private boolean mShowSensitiveContentForManagedUser;
private UserHandle mManagedUserHandle;
- private UserTracker.Callback mUserTrackerCallback;
/**
* Listener for changes to the color palette.
@@ -152,6 +149,7 @@
// If set, will replace keyguard_status_area
private BcSmartspaceDataPlugin.SmartspaceView mSmartspaceView;
+ private Optional<BcSmartspaceDataPlugin> mSmartspacePlugin;
@Inject
public KeyguardClockSwitchController(
@@ -165,14 +163,14 @@
@Main Executor uiExecutor,
BatteryController batteryController,
ConfigurationController configurationController,
- SystemUIFactory systemUIFactory,
ActivityStarter activityStarter,
FalsingManager falsingManager,
KeyguardUpdateMonitor keyguardUpdateMonitor,
KeyguardBypassController bypassController,
@Main Handler handler,
UserTracker userTracker,
- SecureSettings secureSettings) {
+ SecureSettings secureSettings,
+ Optional<BcSmartspaceDataPlugin> smartspacePlugin) {
super(keyguardClockSwitch);
mStatusBarStateController = statusBarStateController;
mColorExtractor = colorExtractor;
@@ -184,7 +182,6 @@
mUiExecutor = uiExecutor;
mBatteryController = batteryController;
mConfigurationController = configurationController;
- mSystemUIFactory = systemUIFactory;
mActivityStarter = activityStarter;
mFalsingManager = falsingManager;
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
@@ -192,6 +189,7 @@
mHandler = handler;
mUserTracker = userTracker;
mSecureSettings = secureSettings;
+ mSmartspacePlugin = smartspacePlugin;
}
/**
@@ -237,8 +235,8 @@
mStatusBarStateController.addCallback(mStatusBarStateListener);
mConfigurationController.addCallback(mConfigurationListener);
- BcSmartspaceDataPlugin smartspaceDataPlugin = mSystemUIFactory.getSmartspaceDataProvider();
- if (mFeatureFlags.isSmartspaceEnabled() && smartspaceDataPlugin != null) {
+ if (mFeatureFlags.isSmartspaceEnabled() && mSmartspacePlugin.isPresent()) {
+ BcSmartspaceDataPlugin smartspaceDataPlugin = mSmartspacePlugin.get();
View ksa = mView.findViewById(R.id.keyguard_status_area);
int ksaIndex = mView.indexOfChild(ksa);
ksa.setVisibility(View.GONE);
@@ -294,13 +292,6 @@
}
};
- mUserTrackerCallback = new UserTracker.Callback() {
- public void onUserChanged(int newUser, Context userContext) {
- reloadSmartspace();
- }
- };
- mUserTracker.addCallback(mUserTrackerCallback, mUiExecutor);
-
getContext().getContentResolver().registerContentObserver(
Settings.Secure.getUriFor(
Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS),
@@ -376,10 +367,6 @@
if (mSettingsObserver != null) {
getContext().getContentResolver().unregisterContentObserver(mSettingsObserver);
}
-
- if (mUserTrackerCallback != null) {
- mUserTracker.removeCallback(mUserTrackerCallback);
- }
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
index d07723e..be50eb1 100644
--- a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
+++ b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
@@ -91,6 +91,7 @@
import com.android.systemui.statusbar.events.PrivacyDotViewController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.tuner.TunerService.Tunable;
+import com.android.systemui.util.concurrency.ThreadFactory;
import com.android.systemui.util.settings.SecureSettings;
import java.util.ArrayList;
@@ -128,6 +129,7 @@
private CameraAvailabilityListener mCameraListener;
private final UserTracker mUserTracker;
private final PrivacyDotViewController mDotViewController;
+ private final ThreadFactory mThreadFactory;
//TODO: These are piecemeal being updated to Points for now to support non-square rounded
// corners. for now it is only supposed when reading the intrinsic size from the drawables with
@@ -215,7 +217,8 @@
BroadcastDispatcher broadcastDispatcher,
TunerService tunerService,
UserTracker userTracker,
- PrivacyDotViewController dotViewController) {
+ PrivacyDotViewController dotViewController,
+ ThreadFactory threadFactory) {
super(context);
mMainHandler = handler;
mSecureSettings = secureSettings;
@@ -223,6 +226,7 @@
mTunerService = tunerService;
mUserTracker = userTracker;
mDotViewController = dotViewController;
+ mThreadFactory = threadFactory;
}
@Override
@@ -233,7 +237,8 @@
}
mHandler = startHandlerThread();
mHandler.post(this::startOnScreenDecorationsThread);
- mDotViewController.setUiExecutor(mHandler::post);
+ mDotViewController.setUiExecutor(
+ mThreadFactory.buildDelayableExecutorOnLooper(mHandler.getLooper()));
}
@VisibleForTesting
@@ -643,7 +648,7 @@
int newRotation = mContext.getDisplay().getRotation();
if (mRotation != newRotation) {
- mDotViewController.updateRotation(newRotation);
+ mDotViewController.setNewRotation(newRotation);
}
if (mPendingRotationChange) {
diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
index af064e1..cc167b9 100644
--- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java
@@ -29,7 +29,6 @@
import com.android.systemui.dagger.SysUIComponent;
import com.android.systemui.dagger.WMComponent;
import com.android.systemui.navigationbar.gestural.BackGestureTfClassifierProvider;
-import com.android.systemui.plugins.BcSmartspaceDataPlugin;
import com.android.systemui.screenshot.ScreenshotNotificationSmartActionsProvider;
import com.android.wm.shell.transition.Transitions;
@@ -210,8 +209,4 @@
AssetManager am, String modelName) {
return new BackGestureTfClassifierProvider();
}
-
- public BcSmartspaceDataPlugin getSmartspaceDataProvider() {
- return null;
- }
}
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.java
index 195d006..b7344fb 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.java
@@ -45,7 +45,7 @@
@NonNull final StatusBar mStatusBar;
@NonNull final DumpManager mDumpManger;
- private boolean mNotificationShadeExpanded;
+ boolean mNotificationShadeExpanded;
protected UdfpsAnimationViewController(
T view,
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardView.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardView.java
index 37ea251..52576a7 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardView.java
@@ -40,12 +40,14 @@
public class UdfpsKeyguardView extends UdfpsAnimationView {
private final UdfpsKeyguardDrawable mFingerprintDrawable;
private ImageView mFingerprintView;
- private int mWallpaperTexColor;
+ private int mWallpaperTextColor;
private int mStatusBarState;
// used when highlighting fp icon:
private int mTextColorPrimary;
private ImageView mBgProtection;
+ boolean mUdfpsRequested;
+ int mUdfpsRequestedColor;
private AnimatorSet mAnimatorSet;
private int mAlpha; // 0-255
@@ -63,10 +65,11 @@
mBgProtection = findViewById(R.id.udfps_keyguard_fp_bg);
- mWallpaperTexColor = Utils.getColorAttrDefaultColor(mContext,
+ mWallpaperTextColor = Utils.getColorAttrDefaultColor(mContext,
R.attr.wallpaperTextColorAccent);
mTextColorPrimary = Utils.getColorAttrDefaultColor(mContext,
android.R.attr.textColorPrimary);
+ mUdfpsRequested = false;
}
@Override
@@ -90,11 +93,31 @@
return true;
}
+ void requestUdfps(boolean request, int color) {
+ if (request) {
+ mUdfpsRequestedColor = color;
+ } else {
+ mUdfpsRequestedColor = -1;
+ }
+ mUdfpsRequested = request;
+ updateColor();
+ }
+
void setStatusBarState(int statusBarState) {
mStatusBarState = statusBarState;
- if (!isShadeLocked()) {
- mFingerprintView.setAlpha(1f);
- mFingerprintDrawable.setLockScreenColor(mWallpaperTexColor);
+ updateColor();
+ }
+
+ void updateColor() {
+ mFingerprintView.setAlpha(1f);
+ mFingerprintDrawable.setLockScreenColor(getColor());
+ }
+
+ private int getColor() {
+ if (mUdfpsRequested && mUdfpsRequestedColor != -1) {
+ return mUdfpsRequestedColor;
+ } else {
+ return mWallpaperTextColor;
}
}
@@ -142,7 +165,7 @@
} else {
// update icon color
fpIconAnim = new ValueAnimator();
- fpIconAnim.setIntValues(mWallpaperTexColor, mTextColorPrimary);
+ fpIconAnim.setIntValues(getColor(), mTextColorPrimary);
fpIconAnim.setEvaluator(new ArgbEvaluator());
fpIconAnim.addUpdateListener(valueAnimator -> mFingerprintDrawable.setLockScreenColor(
(Integer) valueAnimator.getAnimatedValue()));
@@ -170,10 +193,6 @@
return mStatusBarState == StatusBarState.SHADE_LOCKED;
}
- boolean isHome() {
- return mStatusBarState == StatusBarState.SHADE;
- }
-
/**
* Animates out the bg protection circle behind the fp icon to unhighlight the icon.
*/
@@ -193,7 +212,7 @@
} else {
// update icon color
fpIconAnim = new ValueAnimator();
- fpIconAnim.setIntValues(mTextColorPrimary, mWallpaperTexColor);
+ fpIconAnim.setIntValues(mTextColorPrimary, getColor());
fpIconAnim.setEvaluator(new ArgbEvaluator());
fpIconAnim.addUpdateListener(valueAnimator -> mFingerprintDrawable.setLockScreenColor(
(Integer) valueAnimator.getAnimatedValue()));
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java
index 4d2f809..33d0d0c 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewController.java
@@ -57,6 +57,7 @@
@Nullable private Runnable mCancelRunnable;
private boolean mShowingUdfpsBouncer;
+ private boolean mUdfpsRequested;
private boolean mQsExpanded;
private boolean mFaceDetectRunning;
private boolean mHintShown;
@@ -70,6 +71,7 @@
* {@link KeyguardBouncer#EXPANSION_HIDDEN} (1f)
*/
private float mInputBouncerHiddenAmount;
+ private boolean mIsBouncerVisible;
protected UdfpsKeyguardViewController(
@NonNull UdfpsKeyguardView view,
@@ -105,6 +107,7 @@
mStateListener.onDozeAmountChanged(dozeAmount, dozeAmount);
mStatusBarStateController.addCallback(mStateListener);
+ mUdfpsRequested = false;
mStatusBarState = mStatusBarStateController.getState();
mQsExpanded = mKeyguardViewManager.isQsExpanded();
mKeyguardIsVisible = mKeyguardUpdateMonitor.isKeyguardVisible();
@@ -113,6 +116,7 @@
updatePauseAuth();
mKeyguardViewManager.setAlternateAuthInterceptor(mAlternateAuthInterceptor);
+ mIsBouncerVisible = mKeyguardViewManager.bouncerIsOrWillBeShowing();
}
@Override
@@ -137,11 +141,15 @@
pw.println("mShowingUdfpsBouncer=" + mShowingUdfpsBouncer);
pw.println("mFaceDetectRunning=" + mFaceDetectRunning);
pw.println("mTransitioningFromHomeToKeyguard=" + mTransitioningFromHome);
- pw.println("mStatusBarState" + StatusBarState.toShortString(mStatusBarState));
+ pw.println("mStatusBarState=" + StatusBarState.toShortString(mStatusBarState));
pw.println("mQsExpanded=" + mQsExpanded);
pw.println("mKeyguardVisible=" + mKeyguardIsVisible);
+ pw.println("mIsBouncerVisible=" + mIsBouncerVisible);
pw.println("mInputBouncerHiddenAmount=" + mInputBouncerHiddenAmount);
pw.println("mAlpha=" + mView.getAlpha());
+ pw.println("mUdfpsRequested=" + mUdfpsRequested);
+ pw.println("mView.mUdfpsRequested=" + mView.mUdfpsRequested);
+ pw.println("mView.mUdfpsRequestedColor=" + mView.mUdfpsRequestedColor);
}
/**
@@ -173,6 +181,12 @@
return false;
}
+ if (mUdfpsRequested && !mNotificationShadeExpanded
+ && (!mIsBouncerVisible
+ || mInputBouncerHiddenAmount != KeyguardBouncer.EXPANSION_VISIBLE)) {
+ return false;
+ }
+
if (mStatusBarState != KEYGUARD) {
return true;
}
@@ -333,6 +347,13 @@
}
@Override
+ public void requestUdfps(boolean request, int color) {
+ mUdfpsRequested = request;
+ mView.requestUdfps(request, color);
+ updatePauseAuth();
+ }
+
+ @Override
public boolean isAnimating() {
return mView.isAnimating();
}
@@ -356,6 +377,12 @@
}
@Override
+ public void onBouncerVisibilityChanged() {
+ mIsBouncerVisible = mKeyguardViewManager.bouncerIsOrWillBeShowing();
+ updatePauseAuth();
+ }
+
+ @Override
public void dump(PrintWriter pw) {
pw.println(getTag());
}
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
index 126724c..7fa48d4 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
@@ -38,6 +38,7 @@
import com.android.systemui.fragments.FragmentService;
import com.android.systemui.log.dagger.LogModule;
import com.android.systemui.model.SysUiState;
+import com.android.systemui.plugins.BcSmartspaceDataPlugin;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.power.dagger.PowerModule;
import com.android.systemui.recents.Recents;
@@ -151,6 +152,9 @@
abstract HeadsUpManager optionalHeadsUpManager();
@BindsOptionalOf
+ abstract BcSmartspaceDataPlugin optionalBcSmartspaceDataPlugin();
+
+ @BindsOptionalOf
abstract Recents optionalRecents();
@BindsOptionalOf
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
index 19edeb8..2eb3762 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
@@ -583,7 +583,6 @@
mStatusBarService, mNotificationShadeWindowController,
mSysUiState, this::onRotate, mKeyguardShowing, mPowerAdapter);
- dialog.setCanceledOnTouchOutside(true);
dialog.setOnDismissListener(this);
dialog.setOnShowListener(this);
@@ -2080,7 +2079,7 @@
window.getDecorView();
window.getAttributes().systemUiVisibility |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
- window.setLayout(MATCH_PARENT, WRAP_CONTENT);
+ window.setLayout(MATCH_PARENT, MATCH_PARENT);
window.addFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
| WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
@@ -2141,6 +2140,10 @@
mGlobalActionsLayout.setRotationListener(this::onRotate);
mGlobalActionsLayout.setAdapter(mAdapter);
mContainer = findViewById(com.android.systemui.R.id.global_actions_container);
+ mContainer.setOnClickListener(v -> {
+ // TODO: add logging (b/182830510)
+ cancel();
+ });
View overflowButton = findViewById(
com.android.systemui.R.id.global_actions_overflow_button);
@@ -2178,7 +2181,6 @@
@Override
protected void onStart() {
- super.setCanceledOnTouchOutside(true);
super.onStart();
mGlobalActionsLayout.updateList();
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsLayoutLite.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsLayoutLite.java
index eb4cd6b..f1e5b08 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsLayoutLite.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsLayoutLite.java
@@ -42,6 +42,7 @@
com.android.systemui.R.integer.power_menu_lite_max_columns);
mMaxRows = getResources().getInteger(
com.android.systemui.R.integer.power_menu_lite_max_rows);
+ setOnClickListener(v -> { }); // Prevent parent onClickListener from triggering
}
@VisibleForTesting
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
index bd3b899..30429fb 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
@@ -38,7 +38,6 @@
import android.service.notification.ZenModeConfig;
import android.text.TextUtils;
import android.text.style.StyleSpan;
-import android.util.Log;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
@@ -53,8 +52,6 @@
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.SystemUIAppComponentFactory;
-import com.android.systemui.SystemUIFactory;
-import com.android.systemui.dagger.SysUIComponent;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.StatusBarState;
@@ -65,8 +62,6 @@
import com.android.systemui.util.wakelock.SettableWakeLock;
import com.android.systemui.util.wakelock.WakeLock;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
@@ -318,25 +313,7 @@
mPendingIntent = PendingIntent.getActivity(getContext(), 0,
new Intent(getContext(), KeyguardSliceProvider.class),
PendingIntent.FLAG_IMMUTABLE);
- try {
- //TODO(b/168778439): Remove this whole try catch. This is for debugging in dogfood.
- mMediaManager.addCallback(this);
- } catch (NullPointerException e) {
- // We are sometimes failing to set the media manager. Why?
- Log.w(TAG, "Failed to setup mMediaManager. Trying again.");
- SysUIComponent rootComponent = SystemUIFactory.getInstance().getSysUIComponent();
- try {
- Method injectMethod = rootComponent.getClass()
- .getMethod("inject", getClass());
- injectMethod.invoke(rootComponent, this);
- Log.w(TAG, "mMediaManager is now: " + mMediaManager);
- } catch (NoSuchMethodException ex) {
- Log.e(TAG, "Failed to find inject method for KeyguardSliceProvider", ex);
- } catch (IllegalAccessException | InvocationTargetException ex) {
- Log.e(TAG, "Failed to call inject", ex);
- }
- throw e;
- }
+ mMediaManager.addCallback(this);
mStatusBarStateController.addCallback(this);
mNextAlarmController.addCallback(this);
mZenModeController.addCallback(this);
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt
index 2450367..644876c 100644
--- a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt
@@ -106,7 +106,7 @@
private var carouselMeasureHeight: Int = 0
private var desiredHostState: MediaHostState? = null
private val mediaCarousel: MediaScrollView
- private val mediaCarouselScrollHandler: MediaCarouselScrollHandler
+ val mediaCarouselScrollHandler: MediaCarouselScrollHandler
val mediaFrame: ViewGroup
private lateinit var settingsButton: View
private val mediaContent: ViewGroup
@@ -115,6 +115,7 @@
private var needsReordering: Boolean = false
private var keysNeedRemoval = mutableSetOf<String>()
private var bgColor = getBackgroundColor()
+ private var shouldScrollToActivePlayer: Boolean = false
private var isRtl: Boolean = false
set(value) {
if (value != field) {
@@ -155,20 +156,13 @@
}
}
- var visibleToUser: Boolean = false
- set(value) {
- if (field != value) {
- field = value
- }
- }
-
init {
mediaFrame = inflateMediaCarousel()
mediaCarousel = mediaFrame.requireViewById(R.id.media_carousel_scroller)
pageIndicator = mediaFrame.requireViewById(R.id.media_page_indicator)
mediaCarouselScrollHandler = MediaCarouselScrollHandler(mediaCarousel, pageIndicator,
- executor, mediaManager::onSwipeToDismiss, this::updatePageIndicatorLocation,
- this::closeGuts, falsingCollector, falsingManager)
+ executor, this::onSwipeToDismiss, this::updatePageIndicatorLocation,
+ this::closeGuts, falsingCollector, falsingManager, this::logSmartspaceImpression)
isRtl = context.resources.configuration.layoutDirection == View.LAYOUT_DIRECTION_RTL
inflateSettingsButton()
mediaContent = mediaCarousel.requireViewById(R.id.media_carousel)
@@ -209,7 +203,7 @@
override fun onSmartspaceMediaDataLoaded(key: String, data: SmartspaceTarget) {
Log.d(TAG, "My Smartspace media update is here")
addSmartspaceMediaRecommendations(key, data)
- if (visibleToUser) {
+ if (mediaCarouselScrollHandler.visibleToUser) {
logSmartspaceImpression()
}
}
@@ -271,6 +265,15 @@
}
}
mediaCarouselScrollHandler.onPlayersChanged()
+
+ // Automatically scroll to the active player if needed
+ if (shouldScrollToActivePlayer) {
+ shouldScrollToActivePlayer = false
+ val activeMediaIndex = MediaPlayerData.getActiveMediaIndex()
+ if (activeMediaIndex != -1) {
+ mediaCarouselScrollHandler.scrollToActivePlayer(activeMediaIndex)
+ }
+ }
}
private fun addOrUpdatePlayer(key: String, oldKey: String?, data: MediaData) {
@@ -322,8 +325,8 @@
val lp = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT)
newRecs.recommendationViewHolder?.recommendations?.setLayoutParams(lp)
- newRecs.bindRecommendation(data, bgColor)
- MediaPlayerData.addMediaPlayer(key, newRecs)
+ newRecs.bindRecommendation(data, bgColor, { v -> shouldScrollToActivePlayer = true })
+ MediaPlayerData.addMediaRecommendation(key, newRecs)
updatePlayerToState(newRecs, noAnimation = true)
reorderAllPlayers()
updatePageIndicator()
@@ -570,32 +573,77 @@
* Log the user impression for media card.
*/
fun logSmartspaceImpression() {
- MediaPlayerData.players().forEach {
- // Log every impression of media recommendation card since it will only be shown
- // for 1 minute after each connection.
- if (it.recommendationViewHolder?.recommendations?.visibility == View.VISIBLE) {
- /* ktlint-disable max-line-length */
- SysUiStatsLog.write(SysUiStatsLog.SMARTSPACE_CARD_REPORTED,
- 800, // SMARTSPACE_CARD_SEEN
- it.getInstanceId(),
- SysUiStatsLog.SMART_SPACE_CARD_REPORTED__CARD_TYPE__HEADPHONE_MEDIA_RECOMMENDATIONS,
- it.getSurfaceForSmartspaceLogging(),
- /* rank */ 0,
- /* cardinality */ 1)
- /* ktlint-disable max-line-length */
+ val visibleMediaIndex = mediaCarouselScrollHandler.visibleMediaIndex
+ if (MediaPlayerData.players().size > visibleMediaIndex) {
+ val mediaControlPanel = MediaPlayerData.players().elementAt(visibleMediaIndex)
+ val isMediaActive =
+ MediaPlayerData.playerKeys().elementAt(visibleMediaIndex).data?.active
+ val isRecommendationCard = mediaControlPanel.recommendationViewHolder != null
+ if (!isRecommendationCard && !isMediaActive) {
+ // Media control card time out or swiped away
+ return
}
-
- // TODO(shijieru): add logging for media control card
+ logSmartspaceCardReported(800, // SMARTSPACE_CARD_SEEN
+ mediaControlPanel.mInstanceId,
+ isRecommendationCard,
+ mediaControlPanel.surfaceForSmartspaceLogging)
}
}
+
+ @JvmOverloads
+ fun logSmartspaceCardReported(
+ eventId: Int,
+ instanceId: Int,
+ isRecommendationCard: Boolean,
+ surface: Int,
+ rank: Int = mediaCarouselScrollHandler.visibleMediaIndex
+ ) {
+ /* ktlint-disable max-line-length */
+ SysUiStatsLog.write(SysUiStatsLog.SMARTSPACE_CARD_REPORTED,
+ eventId,
+ instanceId,
+ if (isRecommendationCard)
+ SysUiStatsLog.SMART_SPACE_CARD_REPORTED__CARD_TYPE__HEADPHONE_MEDIA_RECOMMENDATIONS
+ else
+ SysUiStatsLog.SMART_SPACE_CARD_REPORTED__CARD_TYPE__HEADPHONE_RESUME_MEDIA,
+ surface,
+ rank,
+ mediaContent.getChildCount())
+ /* ktlint-disable max-line-length */
+ }
+
+ private fun onSwipeToDismiss() {
+ val recommendation = MediaPlayerData.players().filter {
+ it.recommendationViewHolder != null
+ }
+ // Use -1 as rank value to indicate user swipe to dismiss the card
+ if (!recommendation.isEmpty()) {
+ logSmartspaceCardReported(761, // SMARTSPACE_CARD_DISMISS
+ recommendation.get(0).mInstanceId,
+ true,
+ recommendation.get(0).surfaceForSmartspaceLogging,
+ /* rank */-1)
+ } else {
+ val visibleMediaIndex = mediaCarouselScrollHandler.visibleMediaIndex
+ if (MediaPlayerData.players().size > visibleMediaIndex) {
+ val player = MediaPlayerData.players().elementAt(visibleMediaIndex)
+ logSmartspaceCardReported(761, // SMARTSPACE_CARD_DISMISS
+ player.mInstanceId,
+ false,
+ player.surfaceForSmartspaceLogging,
+ /* rank */-1)
+ }
+ }
+ mediaManager.onSwipeToDismiss()
+ }
}
@VisibleForTesting
internal object MediaPlayerData {
private val EMPTY = MediaData(-1, false, 0, null, null, null, null, null,
- emptyList(), emptyList(), "INVALID", null, null, null, true, null)
+ emptyList(), emptyList(), "INVALID", null, null, null, false, null)
- private data class MediaSortKey(
+ data class MediaSortKey(
// Is Smartspace media recommendation. When the Smartspace media is present, it should
// always be the first card in carousel.
val isSsMediaRec: Boolean,
@@ -620,7 +668,7 @@
mediaPlayers.put(sortKey, player)
}
- fun addMediaPlayer(key: String, player: MediaControlPanel) {
+ fun addMediaRecommendation(key: String, player: MediaControlPanel) {
removeMediaPlayer(key)
val sortKey = MediaSortKey(isSsMediaRec = true, EMPTY, System.currentTimeMillis())
mediaData.put(key, sortKey)
@@ -643,6 +691,18 @@
fun players() = mediaPlayers.values
+ /** Returns the index of the first non-timeout media. */
+ fun getActiveMediaIndex(): Int {
+ mediaPlayers.entries.forEachIndexed { index, e ->
+ if (e.key.data.active) {
+ return index
+ }
+ }
+ return -1
+ }
+
+ fun playerKeys() = mediaPlayers.keys
+
@VisibleForTesting
fun clear() {
mediaData.clear()
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselScrollHandler.kt b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselScrollHandler.kt
index f0b78dd..e5a6271 100644
--- a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselScrollHandler.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselScrollHandler.kt
@@ -28,16 +28,17 @@
import androidx.dynamicanimation.animation.SpringForce
import com.android.settingslib.Utils
import com.android.systemui.Gefingerpoken
-import com.android.systemui.qs.PageIndicator
import com.android.systemui.R
import com.android.systemui.classifier.Classifier.NOTIFICATION_DISMISS
import com.android.systemui.classifier.FalsingCollector
import com.android.systemui.plugins.FalsingManager
-import com.android.wm.shell.animation.PhysicsAnimator
+import com.android.systemui.qs.PageIndicator
import com.android.systemui.util.concurrency.DelayableExecutor
+import com.android.wm.shell.animation.PhysicsAnimator
private const val FLING_SLOP = 1000000
private const val DISMISS_DELAY = 100L
+private const val SCROLL_DELAY = 100L
private const val RUBBERBAND_FACTOR = 0.2f
private const val SETTINGS_BUTTON_TRANSLATION_FRACTION = 0.3f
@@ -60,7 +61,8 @@
private var translationChangedListener: () -> Unit,
private val closeGuts: () -> Unit,
private val falsingCollector: FalsingCollector,
- private val falsingManager: FalsingManager
+ private val falsingManager: FalsingManager,
+ private val logSmartspaceImpression: () -> Unit
) {
/**
* Is the view in RTL
@@ -100,10 +102,11 @@
private lateinit var settingsButton: View
/**
- * What's the currently active player index?
+ * What's the currently visible player index?
*/
- var activeMediaIndex: Int = 0
+ var visibleMediaIndex: Int = 0
private set
+
/**
* How much are we scrolled into the current media?
*/
@@ -129,7 +132,7 @@
field = value
// The player width has changed, let's update the scroll position to make sure
// it's still at the same place
- var newRelativeScroll = activeMediaIndex * playerWidthPlusPadding
+ var newRelativeScroll = visibleMediaIndex * playerWidthPlusPadding
if (scrollIntoCurrentMedia > playerWidthPlusPadding) {
newRelativeScroll += playerWidthPlusPadding -
(scrollIntoCurrentMedia - playerWidthPlusPadding)
@@ -198,6 +201,13 @@
}
}
+ var visibleToUser: Boolean = false
+ set(value) {
+ if (field != value) {
+ field = value
+ }
+ }
+
init {
gestureDetector = GestureDetectorCompat(scrollView.context, gestureListener)
scrollView.touchListener = touchListener
@@ -457,12 +467,16 @@
val wasScrolledIn = scrollIntoCurrentMedia != 0
scrollIntoCurrentMedia = scrollInAmount
val nowScrolledIn = scrollIntoCurrentMedia != 0
- if (newIndex != activeMediaIndex || wasScrolledIn != nowScrolledIn) {
- activeMediaIndex = newIndex
+ if (newIndex != visibleMediaIndex || wasScrolledIn != nowScrolledIn) {
+ val oldIndex = visibleMediaIndex
+ visibleMediaIndex = newIndex
+ if (oldIndex != visibleMediaIndex && visibleToUser) {
+ logSmartspaceImpression()
+ }
closeGuts()
updatePlayerVisibilities()
}
- val relativeLocation = activeMediaIndex.toFloat() + if (playerWidthPlusPadding > 0)
+ val relativeLocation = visibleMediaIndex.toFloat() + if (playerWidthPlusPadding > 0)
scrollInAmount.toFloat() / playerWidthPlusPadding else 0f
// Fix the location, because PageIndicator does not handle RTL internally
val location = if (isRtl) {
@@ -500,7 +514,7 @@
val scrolledIn = scrollIntoCurrentMedia != 0
for (i in 0 until mediaContent.childCount) {
val view = mediaContent.getChildAt(i)
- val visible = (i == activeMediaIndex) || ((i == (activeMediaIndex + 1)) && scrolledIn)
+ val visible = (i == visibleMediaIndex) || ((i == (visibleMediaIndex + 1)) && scrolledIn)
view.visibility = if (visible) View.VISIBLE else View.INVISIBLE
}
}
@@ -511,12 +525,12 @@
*/
fun onPrePlayerRemoved(removed: MediaControlPanel) {
val removedIndex = mediaContent.indexOfChild(removed.playerViewHolder?.player)
- // If the removed index is less than the activeMediaIndex, then we need to decrement it.
+ // If the removed index is less than the visibleMediaIndex, then we need to decrement it.
// RTL has no effect on this, because indices are always relative (start-to-end).
// Update the index 'manually' since we won't always get a call to onMediaScrollingChanged
- val beforeActive = removedIndex <= activeMediaIndex
+ val beforeActive = removedIndex <= visibleMediaIndex
if (beforeActive) {
- activeMediaIndex = Math.max(0, activeMediaIndex - 1)
+ visibleMediaIndex = Math.max(0, visibleMediaIndex - 1)
}
// If the removed media item is "left of" the active one (in an absolute sense), we need to
// scroll the view to keep that player in view. This is because scroll position is always
@@ -545,6 +559,17 @@
scrollView.relativeScrollX = 0
}
+ fun scrollToActivePlayer(activePlayerIndex: Int) {
+ var destIndex = activePlayerIndex
+ destIndex = Math.min(mediaContent.getChildCount() - 1, destIndex)
+ val view = mediaContent.getChildAt(destIndex)
+ // We need to post this to wait for the active player becomes visible.
+ mainExecutor.executeDelayed({
+ visibleMediaIndex = activePlayerIndex
+ scrollView.smoothScrollTo(view.left, scrollView.scrollY)
+ }, SCROLL_DELAY)
+ }
+
companion object {
private val CONTENT_TRANSLATION = object : FloatPropertyCompat<MediaCarouselScrollHandler>(
"contentTranslation") {
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java
index 1e9cc8c..fe3463f 100644
--- a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java
@@ -105,7 +105,8 @@
private int mDevicePadding;
private int mAlbumArtSize;
// Instance id for logging purpose.
- private int mInstanceId;
+ protected int mInstanceId = -1;
+ private MediaCarouselController mMediaCarouselController;
private final MediaOutputDialogFactory mMediaOutputDialogFactory;
/**
@@ -119,7 +120,7 @@
ActivityStarter activityStarter, MediaViewController mediaViewController,
SeekBarViewModel seekBarViewModel, Lazy<MediaDataManager> lazyMediaDataManager,
KeyguardDismissUtil keyguardDismissUtil, MediaOutputDialogFactory
- mediaOutputDialogFactory) {
+ mediaOutputDialogFactory, MediaCarouselController mediaCarouselController) {
mContext = context;
mBackgroundExecutor = backgroundExecutor;
mActivityStarter = activityStarter;
@@ -128,6 +129,7 @@
mMediaDataManagerLazy = lazyMediaDataManager;
mKeyguardDismissUtil = keyguardDismissUtil;
mMediaOutputDialogFactory = mediaOutputDialogFactory;
+ mMediaCarouselController = mediaCarouselController;
loadDimens();
}
@@ -251,6 +253,8 @@
}
mKey = key;
MediaSession.Token token = data.getToken();
+ mInstanceId = data.getPackageName().hashCode();
+
mBackgroundColor = data.getBackgroundColor();
if (mToken == null || !mToken.equals(token)) {
mToken = token;
@@ -270,6 +274,9 @@
if (clickIntent != null) {
mPlayerViewHolder.getPlayer().setOnClickListener(v -> {
if (mMediaViewController.isGutsVisible()) return;
+
+ logSmartspaceCardReported(760, // SMARTSPACE_CARD_CLICK
+ false);
mActivityStarter.postStartActivityDismissingKeyguard(clickIntent,
buildLaunchAnimatorController(mPlayerViewHolder.getPlayer()));
});
@@ -376,6 +383,8 @@
} else {
button.setEnabled(true);
button.setOnClickListener(v -> {
+ logSmartspaceCardReported(760, // SMARTSPACE_CARD_CLICK
+ false);
action.run();
});
}
@@ -408,6 +417,9 @@
mPlayerViewHolder.getDismissLabel().setAlpha(isDismissible ? 1 : DISABLED_ALPHA);
mPlayerViewHolder.getDismiss().setEnabled(isDismissible);
mPlayerViewHolder.getDismiss().setOnClickListener(v -> {
+ logSmartspaceCardReported(761, // SMARTSPACE_CARD_DISMISS
+ false);
+
if (mKey != null) {
closeGuts();
mKeyguardDismissUtil.executeWhenUnlocked(() -> {
@@ -462,7 +474,8 @@
/** Bind this recommendation view based on the data given. */
public void bindRecommendation(
@NonNull SmartspaceTarget target,
- @NonNull int backgroundColor) {
+ @NonNull int backgroundColor,
+ @Nullable View.OnClickListener callback) {
if (mRecommendationViewHolder == null) {
return;
}
@@ -526,7 +539,7 @@
setSmartspaceRecItemOnClickListener(
mediaCoverImageView,
recommendation,
- null);
+ callback);
if (uiComponentIndex < MEDIA_RECOMMENDATION_ITEMS_PER_ROW) {
setVisibleAndAlpha(collapsedSet,
@@ -549,6 +562,8 @@
// Set up long press to show guts setting panel.
mRecommendationViewHolder.getDismiss().setOnClickListener(v -> {
+ logSmartspaceCardReported(761, // SMARTSPACE_CARD_DISMISS
+ true);
closeGuts();
mKeyguardDismissUtil.executeWhenUnlocked(() -> {
mMediaDataManagerLazy.get().dismissSmartspaceRecommendation(
@@ -651,15 +666,9 @@
}
view.setOnClickListener(v -> {
- // When media recommendation card is shown, there could be only one card.
- SysUiStatsLog.write(SysUiStatsLog.SMARTSPACE_CARD_REPORTED,
- 760, // SMARTSPACE_CARD_CLICK
- mInstanceId,
- SysUiStatsLog
- .SMART_SPACE_CARD_REPORTED__CARD_TYPE__HEADPHONE_MEDIA_RECOMMENDATIONS,
- getSurfaceForSmartspaceLogging(),
- /* rank */ 0,
- /* cardinality */ 1);
+ // When media recommendation card is shown, it will always be the top card.
+ logSmartspaceCardReported(760, // SMARTSPACE_CARD_CLICK
+ true);
if (shouldSmartspaceRecItemOpenInForeground(action)) {
// Request to unlock the device if the activity needs to be opened in foreground.
@@ -717,7 +726,10 @@
return SysUiStatsLog.SMART_SPACE_CARD_REPORTED__DISPLAY_SURFACE__DEFAULT_SURFACE;
}
- protected int getInstanceId() {
- return mInstanceId;
+ private void logSmartspaceCardReported(int eventId, boolean isRecommendationCard) {
+ mMediaCarouselController.logSmartspaceCardReported(eventId,
+ mInstanceId,
+ isRecommendationCard,
+ getSurfaceForSmartspaceLogging());
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt b/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt
index a80a410..3c28f6e 100644
--- a/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/MediaHierarchyManager.kt
@@ -171,16 +171,15 @@
if (field != value) {
field = value
}
- // Pull down shade from lock screen (exclude the case when shade is brought out by
- // tapping twice on lock screen)
- if (value && isLockScreenShadeVisibleToUser()) {
+ // qs is expanded on LS shade and HS shade
+ if (value && (isLockScreenShadeVisibleToUser() || isHomeScreenShadeVisibleToUser())) {
mediaCarouselController.logSmartspaceImpression()
}
// Release shade and back to lock screen
if (isLockScreenVisibleToUser()) {
mediaCarouselController.logSmartspaceImpression()
}
- mediaCarouselController.visibleToUser = isVisibleToUser()
+ mediaCarouselController.mediaCarouselScrollHandler.visibleToUser = isVisibleToUser()
}
/**
@@ -257,7 +256,7 @@
if (newState == StatusBarState.SHADE_LOCKED && isLockScreenShadeVisibleToUser()) {
mediaCarouselController.logSmartspaceImpression()
}
- mediaCarouselController.visibleToUser = isVisibleToUser()
+ mediaCarouselController.mediaCarouselScrollHandler.visibleToUser = isVisibleToUser()
}
override fun onDozeAmountChanged(linear: Float, eased: Float) {
@@ -275,7 +274,7 @@
updateDesiredLocation()
qsExpanded = false
}
- mediaCarouselController.visibleToUser = isVisibleToUser()
+ mediaCarouselController.mediaCarouselScrollHandler.visibleToUser = isVisibleToUser()
}
override fun onExpandedChanged(isExpanded: Boolean) {
@@ -287,7 +286,7 @@
if (isLockScreenVisibleToUser()) {
mediaCarouselController.logSmartspaceImpression()
}
- mediaCarouselController.visibleToUser = isVisibleToUser()
+ mediaCarouselController.mediaCarouselScrollHandler.visibleToUser = isVisibleToUser()
}
})
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
index 56375ad..4e41d75 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
@@ -101,6 +101,7 @@
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener;
+import android.view.inputmethod.InputMethodManager;
import androidx.annotation.VisibleForTesting;
@@ -1175,6 +1176,9 @@
accessibilityButton.setOnLongClickListener(this::onAccessibilityLongClick);
updateAccessibilityServicesState(mAccessibilityManager);
+ ButtonDispatcher imeSwitcherButton = mNavigationBarView.getImeSwitchButton();
+ imeSwitcherButton.setOnClickListener(this::onImeSwitcherClick);
+
updateScreenPinningGestures();
}
@@ -1274,6 +1278,11 @@
mCommandQueue.toggleRecentApps();
}
+ private void onImeSwitcherClick(View v) {
+ mContext.getSystemService(InputMethodManager.class).showInputMethodPickerFromSystem(
+ true /* showAuxiliarySubtypes */, mDisplayId);
+ };
+
private boolean onLongPressBackHome(View v) {
return onLongPressNavigationButtons(v, R.id.back, R.id.home);
}
@@ -1282,7 +1291,6 @@
return onLongPressNavigationButtons(v, R.id.back, R.id.recent_apps);
}
-
/**
* This handles long-press of both back and recents/home. Back is the common button with
* combination of recents if it is visible or home if recents is invisible.
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java
index 3544f60..9c3cb2e 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java
@@ -113,6 +113,7 @@
private final Handler mHandler;
private final DisplayManager mDisplayManager;
private final NavigationBarOverlayController mNavBarOverlayController;
+ private final TaskbarDelegate mTaskbarDelegate;
private int mNavMode;
private boolean mIsTablet;
@@ -182,6 +183,7 @@
mNavBarOverlayController = navBarOverlayController;
mNavMode = mNavigationModeController.addListener(this);
mNavigationModeController.addListener(this);
+ mTaskbarDelegate = new TaskbarDelegate(mOverviewProxyService);
}
@Override
@@ -190,17 +192,7 @@
mIsTablet = isTablet(newConfig);
boolean largeScreenChanged = mIsTablet != isOldConfigTablet;
// If we folded/unfolded while in 3 button, show navbar in folded state, hide in unfolded
- if (isThreeButtonTaskbarFlagEnabled() &&
- largeScreenChanged && mNavMode == NAV_BAR_MODE_3BUTTON) {
- if (!mIsTablet) {
- // Folded state, show 3 button nav bar
- createNavigationBar(mContext.getDisplay(), null, null);
- } else {
- // Unfolded state, hide 3 button nav bars
- for (int i = 0; i < mNavigationBars.size(); i++) {
- removeNavigationBar(mNavigationBars.keyAt(i));
- }
- }
+ if (largeScreenChanged && updateNavbarForTaskbar()) {
return;
}
@@ -217,18 +209,15 @@
@Override
public void onNavigationModeChanged(int mode) {
+ if (mNavMode == mode) {
+ return;
+ }
final int oldMode = mNavMode;
mNavMode = mode;
mHandler.post(() -> {
// create/destroy nav bar based on nav mode only in unfolded state
- if (isThreeButtonTaskbarFlagEnabled() && oldMode != mNavMode && mIsTablet) {
- if (oldMode == NAV_BAR_MODE_3BUTTON &&
- mNavigationBars.get(mContext.getDisplayId()) == null) {
- // We remove navbar for 3 button unfolded, add it back in
- createNavigationBar(mContext.getDisplay(), null, null);
- } else if (mNavMode == NAV_BAR_MODE_3BUTTON) {
- removeNavigationBar(mContext.getDisplayId());
- }
+ if (oldMode != mNavMode) {
+ updateNavbarForTaskbar();
}
for (int i = 0; i < mNavigationBars.size(); i++) {
NavigationBar navBar = mNavigationBars.valueAt(i);
@@ -243,6 +232,27 @@
});
}
+ /**
+ * @return {@code true} if navbar was added/removed, false otherwise
+ */
+ public boolean updateNavbarForTaskbar() {
+ if (!isThreeButtonTaskbarFlagEnabled()) {
+ return false;
+ }
+
+ if (mIsTablet && mNavMode == NAV_BAR_MODE_3BUTTON) {
+ // Remove navigation bar when taskbar is showing, currently only for 3 button mode
+ removeNavigationBar(mContext.getDisplayId());
+ mCommandQueue.addCallback(mTaskbarDelegate);
+ } else if (mNavigationBars.get(mContext.getDisplayId()) == null) {
+ // Add navigation bar after taskbar goes away
+ createNavigationBar(mContext.getDisplay(), null, null);
+ mCommandQueue.removeCallback(mTaskbarDelegate);
+ }
+
+ return true;
+ }
+
@Override
public void onDisplayRemoved(int displayId) {
removeNavigationBar(displayId);
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java
index 7342f91..4d9175b 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java
@@ -158,7 +158,6 @@
}
public void onLikelyDefaultLayoutChange() {
-
// Reevaluate new layout
final String newValue = getDefaultLayout();
if (!Objects.equals(mCurrentLayout, newValue)) {
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java
index 0ed4d86..f82d265d 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarView.java
@@ -166,6 +166,7 @@
private NavigationBarInflaterView mNavigationInflaterView;
private RecentsOnboarding mRecentsOnboarding;
private NotificationPanelViewController mPanelView;
+ private RotationContextButton mRotationContextButton;
private FloatingRotationButton mFloatingRotationButton;
private RotationButtonController mRotationButtonController;
private NavigationBarOverlayController mNavBarOverlayController;
@@ -233,14 +234,6 @@
}
}
- private final OnClickListener mImeSwitcherClickListener = new OnClickListener() {
- @Override
- public void onClick(View view) {
- mContext.getSystemService(InputMethodManager.class).showInputMethodPickerFromSystem(
- true /* showAuxiliarySubtypes */, getContext().getDisplayId());
- }
- };
-
private final AccessibilityDelegate mQuickStepAccessibilityDelegate =
new AccessibilityDelegate() {
private AccessibilityAction mToggleOverviewAction;
@@ -311,33 +304,26 @@
mIsVertical = false;
mLongClickableAccessibilityButton = false;
mNavBarMode = Dependency.get(NavigationModeController.class).addListener(this);
- boolean isGesturalMode = isGesturalMode(mNavBarMode);
mSysUiFlagContainer = Dependency.get(SysUiState.class);
// Set up the context group of buttons
mContextualButtonGroup = new ContextualButtonGroup(R.id.menu_container);
final ContextualButton imeSwitcherButton = new ContextualButton(R.id.ime_switcher,
mLightContext, R.drawable.ic_ime_switcher_default);
- final RotationContextButton rotateSuggestionButton = new RotationContextButton(
- R.id.rotate_suggestion, mLightContext,
- R.drawable.ic_sysbar_rotate_button_ccw_start_0);
final ContextualButton accessibilityButton =
new ContextualButton(R.id.accessibility_button, mLightContext,
R.drawable.ic_sysbar_accessibility_button);
mContextualButtonGroup.addButton(imeSwitcherButton);
- if (!isGesturalMode) {
- mContextualButtonGroup.addButton(rotateSuggestionButton);
- }
mContextualButtonGroup.addButton(accessibilityButton);
+ mRotationContextButton = new RotationContextButton(R.id.rotate_suggestion,
+ mLightContext, R.drawable.ic_sysbar_rotate_button_ccw_start_0);
+ mFloatingRotationButton = new FloatingRotationButton(context);
+ mRotationButtonController = new RotationButtonController(mLightContext,
+ mLightIconColor, mDarkIconColor);
+ updateRotationButton();
mOverviewProxyService = Dependency.get(OverviewProxyService.class);
- mFloatingRotationButton = new FloatingRotationButton(context);
mRecentsOnboarding = new RecentsOnboarding(context, mOverviewProxyService);
- mRotationButtonController = new RotationButtonController(mLightContext,
- mLightIconColor, mDarkIconColor,
- isGesturalMode ? mFloatingRotationButton : rotateSuggestionButton,
- mRotationButtonListener);
-
mNavBarOverlayController = Dependency.get(NavigationBarOverlayController.class);
if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) {
mNavBarOverlayController.init(
@@ -357,7 +343,6 @@
mButtonDispatchers.put(R.id.recent_apps, new ButtonDispatcher(R.id.recent_apps));
mButtonDispatchers.put(R.id.ime_switcher, imeSwitcherButton);
mButtonDispatchers.put(R.id.accessibility_button, accessibilityButton);
- mButtonDispatchers.put(R.id.rotate_suggestion, rotateSuggestionButton);
mButtonDispatchers.put(R.id.menu_container, mContextualButtonGroup);
mDeadZone = new DeadZone(this);
@@ -555,6 +540,23 @@
}
}
+ /**
+ * Updates the rotation button based on the current navigation mode.
+ */
+ private void updateRotationButton() {
+ if (isGesturalMode(mNavBarMode)) {
+ mContextualButtonGroup.removeButton(R.id.rotate_suggestion);
+ mButtonDispatchers.remove(R.id.rotate_suggestion);
+ mRotationButtonController.setRotationButton(mFloatingRotationButton,
+ mRotationButtonListener);
+ } else if (mContextualButtonGroup.getContextButton(R.id.rotate_suggestion) == null) {
+ mContextualButtonGroup.addButton(mRotationContextButton);
+ mButtonDispatchers.put(R.id.rotate_suggestion, mRotationContextButton);
+ mRotationButtonController.setRotationButton(mRotationContextButton,
+ mRotationButtonListener);
+ }
+ }
+
public KeyButtonDrawable getBackDrawable() {
KeyButtonDrawable drawable = getDrawable(getBackDrawableRes());
orientBackButton(drawable);
@@ -908,6 +910,7 @@
mBarTransitions.onNavigationModeChanged(mNavBarMode);
mEdgeBackGestureHandler.onNavigationModeChanged(mNavBarMode);
mRecentsOnboarding.onNavigationModeChanged(mNavBarMode);
+ updateRotationButton();
if (isGesturalMode(mNavBarMode)) {
mRegionSamplingHelper.start(mSamplingBounds);
@@ -932,7 +935,6 @@
mNavigationInflaterView = findViewById(R.id.navigation_inflater);
mNavigationInflaterView.setButtonDispatchers(mButtonDispatchers);
- getImeSwitchButton().setOnClickListener(mImeSwitcherClickListener);
updateOrientationViews();
reloadNavIcons();
}
@@ -1027,6 +1029,9 @@
private void updateButtonLocation(ButtonDispatcher button, boolean inScreenSpace,
boolean useNearestRegion) {
+ if (button == null) {
+ return;
+ }
View view = button.getCurrentView();
if (view == null || !button.isVisible()) {
return;
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/RotationButtonController.java b/packages/SystemUI/src/com/android/systemui/navigationbar/RotationButtonController.java
index 4bcb019..ddf089b 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/RotationButtonController.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/RotationButtonController.java
@@ -66,10 +66,10 @@
private static final int NUM_ACCEPTED_ROTATION_SUGGESTIONS_FOR_INTRODUCTION = 3;
private final Context mContext;
- private final RotationButton mRotationButton;
private final Handler mMainThreadHandler = new Handler(Looper.getMainLooper());
private final UiEventLogger mUiEventLogger = new UiEventLoggerImpl();
private final ViewRippler mViewRippler = new ViewRippler();
+ private RotationButton mRotationButton;
private int mLastRotationSuggestion;
private boolean mPendingRotationSuggestion;
@@ -125,20 +125,21 @@
}
RotationButtonController(Context context, @ColorInt int lightIconColor,
- @ColorInt int darkIconColor, RotationButton rotationButton,
- Consumer<Boolean> visibilityChangedCallback) {
+ @ColorInt int darkIconColor) {
mContext = context;
mLightIconColor = lightIconColor;
mDarkIconColor = darkIconColor;
- mRotationButton = rotationButton;
- mRotationButton.setRotationButtonController(this);
mIsNavigationBarShowing = true;
mRotationLockController = Dependency.get(RotationLockController.class);
mAccessibilityManagerWrapper = Dependency.get(AccessibilityManagerWrapper.class);
-
- // Register the task stack listener
mTaskStackListener = new TaskStackListenerImpl();
+ }
+
+ void setRotationButton(RotationButton rotationButton,
+ Consumer<Boolean> visibilityChangedCallback) {
+ mRotationButton = rotationButton;
+ mRotationButton.setRotationButtonController(this);
mRotationButton.setOnClickListener(this::onRotateSuggestionClick);
mRotationButton.setOnHoverListener(this::onRotateSuggestionHover);
mRotationButton.setVisibilityChangedCallback(visibilityChangedCallback);
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java
new file mode 100644
index 0000000..03147d8
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.navigationbar;
+
+import android.os.IBinder;
+
+import com.android.systemui.recents.OverviewProxyService;
+import com.android.systemui.statusbar.CommandQueue;
+
+public class TaskbarDelegate implements CommandQueue.Callbacks {
+
+ private final OverviewProxyService mOverviewProxyService;
+
+ public TaskbarDelegate(OverviewProxyService overviewProxyService) {
+ mOverviewProxyService = overviewProxyService;
+ }
+
+ @Override
+ public void setImeWindowStatus(int displayId, IBinder token, int vis, int backDisposition,
+ boolean showImeSwitcher) {
+ mOverviewProxyService.notifyImeWindowStatus(displayId, token, vis, backDisposition,
+ showImeSwitcher);
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/ContextualButtonGroup.java b/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/ContextualButtonGroup.java
index 50b638b..2ace303 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/ContextualButtonGroup.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/buttons/ContextualButtonGroup.java
@@ -41,10 +41,23 @@
* @param button the button added to the group
*/
public void addButton(@NonNull ContextualButton button) {
+ // By default buttons in the context group are not visible until
+ // {@link #setButtonVisibility()) is called to show one of the buttons
+ button.setVisibility(View.INVISIBLE);
button.attachToGroup(this);
mButtonData.add(new ButtonData(button));
}
+ /**
+ * Removes a contextual button from the group.
+ */
+ public void removeButton(@IdRes int buttonResId) {
+ int index = getContextButtonIndex(buttonResId);
+ if (index != INVALID_INDEX) {
+ mButtonData.remove(index);
+ }
+ }
+
public ContextualButton getContextButton(@IdRes int buttonResId) {
int index = getContextButtonIndex(buttonResId);
if (index != INVALID_INDEX) {
diff --git a/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java b/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java
index a6c6103..29685a4 100644
--- a/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java
+++ b/packages/SystemUI/src/com/android/systemui/people/PeopleSpaceUtils.java
@@ -203,7 +203,7 @@
if (DEBUG) {
Log.i(TAG, "Removing any notification stored for tile Id: " + tile.getId());
}
- return tile
+ PeopleSpaceTile.Builder updatedTile = tile
.toBuilder()
// Reset notification content.
.setNotificationKey(null)
@@ -212,8 +212,15 @@
.setNotificationDataUri(null)
.setMessagesCount(0)
// Reset missed calls category.
- .setNotificationCategory(null)
- .build();
+ .setNotificationCategory(null);
+
+ // Only set last interaction to now if we are clearing a notification.
+ if (!TextUtils.isEmpty(tile.getNotificationKey())) {
+ long currentTimeMillis = System.currentTimeMillis();
+ if (DEBUG) Log.d(TAG, "Set last interaction on clear: " + currentTimeMillis);
+ updatedTile.setLastInteractionTimestamp(currentTimeMillis);
+ }
+ return updatedTile.build();
}
/**
@@ -227,10 +234,11 @@
if (DEBUG) Log.d(TAG, "Tile key: " + key.toString() + ". Notification is null");
return removeNotificationFields(tile);
}
- Notification notification = notificationEntry.getSbn().getNotification();
+ StatusBarNotification sbn = notificationEntry.getSbn();
+ Notification notification = sbn.getNotification();
PeopleSpaceTile.Builder updatedTile = tile.toBuilder();
- String uriFromNotification = getContactUri(notificationEntry.getSbn());
+ String uriFromNotification = getContactUri(sbn);
if (appWidgetId.isPresent() && tile.getContactUri() == null && !TextUtils.isEmpty(
uriFromNotification)) {
if (DEBUG) Log.d(TAG, "Add uri from notification to tile: " + uriFromNotification);
@@ -241,7 +249,6 @@
// Update cached tile in-memory.
updatedTile.setContactUri(contactUri);
}
-
boolean isMissedCall = isMissedCall(notification);
List<Notification.MessagingStyle.Message> messages =
getMessagingStyleMessages(notification);
@@ -261,12 +268,13 @@
Uri dataUri = message != null ? message.getDataUri() : null;
if (DEBUG) {
Log.d(TAG, "Tile key: " + key.toString() + ". Notification message has text: "
- + hasMessageText);
+ + hasMessageText + " Has last interaction: " + sbn.getPostTime());
}
CharSequence sender = getSenderIfGroupConversation(notification, message);
return updatedTile
- .setNotificationKey(notificationEntry.getSbn().getKey())
+ .setLastInteractionTimestamp(sbn.getPostTime())
+ .setNotificationKey(sbn.getKey())
.setNotificationCategory(notification.category)
.setNotificationContent(content)
.setNotificationSender(sender)
diff --git a/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java b/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java
index 6980d72..06f8a60 100644
--- a/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/people/PeopleTileViewHelper.java
@@ -835,7 +835,7 @@
return null;
} else if (durationSinceLastInteraction.toDays() < DAYS_IN_A_WEEK) {
return context.getString(R.string.timestamp, formatter.formatMeasures(
- new Measure(durationSinceLastInteraction.toHours(),
+ new Measure(durationSinceLastInteraction.toDays(),
MeasureUnit.DAY)));
} else if (durationSinceLastInteraction.toDays() <= DAYS_IN_A_WEEK * 2) {
return context.getString(durationSinceLastInteraction.toDays() == DAYS_IN_A_WEEK
diff --git a/packages/SystemUI/src/com/android/systemui/people/widget/AppWidgetOptionsHelper.java b/packages/SystemUI/src/com/android/systemui/people/widget/AppWidgetOptionsHelper.java
index 73c43eb..b49533e 100644
--- a/packages/SystemUI/src/com/android/systemui/people/widget/AppWidgetOptionsHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/people/widget/AppWidgetOptionsHelper.java
@@ -16,7 +16,6 @@
package com.android.systemui.people.widget;
-import static com.android.systemui.people.PeopleSpaceUtils.DEBUG;
import static com.android.systemui.people.PeopleSpaceUtils.EMPTY_KEY;
import static com.android.systemui.people.PeopleSpaceUtils.EMPTY_STRING;
import static com.android.systemui.people.PeopleSpaceUtils.INVALID_USER_ID;
@@ -24,38 +23,13 @@
import static com.android.systemui.people.PeopleSpaceUtils.SHORTCUT_ID;
import static com.android.systemui.people.PeopleSpaceUtils.USER_ID;
-import android.app.people.PeopleSpaceTile;
import android.appwidget.AppWidgetManager;
import android.os.Bundle;
-import android.util.Log;
/** Helper class encapsulating AppWidgetOptions for People Tile. */
public class AppWidgetOptionsHelper {
private static final String TAG = "AppWidgetOptionsHelper";
- /** Key to store {@link PeopleSpaceTile} in AppWidgetOptions Bundle. */
- public static final String OPTIONS_PEOPLE_TILE = "options_people_tile";
-
- /** Sets {@link PeopleSpaceTile} in AppWidgetOptions. */
- public static Bundle setPeopleTile(AppWidgetManager appWidgetManager, int appWidgetId,
- PeopleSpaceTile tile) {
- Bundle options = appWidgetManager.getAppWidgetOptions(appWidgetId);
- if (tile == null) {
- if (DEBUG) Log.w(TAG, "Requested to store null tile");
- return options;
- }
- options.putParcelable(OPTIONS_PEOPLE_TILE, tile);
- appWidgetManager.updateAppWidgetOptions(appWidgetId, options);
- return options;
- }
-
- /** Gets {@link PeopleSpaceTile} from AppWidgetOptions. */
- public static PeopleSpaceTile getPeopleTile(AppWidgetManager appWidgetManager,
- int appWidgetId) {
- Bundle options = appWidgetManager.getAppWidgetOptions(appWidgetId);
- return options != null ? options.getParcelable(OPTIONS_PEOPLE_TILE) : null;
- }
-
/** Sets {@link PeopleTileKey} in AppWidgetOptions. */
public static void setPeopleTileKey(AppWidgetManager appWidgetManager, int appWidgetId,
PeopleTileKey key) {
@@ -66,16 +40,6 @@
appWidgetManager.updateAppWidgetOptions(appWidgetId, options);
}
- /** Gets {@link PeopleTileKey} from AppWidgetOptions. */
- public static PeopleTileKey getPeopleTileKey(AppWidgetManager appWidgetManager,
- int appWidgetId) {
- Bundle options = appWidgetManager.getAppWidgetOptions(appWidgetId);
- if (options == null) {
- return EMPTY_KEY;
- }
- return getPeopleTileKeyFromBundle(options);
- }
-
/** Gets {@link PeopleTileKey} from Bundle {@code options}. */
public static PeopleTileKey getPeopleTileKeyFromBundle(Bundle options) {
String pkg = options.getString(PACKAGE_NAME, EMPTY_STRING);
diff --git a/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java b/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
index ea1724f..9e0dd72 100644
--- a/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
+++ b/packages/SystemUI/src/com/android/systemui/people/widget/PeopleSpaceWidgetManager.java
@@ -136,6 +136,9 @@
private Map<String, Set<String>> mNotificationKeyToWidgetIdsMatchedByUri = new HashMap<>();
private boolean mRegisteredReceivers;
+ @GuardedBy("mLock")
+ public static Map<Integer, PeopleSpaceTile> mTiles = new HashMap<>();
+
@Inject
public PeopleSpaceWidgetManager(Context context, LauncherApps launcherApps,
NotificationEntryManager notificationEntryManager,
@@ -252,8 +255,7 @@
if (tile == null) {
Log.e(TAG, "Matching conversation not found for shortcut ID");
}
- Bundle options = mAppWidgetManager.getAppWidgetOptions(appWidgetId);
- updateAppWidgetViews(appWidgetId, tile, options);
+ updateAppWidgetOptionsAndView(appWidgetId, tile);
widgetIdToTile.put(appWidgetId, tile);
if (tile != null) {
registerConversationListenerIfNeeded(appWidgetId,
@@ -289,7 +291,14 @@
/** Updates tile in app widget options and the current view. */
public void updateAppWidgetOptionsAndView(int appWidgetId, PeopleSpaceTile tile) {
- Bundle options = AppWidgetOptionsHelper.setPeopleTile(mAppWidgetManager, appWidgetId, tile);
+ if (tile == null) {
+ if (DEBUG) Log.w(TAG, "Requested to store null tile");
+ return;
+ }
+ synchronized (mTiles) {
+ mTiles.put(appWidgetId, tile);
+ }
+ Bundle options = mAppWidgetManager.getAppWidgetOptions(appWidgetId);
updateAppWidgetViews(appWidgetId, tile, options);
}
@@ -299,8 +308,11 @@
*/
@Nullable
public PeopleSpaceTile getTileForExistingWidget(int appWidgetId) {
- // First, check if tile is cached in AppWidgetOptions.
- PeopleSpaceTile tile = AppWidgetOptionsHelper.getPeopleTile(mAppWidgetManager, appWidgetId);
+ // First, check if tile is cached in memory.
+ PeopleSpaceTile tile;
+ synchronized (mTiles) {
+ tile = mTiles.get(appWidgetId);
+ }
if (tile != null) {
if (DEBUG) Log.d(TAG, "People Tile is cached for widget: " + appWidgetId);
return tile;
@@ -781,7 +793,6 @@
} catch (Exception e) {
Log.w(TAG, "Exception caching shortcut:" + e);
}
-
updateAppWidgetOptionsAndView(appWidgetId, tile);
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
index be96ba8..1010b6a 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java
@@ -398,14 +398,8 @@
// Fade in the security footer and the divider as we reach the final position
builder = new Builder().setStartDelay(EXPANDED_TILE_DELAY);
builder.addFloat(mSecurityFooter.getView(), "alpha", 0, 1);
- if (mQsPanelController.getDivider() != null) {
- builder.addFloat(mQsPanelController.getDivider(), "alpha", 0, 1);
- }
mAllPagesDelayedAnimator = builder.build();
mAllViews.add(mSecurityFooter.getView());
- if (mQsPanelController.getDivider() != null) {
- mAllViews.add(mQsPanelController.getDivider());
- }
translationYBuilder.setInterpolator(mQSExpansionPathInterpolator.getYInterpolator());
mTranslationYAnimator = translationYBuilder.build();
if (mQQSTileHeightAnimator != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java
index 3b43676..dd1a4af 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java
@@ -297,9 +297,7 @@
// start margin of next page).
qsPanelController.setPageMargin(2 * mSideMargins);
} else if (view == mHeader) {
- // The header contains the QQS panel which needs to have special padding, to
- // visually align them.
- quickStatusBarHeaderController.setContentMargins(mContentPadding, mContentPadding);
+ // No content padding for the header.
} else {
view.setPaddingRelative(
mContentPadding,
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java
index 40967ed..57438d1 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooterView.java
@@ -45,7 +45,6 @@
import com.android.settingslib.development.DevelopmentSettingsEnabler;
import com.android.settingslib.drawable.UserIconDrawable;
import com.android.systemui.R;
-import com.android.systemui.R.dimen;
import com.android.systemui.qs.TouchAnimator.Builder;
import com.android.systemui.statusbar.phone.MultiUserSwitch;
import com.android.systemui.statusbar.phone.SettingsButton;
@@ -140,7 +139,7 @@
void updateAnimator(int width, int numTiles) {
int size = mContext.getResources().getDimensionPixelSize(R.dimen.qs_quick_tile_size)
- - mContext.getResources().getDimensionPixelSize(dimen.qs_quick_tile_padding);
+ - mContext.getResources().getDimensionPixelSize(R.dimen.qs_tile_padding);
int remaining = (width - numTiles * size) / (numTiles - 1);
int defSpace = mContext.getResources().getDimensionPixelOffset(R.dimen.default_gear_space);
@@ -167,6 +166,9 @@
private void updateResources() {
updateFooterAnimator();
+ MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams();
+ lp.bottomMargin = getResources().getDimensionPixelSize(R.dimen.qs_footers_margin_bottom);
+ setLayoutParams(lp);
mTunerIconTranslation = mContext.getResources()
.getDimensionPixelOffset(R.dimen.qs_footer_tuner_icon_translation);
mTunerIcon.setTranslationX(isLayoutRtl() ? -mTunerIconTranslation : mTunerIconTranslation);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index 4e16b74..7062e8c 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -84,8 +84,6 @@
@Nullable
protected View mFooter;
- @Nullable
- protected View mDivider;
@Nullable
private ViewGroup mHeaderContainer;
@@ -327,7 +325,6 @@
protected void onFinishInflate() {
super.onFinishInflate();
mFooter = findViewById(R.id.qs_footer);
- mDivider = findViewById(R.id.divider);
}
private void updateHorizontalLinearLayoutMargins() {
@@ -602,11 +599,6 @@
return mTileLayout;
}
- @Nullable
- public View getDivider() {
- return mDivider;
- }
-
/** */
public void setContentMargins(int startMargin, int endMargin, ViewGroup mediaHostView) {
// Only some views actually want this content padding, others want to go all the way
@@ -614,12 +606,6 @@
mContentMarginStart = startMargin;
mContentMarginEnd = endMargin;
updateMediaHostContentMargins(mediaHostView);
- updateDividerMargin();
- }
-
- private void updateDividerMargin() {
- if (mDivider == null) return;
- updateMargins(mDivider, mContentMarginStart, mContentMarginEnd);
}
/**
@@ -712,7 +698,6 @@
}
private void updateMargins(ViewGroup mediaHostView) {
- updateDividerMargin();
updateMediaHostContentMargins(mediaHostView);
updateHorizontalLinearLayoutMargins();
updatePadding();
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
index fff3d1f..ac92d4f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelController.java
@@ -284,10 +284,6 @@
return mView.getBrightnessView();
}
- public View getDivider() {
- return mView.getDivider();
- }
-
/** */
public void setPageListener(PagedTileLayout.PageListener listener) {
mView.setPageListener(listener);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
index e40f293..170785c 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
@@ -22,7 +22,6 @@
import android.content.ComponentName;
import android.content.res.Configuration;
import android.metrics.LogMaker;
-import android.view.View;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.UiEventLogger;
@@ -294,13 +293,6 @@
boolean switchTileLayout(boolean force) {
/** Whether or not the QuickQSPanel currently contains a media player. */
boolean horizontal = shouldUseHorizontalLayout();
- if (mView.getDivider() != null) {
- if (!horizontal && mUsingMediaPlayer && mMediaHost.getVisible()) {
- mView.getDivider().setVisibility(View.VISIBLE);
- } else {
- mView.getDivider().setVisibility(View.GONE);
- }
- }
if (horizontal != mUsingHorizontalLayout || force) {
mUsingHorizontalLayout = horizontal;
for (QSPanelControllerBase.TileRecord record : mRecords) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java b/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java
index baf781d..04e32a1 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java
@@ -128,11 +128,10 @@
int padding = r.getDimensionPixelSize(R.dimen.qs_footer_padding);
mRootView.setPaddingRelative(padding, padding, padding, padding);
- int verticalMargin = r.getDimensionPixelSize(R.dimen.qs_security_footer_vertical_margin);
+ int bottomMargin = r.getDimensionPixelSize(R.dimen.qs_footers_margin_bottom);
ViewGroup.MarginLayoutParams lp =
(ViewGroup.MarginLayoutParams) mRootView.getLayoutParams();
- lp.topMargin = verticalMargin;
- lp.bottomMargin = verticalMargin;
+ lp.bottomMargin = bottomMargin;
lp.width = r.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT
? MATCH_PARENT : WRAP_CONTENT;
mRootView.setLayoutParams(lp);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
index 63733b3..c3458fe 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
@@ -285,8 +285,6 @@
if (record.tileView.getVisibility() == GONE) continue;
previousView = record.tileView.updateAccessibilityOrder(previousView);
}
- mRecords.get(mRecords.size() - 1).tileView.setAccessibilityTraversalBefore(
- R.id.expand_indicator);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
index c69956f..73a6b34 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java
@@ -77,8 +77,6 @@
private int mStatusBarPaddingTop = 0;
private int mRoundedCornerPadding = 0;
- private int mContentMarginStart;
- private int mContentMarginEnd;
private int mWaterfallTopInset;
private int mCutOutPaddingLeft;
private int mCutOutPaddingRight;
@@ -242,35 +240,26 @@
.addFloat(mDateView, "alpha", 0, 1)
.addFloat(mSecurityHeaderView, "alpha", 0, 1)
.addFloat(mQSCarriers, "alpha", 0, 1);
-
- if (noCallingIcon != null || callStrengthIcon != null) {
- if (noCallingIcon != null) {
- builder.addFloat(noCallingIcon, "alpha", 1, 0);
+ builder.setListener(new TouchAnimator.ListenerAdapter() {
+ @Override
+ public void onAnimationAtEnd() {
+ mIconContainer.addIgnoredSlot(mMobileSlotName);
+ mIconContainer.addIgnoredSlot(mCallStrengthSlotName);
}
- if (callStrengthIcon != null) {
- builder.addFloat(callStrengthIcon, "alpha", 1, 0);
+
+ @Override
+ public void onAnimationStarted() {
+ mIconContainer.addIgnoredSlot(mMobileSlotName);
+ mIconContainer.addIgnoredSlot(mCallStrengthSlotName);
}
- builder.setListener(new TouchAnimator.ListenerAdapter() {
- @Override
- public void onAnimationAtEnd() {
- mIconContainer.addIgnoredSlot(mMobileSlotName);
- mIconContainer.addIgnoredSlot(mCallStrengthSlotName);
- }
- @Override
- public void onAnimationStarted() {
- mIconContainer.removeIgnoredSlot(mMobileSlotName);
- mIconContainer.removeIgnoredSlot(mCallStrengthSlotName);
- }
-
- @Override
- public void onAnimationAtStart() {
- super.onAnimationAtStart();
- mIconContainer.removeIgnoredSlot(mMobileSlotName);
- mIconContainer.removeIgnoredSlot(mCallStrengthSlotName);
- }
- });
- }
+ @Override
+ public void onAnimationAtStart() {
+ super.onAnimationAtStart();
+ mIconContainer.removeIgnoredSlot(mMobileSlotName);
+ mIconContainer.removeIgnoredSlot(mCallStrengthSlotName);
+ }
+ });
mAlphaAnimator = builder.build();
}
@@ -370,6 +359,8 @@
}
private void updateHeadersPadding() {
+ setContentMargins(mDatePrivacyView, 0, 0);
+ setContentMargins(mClockIconsView, 0, 0);
int paddingLeft = 0;
int paddingRight = 0;
@@ -383,14 +374,12 @@
if (mCutOutPaddingLeft > 0) {
// if there's a cutout, let's use at least the rounded corner inset
int cutoutPadding = Math.max(mCutOutPaddingLeft, mRoundedCornerPadding);
- int contentMarginLeft = isLayoutRtl() ? mContentMarginEnd : mContentMarginStart;
- paddingLeft = Math.max(cutoutPadding - contentMarginLeft - leftMargin, 0);
+ paddingLeft = Math.max(cutoutPadding - leftMargin, 0);
}
if (mCutOutPaddingRight > 0) {
// if there's a cutout, let's use at least the rounded corner inset
int cutoutPadding = Math.max(mCutOutPaddingRight, mRoundedCornerPadding);
- int contentMarginRight = isLayoutRtl() ? mContentMarginStart : mContentMarginEnd;
- paddingRight = Math.max(cutoutPadding - contentMarginRight - rightMargin, 0);
+ paddingRight = Math.max(cutoutPadding - rightMargin, 0);
}
mDatePrivacyView.setPadding(paddingLeft,
@@ -411,19 +400,6 @@
mHeaderQsPanel.setCallback(qsPanelCallback);
}
- /** */
- public void setContentMargins(int marginStart, int marginEnd,
- QuickQSPanelController quickQSPanelController) {
- mContentMarginStart = marginStart;
- mContentMarginEnd = marginEnd;
- // The clock and QQS are not direct children, but the container should be just a wrapper to
- // be able to move them together. So we set the margins to the actual views.
- quickQSPanelController.setContentMargins(0, 0);
- setContentMargins(mDatePrivacyView, marginStart, marginEnd);
- setContentMargins(mClockIconsView, marginStart, marginEnd);
- updateHeadersPadding();
- }
-
private void setContentMargins(View view, int marginStart, int marginEnd) {
MarginLayoutParams lp = (MarginLayoutParams) view.getLayoutParams();
lp.setMarginStart(marginStart);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java
index 617b067..1a828e4 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeaderController.java
@@ -183,6 +183,7 @@
mView.onAttach(mIconManager, mQSExpansionPathInterpolator);
mDemoModeController.addCallback(mDemoModeReceiver);
+ mHeaderQsPanelController.setContentMargins(0, 0);
}
@Override
@@ -259,11 +260,6 @@
return mMicCameraIndicatorsEnabled || mLocationIndicatorsEnabled;
}
- public void setContentMargins(int contentPaddingStart, int contentPaddingEnd) {
- mView.setContentMargins(contentPaddingStart, contentPaddingEnd, mHeaderQsPanelController);
- }
-
-
private static class ClockDemoModeReceiver implements DemoMode {
private Clock mClockView;
diff --git a/packages/SystemUI/src/com/android/systemui/qs/carrier/QSCarrierGroupController.java b/packages/SystemUI/src/com/android/systemui/qs/carrier/QSCarrierGroupController.java
index 5afe1c8..c49e054 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/carrier/QSCarrierGroupController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/carrier/QSCarrierGroupController.java
@@ -43,6 +43,7 @@
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators;
+import com.android.systemui.util.CarrierConfigTracker;
import java.util.function.Consumer;
@@ -71,6 +72,7 @@
private int[] mLastSignalLevel = new int[SIM_SLOTS];
private String[] mLastSignalLevelDescription = new String[SIM_SLOTS];
private final boolean mProviderModel;
+ private final CarrierConfigTracker mCarrierConfigTracker;
private final NetworkController.SignalCallback mSignalCallback =
new NetworkController.SignalCallback() {
@@ -112,6 +114,10 @@
Log.e(TAG, "Invalid SIM slot index for subscription: " + subId);
return;
}
+
+ boolean displayCallStrengthIcon =
+ mCarrierConfigTracker.getCallStrengthConfig(subId);
+
if (statusIcon.icon == R.drawable.ic_qs_no_calling_sms) {
if (statusIcon.visible) {
mInfos[slotIndex] = new CellSignalState(true,
@@ -119,9 +125,14 @@
} else {
// Whenever the no Calling & SMS state is cleared, switched to the last
// known call strength icon.
- mInfos[slotIndex] = new CellSignalState(
- true, mLastSignalLevel[slotIndex],
- mLastSignalLevelDescription[slotIndex], "", false);
+ if (displayCallStrengthIcon) {
+ mInfos[slotIndex] = new CellSignalState(
+ true, mLastSignalLevel[slotIndex],
+ mLastSignalLevelDescription[slotIndex], "", false);
+ } else {
+ mInfos[slotIndex] = new CellSignalState(
+ true, R.drawable.ic_qs_sim_card, "", "", false);
+ }
}
mMainHandler.obtainMessage(H.MSG_UPDATE_STATE).sendToTarget();
} else {
@@ -131,8 +142,13 @@
// shown.
if (mInfos[slotIndex].mobileSignalIconId
!= R.drawable.ic_qs_no_calling_sms) {
- mInfos[slotIndex] = new CellSignalState(true, statusIcon.icon,
- statusIcon.contentDescription, "", false);
+ if (displayCallStrengthIcon) {
+ mInfos[slotIndex] = new CellSignalState(true, statusIcon.icon,
+ statusIcon.contentDescription, "", false);
+ } else {
+ mInfos[slotIndex] = new CellSignalState(
+ true, R.drawable.ic_qs_sim_card, "", "", false);
+ }
mMainHandler.obtainMessage(H.MSG_UPDATE_STATE).sendToTarget();
}
}
@@ -165,7 +181,8 @@
private QSCarrierGroupController(QSCarrierGroup view, ActivityStarter activityStarter,
@Background Handler bgHandler, @Main Looper mainLooper,
NetworkController networkController,
- CarrierTextManager.Builder carrierTextManagerBuilder, Context context) {
+ CarrierTextManager.Builder carrierTextManagerBuilder, Context context,
+ CarrierConfigTracker carrierConfigTracker) {
if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
mProviderModel = true;
} else {
@@ -178,7 +195,7 @@
.setShowAirplaneMode(false)
.setShowMissingSim(false)
.build();
-
+ mCarrierConfigTracker = carrierConfigTracker;
View.OnClickListener onClickListener = v -> {
if (!v.isVisibleToUser()) {
return;
@@ -228,6 +245,17 @@
return SubscriptionManager.getSlotIndex(subscriptionId);
}
+ private boolean isSingleCarrier() {
+ int carrierCount = 0;
+ for (int i = 0; i < SIM_SLOTS; i++) {
+
+ if (mInfos[i].visible) {
+ carrierCount++;
+ }
+ }
+ return carrierCount == 1;
+ }
+
public void setListening(boolean listening) {
if (listening == mListening) {
return;
@@ -257,6 +285,15 @@
return;
}
+ if (isSingleCarrier()) {
+ for (int i = 0; i < SIM_SLOTS; i++) {
+ if (mInfos[i].visible
+ && mInfos[i].mobileSignalIconId == R.drawable.ic_qs_sim_card) {
+ mInfos[i] = new CellSignalState(true, R.drawable.ic_blank, "", "", false);
+ }
+ }
+ }
+
for (int i = 0; i < SIM_SLOTS; i++) {
mCarrierGroups[i].updateState(mInfos[i]);
}
@@ -363,17 +400,20 @@
private final NetworkController mNetworkController;
private final CarrierTextManager.Builder mCarrierTextControllerBuilder;
private final Context mContext;
+ private final CarrierConfigTracker mCarrierConfigTracker;
@Inject
public Builder(ActivityStarter activityStarter, @Background Handler handler,
@Main Looper looper, NetworkController networkController,
- CarrierTextManager.Builder carrierTextControllerBuilder, Context context) {
+ CarrierTextManager.Builder carrierTextControllerBuilder, Context context,
+ CarrierConfigTracker carrierConfigTracker) {
mActivityStarter = activityStarter;
mHandler = handler;
mLooper = looper;
mNetworkController = networkController;
mCarrierTextControllerBuilder = carrierTextControllerBuilder;
mContext = context;
+ mCarrierConfigTracker = carrierConfigTracker;
}
public Builder setQSCarrierGroup(QSCarrierGroup view) {
@@ -383,7 +423,8 @@
public QSCarrierGroupController build() {
return new QSCarrierGroupController(mView, mActivityStarter, mHandler, mLooper,
- mNetworkController, mCarrierTextControllerBuilder, mContext);
+ mNetworkController, mCarrierTextControllerBuilder, mContext,
+ mCarrierConfigTracker);
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/CustomizeTileView.java b/packages/SystemUI/src/com/android/systemui/qs/customize/CustomizeTileView.java
deleted file mode 100644
index ce8f6c1..0000000
--- a/packages/SystemUI/src/com/android/systemui/qs/customize/CustomizeTileView.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package com.android.systemui.qs.customize;
-
-import android.content.Context;
-import android.view.View;
-
-import com.android.systemui.plugins.qs.QSIconView;
-import com.android.systemui.plugins.qs.QSTile;
-import com.android.systemui.qs.tileimpl.QSTileView;
-
-public class CustomizeTileView extends QSTileView implements TileAdapter.CustomizeView {
- private boolean mShowAppLabel;
-
- public CustomizeTileView(Context context, QSIconView icon) {
- super(context, icon);
- }
-
- @Override
- public void setShowAppLabel(boolean showAppLabel) {
- mShowAppLabel = showAppLabel;
- mSecondLine.setVisibility(showAppLabel ? View.VISIBLE : View.GONE);
- mLabel.setSingleLine(showAppLabel);
- }
-
- @Override
- protected void handleStateChanged(QSTile.State state) {
- super.handleStateChanged(state);
- mSecondLine.setVisibility(mShowAppLabel ? View.VISIBLE : View.GONE);
- }
-
- @Override
- protected boolean animationsEnabled() {
- return false;
- }
-
- @Override
- public boolean isLongClickable() {
- return false;
- }
-
- @Override
- public void changeState(QSTile.State state) {
- handleStateChanged(state);
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/CustomizeTileView.kt b/packages/SystemUI/src/com/android/systemui/qs/customize/CustomizeTileView.kt
new file mode 100644
index 0000000..a316e6a
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/qs/customize/CustomizeTileView.kt
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.qs.customize
+
+import android.content.Context
+import android.text.TextUtils
+import com.android.systemui.plugins.qs.QSIconView
+import com.android.systemui.plugins.qs.QSTile
+import com.android.systemui.qs.tileimpl.QSTileViewImpl
+
+/**
+ * Class for displaying tiles in [QSCustomizer] with the new design (labels on the side).
+ */
+class CustomizeTileView(
+ context: Context,
+ icon: QSIconView
+) : QSTileViewImpl(context, icon, collapsed = false) {
+
+ var showAppLabel = false
+ set(value) {
+ field = value
+ secondaryLabel.visibility = getVisibilityState(secondaryLabel.text)
+ }
+
+ var showSideView = true
+ set(value) {
+ field = value
+ if (!showSideView) sideView.visibility = GONE
+ }
+
+ override fun handleStateChanged(state: QSTile.State) {
+ super.handleStateChanged(state)
+ showRippleEffect = false
+ secondaryLabel.visibility = getVisibilityState(state.secondaryLabel)
+ if (!showSideView) sideView.visibility = GONE
+ }
+
+ private fun getVisibilityState(text: CharSequence?): Int {
+ return if (showAppLabel && !TextUtils.isEmpty(text)) {
+ VISIBLE
+ } else {
+ GONE
+ }
+ }
+
+ override fun animationsEnabled(): Boolean {
+ return false
+ }
+
+ override fun isLongClickable(): Boolean {
+ return false
+ }
+
+ fun changeState(state: QSTile.State) {
+ handleStateChanged(state)
+ }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/CustomizeTileViewHorizontal.kt b/packages/SystemUI/src/com/android/systemui/qs/customize/CustomizeTileViewHorizontal.kt
deleted file mode 100644
index 7977b49..0000000
--- a/packages/SystemUI/src/com/android/systemui/qs/customize/CustomizeTileViewHorizontal.kt
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.android.systemui.qs.customize
-
-import android.content.Context
-import android.view.View
-import com.android.systemui.plugins.qs.QSIconView
-import com.android.systemui.plugins.qs.QSTile
-import com.android.systemui.qs.tileimpl.QSTileViewHorizontal
-
-/**
- * Class for displaying tiles in [QSCustomizer] with the new design (labels on the side).
- *
- * This is a class parallel to [CustomizeTileView], but inheriting from [QSTileViewHorizontal].
- */
-class CustomizeTileViewHorizontal(
- context: Context,
- icon: QSIconView
-) : QSTileViewHorizontal(context, icon, collapsed = false),
- TileAdapter.CustomizeView {
-
- private var showAppLabel = false
-
- override fun setShowAppLabel(showAppLabel: Boolean) {
- this.showAppLabel = showAppLabel
- mSecondLine.visibility = if (showAppLabel) View.VISIBLE else View.GONE
- mLabel.isSingleLine = showAppLabel
- }
-
- override fun handleStateChanged(state: QSTile.State) {
- super.handleStateChanged(state)
- mShowRippleEffect = false
- mSecondLine.visibility = if (showAppLabel) View.VISIBLE else View.GONE
- }
-
- override fun animationsEnabled(): Boolean {
- return false
- }
-
- override fun isLongClickable(): Boolean {
- return false
- }
-
- override fun changeState(state: QSTile.State) {
- handleStateChanged(state)
- }
-}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
index 5080533..12c6906 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
@@ -43,7 +43,6 @@
import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
-import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.QSEditEvent;
import com.android.systemui.qs.QSTileHost;
import com.android.systemui.qs.customize.TileAdapter.Holder;
@@ -53,7 +52,7 @@
import com.android.systemui.qs.dagger.QSThemedContext;
import com.android.systemui.qs.external.CustomTile;
import com.android.systemui.qs.tileimpl.QSIconViewImpl;
-import com.android.systemui.qs.tileimpl.QSTileView;
+import com.android.systemui.qs.tileimpl.QSTileViewImpl;
import java.util.ArrayList;
import java.util.List;
@@ -280,7 +279,7 @@
}
FrameLayout frame = (FrameLayout) inflater.inflate(R.layout.qs_customize_tile_frame, parent,
false);
- View view = new CustomizeTileViewHorizontal(context, new QSIconViewImpl(context));
+ View view = new CustomizeTileView(context, new QSIconViewImpl(context));
frame.addView(view);
return new Holder(frame);
}
@@ -367,6 +366,8 @@
// The holder has a tileView, therefore this call is not null
holder.getTileAsCustomizeView().changeState(info.state);
holder.getTileAsCustomizeView().setShowAppLabel(position > mEditIndex && !info.isSystem);
+ // Don't show the side view for third party tiles, as we don't have the actual state.
+ holder.getTileAsCustomizeView().setShowSideView(position < mEditIndex || info.isSystem);
holder.mTileView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
holder.mTileView.setClickable(true);
holder.mTileView.setOnClickListener(null);
@@ -545,15 +546,12 @@
}
public class Holder extends ViewHolder {
- private QSTileView mTileView;
+ private QSTileViewImpl mTileView;
public Holder(View itemView) {
super(itemView);
if (itemView instanceof FrameLayout) {
- mTileView = (QSTileView) ((FrameLayout) itemView).getChildAt(0);
- if (mTileView instanceof CustomizeTileView) {
- mTileView.setBackground(null);
- }
+ mTileView = (QSTileViewImpl) ((FrameLayout) itemView).getChildAt(0);
mTileView.getIcon().disableAnimation();
mTileView.setTag(this);
ViewCompat.setAccessibilityDelegate(mTileView, mAccessibilityDelegate);
@@ -561,8 +559,8 @@
}
@Nullable
- public CustomizeView getTileAsCustomizeView() {
- return (CustomizeView) mTileView;
+ public CustomizeTileView getTileAsCustomizeView() {
+ return (CustomizeTileView) mTileView;
}
public void clearDrag() {
@@ -570,8 +568,8 @@
if (mTileView instanceof CustomizeTileView) {
mTileView.findViewById(R.id.tile_label).clearAnimation();
mTileView.findViewById(R.id.tile_label).setAlpha(1);
- mTileView.getAppLabel().clearAnimation();
- mTileView.getAppLabel().setAlpha(.6f);
+ mTileView.getSecondaryLabel().clearAnimation();
+ mTileView.getSecondaryLabel().setAlpha(.6f);
}
}
@@ -584,7 +582,7 @@
mTileView.findViewById(R.id.tile_label).animate()
.setDuration(DRAG_LENGTH)
.alpha(0);
- mTileView.getAppLabel().animate()
+ mTileView.getSecondaryLabel().animate()
.setDuration(DRAG_LENGTH)
.alpha(0);
}
@@ -599,7 +597,7 @@
mTileView.findViewById(R.id.tile_label).animate()
.setDuration(DRAG_LENGTH)
.alpha(1);
- mTileView.getAppLabel().animate()
+ mTileView.getSecondaryLabel().animate()
.setDuration(DRAG_LENGTH)
.alpha(.6f);
}
@@ -692,11 +690,7 @@
continue;
}
- final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
- .getLayoutParams();
- final int top = child.getTop() + params.topMargin +
- Math.round(ViewCompat.getTranslationY(child));
- // Draw full width, in case there aren't tiles all the way across.
+ final int top = child.getTop() + Math.round(ViewCompat.getTranslationY(child));
mDrawable.setBounds(0, top, width, bottom);
mDrawable.draw(c);
break;
@@ -765,7 +759,7 @@
int position = mCurrentDrag.getAdapterPosition();
if (position == RecyclerView.NO_POSITION) return;
TileInfo info = mTiles.get(position);
- ((CustomizeView) mCurrentDrag.mTileView).setShowAppLabel(
+ ((CustomizeTileView) mCurrentDrag.mTileView).setShowAppLabel(
position > mEditIndex && !info.isSystem);
mCurrentDrag.stopDrag();
mCurrentDrag = null;
@@ -825,9 +819,4 @@
public void onSwiped(ViewHolder viewHolder, int direction) {
}
};
-
- interface CustomizeView {
- void setShowAppLabel(boolean showAppLabel);
- void changeState(@NonNull QSTile.State state);
- }
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/ButtonRelativeLayout.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/ButtonRelativeLayout.java
deleted file mode 100644
index 962537a..0000000
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/ButtonRelativeLayout.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package com.android.systemui.qs.tileimpl;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.Button;
-import android.widget.RelativeLayout;
-
-/**
- * Used for QS tile labels
- */
-public class ButtonRelativeLayout extends RelativeLayout {
-
- private View mIgnoredView;
-
- public ButtonRelativeLayout(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- @Override
- public CharSequence getAccessibilityClassName() {
- return Button.class.getName();
- }
-
- /**
- * Set a view to be ignored for measure.
- *
- * The view will be measured and laid out, but its size will be subtracted from the total size
- * of this view. It assumes that this view only contributes vertical height.
- */
- public void setIgnoredView(View view) {
- if (mIgnoredView == null || mIgnoredView.getParent() == this) {
- mIgnoredView = view;
- }
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- if (mIgnoredView != null && mIgnoredView.getVisibility() != GONE) {
- int height = mIgnoredView.getMeasuredHeight();
- MarginLayoutParams lp = (MarginLayoutParams) mIgnoredView.getLayoutParams();
- height = height - lp.bottomMargin - lp.topMargin;
- setMeasuredDimension(getMeasuredWidth(), getMeasuredHeight() - height);
- }
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/IgnorableChildLinearLayout.kt b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/IgnorableChildLinearLayout.kt
new file mode 100644
index 0000000..7055760
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/IgnorableChildLinearLayout.kt
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.qs.tileimpl
+
+import android.content.Context
+import android.util.AttributeSet
+import android.widget.LinearLayout
+
+/**
+ * [LinearLayout] that can ignore the last child for measuring.
+ *
+ * The view is measured as regularlt, then if [ignoreLastView] is true:
+ * * In [LinearLayout.VERTICAL] orientation, the height of the last view is subtracted from the
+ * final measured height.
+ * * In [LinearLayout.HORIZONTAL] orientation, the width of the last view is subtracted from the
+ * final measured width.
+ *
+ * This allows to measure the view and position it where it should, without it amounting to the
+ * total size (only in the direction of layout).
+ */
+class IgnorableChildLinearLayout @JvmOverloads constructor(
+ context: Context,
+ attributeSet: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+ defStyleRes: Int = 0
+) : LinearLayout(context, attributeSet, defStyleAttr, defStyleRes) {
+
+ var ignoreLastView = false
+
+ override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec)
+ if (ignoreLastView && childCount > 0) {
+ val lastView = getChildAt(childCount - 1)
+ val lp = lastView.layoutParams as MarginLayoutParams
+ if (orientation == VERTICAL) {
+ val height = lastView.measuredHeight + lp.bottomMargin + lp.topMargin
+ setMeasuredDimension(measuredWidth, measuredHeight - height)
+ } else {
+ val width = lastView.measuredWidth + lp.leftMargin + lp.rightMargin
+ setMeasuredDimension(measuredWidth - width, measuredHeight)
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
index 3437dd5..8f7c493 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
@@ -243,6 +243,6 @@
@Override
public QSTileView createTileView(Context context, QSTile tile, boolean collapsedView) {
QSIconView icon = tile.createTileView(context);
- return new QSTileViewHorizontal(context, icon, collapsedView);
+ return new QSTileViewImpl(context, icon, collapsedView);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java
index 31526bf..8280f98 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java
@@ -14,22 +14,24 @@
package com.android.systemui.qs.tileimpl;
-import static com.android.systemui.qs.tileimpl.QSTileImpl.getColorForState;
-
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.Animatable2;
import android.graphics.drawable.Animatable2.AnimationCallback;
import android.graphics.drawable.Drawable;
+import android.service.quicksettings.Tile;
+import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
+import com.android.settingslib.Utils;
import com.android.systemui.R;
import com.android.systemui.plugins.qs.QSIconView;
import com.android.systemui.plugins.qs.QSTile;
@@ -43,7 +45,7 @@
public static final long QS_ANIM_LENGTH = 350;
protected final View mIcon;
- protected final int mIconSizePx;
+ protected int mIconSizePx;
private boolean mAnimationEnabled = true;
private int mState = -1;
private int mTint;
@@ -53,12 +55,18 @@
super(context);
final Resources res = context.getResources();
- mIconSizePx = res.getDimensionPixelSize(R.dimen.qs_tile_icon_size);
+ mIconSizePx = res.getDimensionPixelSize(R.dimen.qs_icon_size);
mIcon = createIcon();
addView(mIcon);
}
+ @Override
+ protected void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ mIconSizePx = getContext().getResources().getDimensionPixelSize(R.dimen.qs_icon_size);
+ }
+
public void disableAnimation() {
mAnimationEnabled = false;
}
@@ -169,7 +177,7 @@
}
protected int getColor(int state) {
- return getColorForState(getContext(), state);
+ return getIconColorForState(getContext(), state);
}
private void animateGrayScale(int fromColor, int toColor, ImageView iv,
@@ -229,4 +237,21 @@
protected final void layout(View child, int left, int top) {
child.layout(left, top, left + child.getMeasuredWidth(), top + child.getMeasuredHeight());
}
+
+ /**
+ * Color to tint the tile icon based on state
+ */
+ public static int getIconColorForState(Context context, int state) {
+ switch (state) {
+ case Tile.STATE_UNAVAILABLE:
+ return Utils.getColorAttrDefaultColor(context, android.R.attr.textColorTertiary);
+ case Tile.STATE_INACTIVE:
+ return Utils.getColorAttrDefaultColor(context, android.R.attr.textColorPrimary);
+ case Tile.STATE_ACTIVE:
+ return Utils.getColorAttrDefaultColor(context, android.R.attr.colorPrimary);
+ default:
+ Log.e("QSIconView", "Invalid state " + state);
+ return 0;
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java
deleted file mode 100644
index c973e8c..0000000
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java
+++ /dev/null
@@ -1,416 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-package com.android.systemui.qs.tileimpl;
-
-import static android.view.accessibility.AccessibilityEvent.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION;
-
-import static com.android.systemui.qs.tileimpl.QSIconViewImpl.QS_ANIM_LENGTH;
-
-import android.animation.ValueAnimator;
-import android.content.Context;
-import android.content.res.ColorStateList;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.Path;
-import android.graphics.drawable.AdaptiveIconDrawable;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.RippleDrawable;
-import android.graphics.drawable.ShapeDrawable;
-import android.graphics.drawable.shapes.PathShape;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.service.quicksettings.Tile;
-import android.text.TextUtils;
-import android.util.Log;
-import android.util.PathParser;
-import android.view.Gravity;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityNodeInfo;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.Switch;
-
-import com.android.settingslib.Utils;
-import com.android.systemui.R;
-import com.android.systemui.plugins.qs.QSIconView;
-import com.android.systemui.plugins.qs.QSTile;
-import com.android.systemui.plugins.qs.QSTile.BooleanState;
-
-public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
-
- private static final String TAG = "QSTileBaseView";
- private static final int ICON_MASK_ID = com.android.internal.R.string.config_icon_mask;
- protected final Handler mHandler = new H();
- private final int[] mLocInScreen = new int[2];
- protected final FrameLayout mIconFrame;
- protected QSIconView mIcon;
- protected RippleDrawable mRipple;
- protected Drawable mTileBackground;
- private String mAccessibilityClass;
- private boolean mTileState;
- protected boolean mCollapsedView;
- protected boolean mShowRippleEffect = true;
- private float mStrokeWidthActive;
- private float mStrokeWidthInactive;
-
- protected final ImageView mBg;
- private final int mColorActive;
- private final int mColorInactive;
- private int mCircleColor;
- private int mBgSize;
-
- private static final int INVALID = -1;
- private CharSequence mStateDescriptionDeltas = null;
- private CharSequence mLastStateDescription;
- private int mLastState = INVALID;
-
- public QSTileBaseView(Context context, QSIconView icon) {
- this(context, icon, false);
- }
-
- public QSTileBaseView(Context context, QSIconView icon, boolean collapsedView) {
- super(context);
- // Default to Quick Tile padding, and QSTileView will specify its own padding.
- int padding = context.getResources().getDimensionPixelSize(R.dimen.qs_quick_tile_padding);
- mIconFrame = new FrameLayout(context);
- mStrokeWidthActive = context.getResources()
- .getDimension(com.android.internal.R.dimen.config_qsTileStrokeWidthActive);
- mStrokeWidthInactive = context.getResources()
- .getDimension(com.android.internal.R.dimen.config_qsTileStrokeWidthInactive);
- int size = context.getResources().getDimensionPixelSize(R.dimen.qs_quick_tile_size);
- addView(mIconFrame, new LayoutParams(size, size));
- mBg = new ImageView(getContext());
- Path path = new Path(PathParser.createPathFromPathData(
- context.getResources().getString(ICON_MASK_ID)));
- float pathSize = AdaptiveIconDrawable.MASK_SIZE;
- PathShape p = new PathShape(path, pathSize, pathSize);
- ShapeDrawable d = new ShapeDrawable(p);
- d.setTintList(ColorStateList.valueOf(Color.TRANSPARENT));
- float backgroundStrokeWidth = context.getResources()
- .getDimension(R.dimen.qs_tile_icon_background_stroke_width);
- if (backgroundStrokeWidth > 0) {
- d.getPaint().setStyle(Paint.Style.STROKE);
- d.getPaint().setStrokeWidth(backgroundStrokeWidth);
- }
- int bgSize = context.getResources().getDimensionPixelSize(R.dimen.qs_tile_background_size);
- d.setIntrinsicHeight(bgSize);
- d.setIntrinsicWidth(bgSize);
- mBg.setImageDrawable(d);
- FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(bgSize, bgSize, Gravity.CENTER);
- mIconFrame.addView(mBg, lp);
- mBg.setLayoutParams(lp);
- mIcon = icon;
- FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT,
- Gravity.CENTER);
- mIconFrame.addView(mIcon, params);
- mIconFrame.setClipChildren(false);
- mIconFrame.setClipToPadding(false);
-
- mTileBackground = newTileBackground();
- if (mTileBackground instanceof RippleDrawable) {
- setRipple((RippleDrawable) mTileBackground);
- }
- setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
- setBackground(mTileBackground);
-
- mColorActive = Utils.getColorAttrDefaultColor(context,
- com.android.internal.R.attr.colorAccentPrimary);
- mColorInactive = Utils.getColorAttrDefaultColor(context, R.attr.offStateColor);
-
- setPadding(0, 0, 0, 0);
- setClipChildren(false);
- setClipToPadding(false);
- mCollapsedView = collapsedView;
- setFocusable(true);
- }
-
- public View getBgCircle() {
- return mBg;
- }
-
- protected Drawable newTileBackground() {
- final int[] attrs = new int[]{android.R.attr.selectableItemBackgroundBorderless};
- final TypedArray ta = getContext().obtainStyledAttributes(attrs);
- final Drawable d = ta.getDrawable(0);
- ta.recycle();
- return d;
- }
-
- private void setRipple(RippleDrawable tileBackground) {
- mRipple = tileBackground;
- if (getWidth() != 0) {
- updateRippleSize();
- }
- }
-
- protected void updateRippleSize() {
- // center the touch feedback on the center of the icon, and dial it down a bit
- final int cx = mIconFrame.getMeasuredWidth() / 2 + mIconFrame.getLeft();
- final int cy = mIconFrame.getMeasuredHeight() / 2 + mIconFrame.getTop();
- final int rad = (int) (mIcon.getHeight() * .85f);
- mRipple.setHotspotBounds(cx - rad, cy - rad, cx + rad, cy + rad);
- }
-
- @Override
- public void init(QSTile tile) {
- init(v -> tile.click(this), v -> tile.secondaryClick(this), view -> {
- tile.longClick(this);
- return true;
- });
- }
-
- public void init(OnClickListener click, OnClickListener secondaryClick,
- OnLongClickListener longClick) {
- setOnClickListener(click);
- setOnLongClickListener(longClick);
- }
-
- @Override
- protected void onLayout(boolean changed, int l, int t, int r, int b) {
- super.onLayout(changed, l, t, r, b);
- if (mRipple != null) {
- updateRippleSize();
- }
- }
-
- @Override
- public boolean hasOverlappingRendering() {
- // Avoid layers for this layout - we don't need them.
- return false;
- }
-
- /**
- * Update the accessibility order for this view.
- *
- * @param previousView the view which should be before this one
- * @return the last view in this view which is accessible
- */
- public View updateAccessibilityOrder(View previousView) {
- setAccessibilityTraversalAfter(previousView.getId());
- return this;
- }
-
- public void onStateChanged(QSTile.State state) {
- mHandler.obtainMessage(H.STATE_CHANGED, state).sendToTarget();
- }
-
- private void updateStrokeShapeWidth(QSTile.State state) {
- Resources resources = getContext().getResources();
- if (!(mBg.getDrawable() instanceof ShapeDrawable)) {
- return;
- }
- ShapeDrawable d = (ShapeDrawable) mBg.getDrawable();
- d.getPaint().setStyle(Paint.Style.FILL);
- switch (state.state) {
- case Tile.STATE_INACTIVE:
- if (mStrokeWidthInactive >= 0) {
- d.getPaint().setStyle(Paint.Style.STROKE);
- d.getPaint().setStrokeWidth(mStrokeWidthInactive);
- }
- break;
- case Tile.STATE_ACTIVE:
- if (mStrokeWidthActive >= 0) {
- d.getPaint().setStyle(Paint.Style.STROKE);
- d.getPaint().setStrokeWidth(mStrokeWidthActive);
- }
- break;
- }
- }
-
- protected void handleStateChanged(QSTile.State state) {
- updateStrokeShapeWidth(state);
- int circleColor = getCircleColor(state.state);
- boolean allowAnimations = animationsEnabled();
- if (circleColor != mCircleColor) {
- if (allowAnimations) {
- ValueAnimator animator = ValueAnimator.ofArgb(mCircleColor, circleColor)
- .setDuration(QS_ANIM_LENGTH);
- animator.addUpdateListener(animation -> mBg.setImageTintList(ColorStateList.valueOf(
- (Integer) animation.getAnimatedValue())));
- animator.start();
- } else {
- QSIconViewImpl.setTint(mBg, circleColor);
- }
- mCircleColor = circleColor;
- }
-
- mShowRippleEffect = state.showRippleEffect;
- setClickable(state.state != Tile.STATE_UNAVAILABLE);
- setLongClickable(state.handlesLongClick);
- mIcon.setIcon(state, allowAnimations);
- setContentDescription(state.contentDescription);
- final StringBuilder stateDescription = new StringBuilder();
- String text = "";
- switch (state.state) {
- case Tile.STATE_UNAVAILABLE:
- text = mContext.getString(R.string.tile_unavailable);
- break;
- case Tile.STATE_INACTIVE:
- if (state instanceof QSTile.BooleanState) {
- text = mContext.getString(R.string.switch_bar_off);
- }
- break;
- case Tile.STATE_ACTIVE:
- if (state instanceof QSTile.BooleanState) {
- text = mContext.getString(R.string.switch_bar_on);
- }
- break;
- default:
- break;
- }
- if (!TextUtils.isEmpty(text)) {
- stateDescription.append(text);
- if (TextUtils.isEmpty(state.secondaryLabel)) {
- state.secondaryLabel = text;
- }
- }
- if (!TextUtils.isEmpty(state.stateDescription)) {
- stateDescription.append(", ");
- stateDescription.append(state.stateDescription);
- if (mLastState != INVALID && state.state == mLastState
- && !state.stateDescription.equals(mLastStateDescription)) {
- mStateDescriptionDeltas = state.stateDescription;
- }
- }
- setStateDescription(stateDescription.toString());
- mLastState = state.state;
- mLastStateDescription = state.stateDescription;
-
- mAccessibilityClass =
- state.state == Tile.STATE_UNAVAILABLE ? null : state.expandedAccessibilityClassName;
- if (state instanceof QSTile.BooleanState) {
- boolean newState = ((BooleanState) state).value;
- if (mTileState != newState) {
- mTileState = newState;
- }
- }
- }
-
- /* The view should not be animated if it's not on screen and no part of it is visible.
- */
- protected boolean animationsEnabled() {
- if (!isShown()) {
- return false;
- }
- if (getAlpha() != 1f) {
- return false;
- }
- getLocationOnScreen(mLocInScreen);
- return mLocInScreen[1] >= -getHeight();
- }
-
- protected int getCircleColor(int state) {
- switch (state) {
- case Tile.STATE_ACTIVE:
- return mColorActive;
- case Tile.STATE_INACTIVE:
- case Tile.STATE_UNAVAILABLE:
- return mColorInactive;
- default:
- Log.e(TAG, "Invalid state " + state);
- return 0;
- }
- }
-
- @Override
- public void setClickable(boolean clickable) {
- super.setClickable(clickable);
- setBackground(clickable && mShowRippleEffect ? mRipple : null);
- }
-
- @Override
- public int getDetailY() {
- return getTop() + getHeight() / 2;
- }
-
- public QSIconView getIcon() {
- return mIcon;
- }
-
- public View getIconWithBackground() {
- return mIconFrame;
- }
-
- @Override
- public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
- super.onInitializeAccessibilityEvent(event);
- if (!TextUtils.isEmpty(mAccessibilityClass)) {
- event.setClassName(mAccessibilityClass);
- }
- if (event.getContentChangeTypes() == CONTENT_CHANGE_TYPE_STATE_DESCRIPTION
- && mStateDescriptionDeltas != null) {
- event.getText().add(mStateDescriptionDeltas);
- mStateDescriptionDeltas = null;
- }
- }
-
- @Override
- public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
- super.onInitializeAccessibilityNodeInfo(info);
- // Clear selected state so it is not announce by talkback.
- info.setSelected(false);
- if (!TextUtils.isEmpty(mAccessibilityClass)) {
- info.setClassName(mAccessibilityClass);
- if (Switch.class.getName().equals(mAccessibilityClass)) {
- String label = getResources().getString(
- mTileState ? R.string.switch_bar_on : R.string.switch_bar_off);
- // Set the text here for tests in
- // android.platform.test.scenario.sysui.quicksettings. Can be removed when
- // UiObject2 has a new getStateDescription() API and tests are updated.
- info.setText(label);
- info.setChecked(mTileState);
- info.setCheckable(true);
- if (isLongClickable()) {
- info.addAction(
- new AccessibilityNodeInfo.AccessibilityAction(
- AccessibilityNodeInfo.AccessibilityAction
- .ACTION_LONG_CLICK.getId(),
- getResources().getString(
- R.string.accessibility_long_click_tile)));
- }
- }
- }
- }
-
- @Override
- public String toString() {
- final StringBuilder sb = new StringBuilder(getClass().getSimpleName()).append('[');
- sb.append("locInScreen=(" + mLocInScreen[0] + ", " + mLocInScreen[1] + ")");
- sb.append(", iconView=" + mIcon.toString());
- sb.append(", tileState=" + mTileState);
- sb.append("]");
- return sb.toString();
- }
-
- private class H extends Handler {
- private static final int STATE_CHANGED = 1;
-
- public H() {
- super(Looper.getMainLooper());
- }
-
- @Override
- public void handleMessage(Message msg) {
- if (msg.what == STATE_CHANGED) {
- handleStateChanged((QSTile.State) msg.obj);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java
index 5ff785d..47d80bb 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java
@@ -38,7 +38,6 @@
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
-import android.service.quicksettings.Tile;
import android.text.format.DateUtils;
import android.util.ArraySet;
import android.util.Log;
@@ -56,7 +55,6 @@
import com.android.internal.logging.UiEventLogger;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.Utils;
import com.android.systemui.Dumpable;
import com.android.systemui.animation.ActivityLaunchAnimator;
import com.android.systemui.plugins.ActivityStarter;
@@ -563,21 +561,6 @@
return mReadyState == READY_STATE_READY;
}
- public static int getColorForState(Context context, int state) {
- switch (state) {
- case Tile.STATE_UNAVAILABLE:
- return Utils.getDisabled(context,
- Utils.getColorAttrDefaultColor(context, android.R.attr.textColorSecondary));
- case Tile.STATE_INACTIVE:
- return Utils.getColorAttrDefaultColor(context, android.R.attr.textColorSecondary);
- case Tile.STATE_ACTIVE:
- return Utils.getColorAttrDefaultColor(context, android.R.attr.colorPrimary);
- default:
- Log.e("QSTile", "Invalid state " + state);
- return 0;
- }
- }
-
protected final class H extends Handler {
private static final int ADD_CALLBACK = 1;
private static final int CLICK = 2;
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java
deleted file mode 100644
index 50417e9..0000000
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package com.android.systemui.qs.tileimpl;
-
-import android.content.Context;
-import android.content.res.ColorStateList;
-import android.content.res.Configuration;
-import android.service.quicksettings.Tile;
-import android.text.TextUtils;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import androidx.annotation.Nullable;
-
-import com.android.settingslib.Utils;
-import com.android.systemui.FontSizeUtils;
-import com.android.systemui.R;
-import com.android.systemui.plugins.qs.QSIconView;
-import com.android.systemui.plugins.qs.QSTile;
-
-import java.util.Objects;
-
-/** View that represents a standard quick settings tile. **/
-public class QSTileView extends QSTileBaseView {
- protected int mMaxLabelLines = 2;
- private View mDivider;
- protected TextView mLabel;
- protected TextView mSecondLine;
- private ImageView mPadLock;
- protected int mState;
- protected ButtonRelativeLayout mLabelContainer;
- private View mExpandIndicator;
- private View mExpandSpace;
- protected ColorStateList mColorLabelActive;
- protected ColorStateList mColorLabelInactive;
- private ColorStateList mColorLabelUnavailable;
- protected boolean mDualTargetAllowed = false;
-
- public QSTileView(Context context, QSIconView icon) {
- this(context, icon, false);
- }
-
- public QSTileView(Context context, QSIconView icon, boolean collapsedView) {
- super(context, icon, collapsedView);
-
- setClipChildren(false);
- setClipToPadding(false);
-
- setClickable(true);
- setId(View.generateViewId());
- createLabel();
- setOrientation(VERTICAL);
- setGravity(Gravity.CENTER_HORIZONTAL | Gravity.TOP);
- mColorLabelActive = Utils.getColorAttr(getContext(), android.R.attr.textColorPrimary);
- mColorLabelInactive = mColorLabelActive;
- // The text color for unavailable tiles is textColorSecondary, same as secondaryLabel for
- // contrast purposes
- mColorLabelUnavailable = Utils.getColorAttr(getContext(),
- android.R.attr.textColorSecondary);
- }
-
- TextView getLabel() {
- return mLabel;
- }
-
- @Override
- protected void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- FontSizeUtils.updateFontSize(mLabel, R.dimen.qs_tile_text_size);
- FontSizeUtils.updateFontSize(mSecondLine, R.dimen.qs_tile_text_size);
- }
-
- @Override
- public int getDetailY() {
- return getTop() + mLabelContainer.getTop() + mLabelContainer.getHeight() / 2;
- }
-
- protected void createLabel() {
- mLabelContainer = (ButtonRelativeLayout) LayoutInflater.from(getContext())
- .inflate(R.layout.qs_tile_label, this, false);
- mLabelContainer.setClipChildren(false);
- mLabelContainer.setClipToPadding(false);
- mLabel = mLabelContainer.findViewById(R.id.tile_label);
- mPadLock = mLabelContainer.findViewById(R.id.restricted_padlock);
- mDivider = mLabelContainer.findViewById(R.id.underline);
- mExpandIndicator = mLabelContainer.findViewById(R.id.expand_indicator);
- mExpandSpace = mLabelContainer.findViewById(R.id.expand_space);
- mSecondLine = mLabelContainer.findViewById(R.id.app_label);
- addView(mLabelContainer);
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- mLabel.setSingleLine(false);
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-
- // Remeasure view if the primary label requires more than mMaxLabelLines lines or the
- // secondary label text will be cut off.
- if (shouldLabelBeSingleLine()) {
- mLabel.setSingleLine();
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- }
- }
-
- protected boolean shouldLabelBeSingleLine() {
- if (mCollapsedView) return true;
- if (mLabel.getLineCount() > mMaxLabelLines) {
- return true;
- } else if (!TextUtils.isEmpty(mSecondLine.getText())
- && mLabel.getLineCount() > mMaxLabelLines - 1) {
- return true;
- }
- return false;
- }
-
- @Override
- protected void handleStateChanged(QSTile.State state) {
- super.handleStateChanged(state);
- if (!Objects.equals(mLabel.getText(), state.label) || mState != state.state) {
- ColorStateList labelColor = getLabelColor(state.state);
- changeLabelColor(labelColor);
- mState = state.state;
- mLabel.setText(state.label);
- }
- if (!Objects.equals(mSecondLine.getText(), state.secondaryLabel)) {
- mSecondLine.setText(state.secondaryLabel);
- mSecondLine.setVisibility(TextUtils.isEmpty(state.secondaryLabel)
- ? View.GONE : View.VISIBLE);
- }
- boolean dualTarget = mDualTargetAllowed && state.dualTarget;
- handleExpand(dualTarget);
- mLabelContainer.setContentDescription(dualTarget ? state.dualLabelContentDescription
- : null);
- if (dualTarget != mLabelContainer.isClickable()) {
- mLabelContainer.setClickable(dualTarget);
- mLabelContainer.setLongClickable(dualTarget);
- mLabelContainer.setBackground(dualTarget ? newTileBackground() : null);
- }
- mLabel.setEnabled(!state.disabledByPolicy);
- mPadLock.setVisibility(state.disabledByPolicy ? View.VISIBLE : View.GONE);
- }
-
- protected final ColorStateList getLabelColor(int state) {
- if (state == Tile.STATE_ACTIVE) {
- return mColorLabelActive;
- } else if (state == Tile.STATE_INACTIVE) {
- return mColorLabelInactive;
- }
- return mColorLabelUnavailable;
- }
-
- protected void changeLabelColor(ColorStateList color) {
- mLabel.setTextColor(color);
- }
-
- protected void handleExpand(boolean dualTarget) {
- mExpandIndicator.setVisibility(dualTarget ? View.VISIBLE : View.GONE);
- mExpandSpace.setVisibility(dualTarget ? View.VISIBLE : View.GONE);
- }
-
- @Override
- public void init(OnClickListener click, OnClickListener secondaryClick,
- OnLongClickListener longClick) {
- super.init(click, secondaryClick, longClick);
- mLabelContainer.setOnClickListener(secondaryClick);
- mLabelContainer.setOnLongClickListener(longClick);
- mLabelContainer.setClickable(false);
- mLabelContainer.setLongClickable(false);
- }
-
- public TextView getAppLabel() {
- return mSecondLine;
- }
-
- @Nullable
- @Override
- public View getLabelContainer() {
- return mLabelContainer;
- }
-
- @Override
- public View getSecondaryLabel() {
- return mSecondLine;
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewHorizontal.kt b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewHorizontal.kt
deleted file mode 100644
index 70d51ee..0000000
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewHorizontal.kt
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.qs.tileimpl
-
-import android.animation.ValueAnimator
-import android.content.Context
-import android.content.res.ColorStateList
-import android.graphics.Color
-import android.graphics.drawable.Drawable
-import android.graphics.drawable.RippleDrawable
-import android.service.quicksettings.Tile.STATE_ACTIVE
-import android.view.Gravity
-import android.view.View
-import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
-import android.widget.ImageView
-import android.widget.LinearLayout
-import android.widget.RelativeLayout
-import com.android.systemui.R
-import com.android.systemui.plugins.qs.QSIconView
-import com.android.systemui.plugins.qs.QSTile
-import com.android.systemui.qs.tileimpl.QSTileImpl.getColorForState
-
-open class QSTileViewHorizontal(
- context: Context,
- icon: QSIconView,
- collapsed: Boolean
-) : QSTileView(context, icon, collapsed), HeightOverrideable {
-
- protected var colorBackgroundDrawable: Drawable? = null
- private var paintColor = Color.WHITE
- private var paintAnimator: ValueAnimator? = null
- private var labelAnimator: ValueAnimator? = null
- private var sideView: ImageView = ImageView(mContext)
- override var heightOverride: Int = HeightOverrideable.NO_OVERRIDE
-
- init {
- orientation = HORIZONTAL
- gravity = Gravity.CENTER_VERTICAL or Gravity.START
- mDualTargetAllowed = false
- val padding = context.resources.getDimensionPixelSize(R.dimen.qs_tile_side_label_padding)
- setPadding(padding, paddingTop, padding, paddingBottom)
-
- mBg.setImageDrawable(null)
- mIconFrame.removeAllViews()
- removeView(mIconFrame)
- val iconSize = context.resources.getDimensionPixelSize(R.dimen.qs_icon_size)
- addView(mIcon, 0, LayoutParams(iconSize, iconSize))
-
- sideView.visibility = View.GONE
- val sideViewLayoutParams = LayoutParams(WRAP_CONTENT, WRAP_CONTENT).apply {
- gravity = Gravity.CENTER_VERTICAL
- marginStart = context.resources.getDimensionPixelSize(R.dimen.qs_label_container_margin)
- }
- addView(sideView, -1, sideViewLayoutParams)
- sideView.adjustViewBounds = true
- sideView.scaleType = ImageView.ScaleType.FIT_CENTER
-
- mColorLabelActive = ColorStateList.valueOf(getColorForState(getContext(), STATE_ACTIVE))
- changeLabelColor(getLabelColor(mState)) // Matches the default state of the tile
- }
-
- override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
- super.onLayout(changed, l, t, r, b)
- if (heightOverride != HeightOverrideable.NO_OVERRIDE) {
- bottom = top + heightOverride
- }
- }
-
- override fun createLabel() {
- super.createLabel()
- findViewById<LinearLayout>(R.id.label_group)?.apply {
- gravity = Gravity.START
- (layoutParams as? RelativeLayout.LayoutParams)?.apply {
- removeRule(RelativeLayout.ALIGN_PARENT_TOP)
- }
- }
- mLabelContainer.setPadding(0, 0, 0, 0)
- (mLabelContainer.layoutParams as MarginLayoutParams).apply {
- marginStart = context.resources.getDimensionPixelSize(R.dimen.qs_label_container_margin)
- marginEnd = 0
- gravity = Gravity.CENTER_VERTICAL or Gravity.START
- }
- mLabel.gravity = Gravity.START
- mLabel.textDirection = TEXT_DIRECTION_LOCALE
- mSecondLine.gravity = Gravity.START
- mSecondLine.textDirection = TEXT_DIRECTION_LOCALE
-
- if (mCollapsedView) {
- mSecondLine.alpha = 0f
- mLabelContainer.setIgnoredView(mSecondLine)
- }
- }
-
- override fun shouldLabelBeSingleLine(): Boolean {
- return true
- }
-
- override fun updateRippleSize() {
- }
-
- override fun newTileBackground(): Drawable? {
- val ripple = mContext.getDrawable(R.drawable.qs_tile_background) as RippleDrawable
- colorBackgroundDrawable = ripple.findDrawableByLayerId(R.id.background)
- return ripple
- }
-
- override fun setClickable(clickable: Boolean) {
- super.setClickable(clickable)
- background = if (clickable && mShowRippleEffect) {
- mRipple?.also {
- // In case that the colorBackgroundDrawable was used as the background, make sure
- // it has the correct callback instead of null
- colorBackgroundDrawable?.callback = it
- }
- } else {
- colorBackgroundDrawable
- }
- }
-
- override fun handleStateChanged(state: QSTile.State) {
- super.handleStateChanged(state)
- mLabelContainer.background = null
-
- val allowAnimations = animationsEnabled() && paintColor != Color.WHITE
- val newColor = getCircleColor(state.state)
- if (allowAnimations) {
- animateBackground(newColor)
- } else {
- clearBackgroundAnimator()
- colorBackgroundDrawable?.setTintList(ColorStateList.valueOf(newColor))?.also {
- paintColor = newColor
- }
- paintColor = newColor
- }
- loadSideViewDrawableIfNecessary(state)
- }
-
- private fun animateBackground(newBackgroundColor: Int) {
- if (newBackgroundColor != paintColor) {
- clearBackgroundAnimator()
- paintAnimator = ValueAnimator.ofArgb(paintColor, newBackgroundColor)
- .setDuration(QSIconViewImpl.QS_ANIM_LENGTH).apply {
- addUpdateListener { animation: ValueAnimator ->
- val c = animation.animatedValue as Int
- colorBackgroundDrawable?.setTintList(ColorStateList.valueOf(c))?.also {
- paintColor = c
- }
- }
- start()
- }
- }
- }
-
- override fun changeLabelColor(color: ColorStateList) {
- val allowAnimations = animationsEnabled()
- val currentColor = mLabel.textColors.defaultColor
- if (currentColor != color.defaultColor) {
- clearLabelAnimator()
- if (allowAnimations) {
- labelAnimator = ValueAnimator.ofArgb(currentColor, color.defaultColor)
- .setDuration(QSIconViewImpl.QS_ANIM_LENGTH).apply {
- addUpdateListener {
- setLabelsColor(ColorStateList.valueOf(it.animatedValue as Int))
- }
- start()
- }
- } else {
- setLabelsColor(color)
- }
- }
- }
-
- private fun setLabelsColor(color: ColorStateList) {
- mLabel.setTextColor(color)
- mSecondLine.setTextColor(color)
- }
-
- private fun clearBackgroundAnimator() {
- paintAnimator?.cancel()?.also { paintAnimator = null }
- }
-
- private fun clearLabelAnimator() {
- labelAnimator?.cancel()?.also { labelAnimator = null }
- }
-
- private fun loadSideViewDrawableIfNecessary(state: QSTile.State) {
- if (state.sideViewDrawable != null) {
- sideView.setImageDrawable(state.sideViewDrawable)
- sideView.visibility = View.VISIBLE
- } else {
- sideView.setImageDrawable(null)
- sideView.visibility = GONE
- }
- }
-
- override fun handleExpand(dualTarget: Boolean) {}
-
- override fun getSecondaryIcon(): View {
- return sideView
- }
-}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt
new file mode 100644
index 0000000..2d777a5
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt
@@ -0,0 +1,539 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.qs.tileimpl
+
+import android.animation.ValueAnimator
+import android.content.Context
+import android.content.res.ColorStateList
+import android.content.res.Configuration
+import android.content.res.Resources.ID_NULL
+import android.graphics.drawable.Drawable
+import android.graphics.drawable.RippleDrawable
+import android.service.quicksettings.Tile
+import android.text.TextUtils
+import android.util.Log
+import android.view.Gravity
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.view.accessibility.AccessibilityEvent
+import android.view.accessibility.AccessibilityNodeInfo
+import android.widget.ImageView
+import android.widget.LinearLayout
+import android.widget.Switch
+import android.widget.TextView
+import com.android.settingslib.Utils
+import com.android.systemui.FontSizeUtils
+import com.android.systemui.R
+import com.android.systemui.plugins.qs.QSIconView
+import com.android.systemui.plugins.qs.QSTile
+import com.android.systemui.plugins.qs.QSTile.BooleanState
+import com.android.systemui.plugins.qs.QSTileView
+import java.util.Objects
+
+private const val TAG = "QSTileViewImpl"
+open class QSTileViewImpl @JvmOverloads constructor(
+ context: Context,
+ private val _icon: QSIconView,
+ private val collapsed: Boolean = false
+) : QSTileView(context), HeightOverrideable {
+
+ companion object {
+ private const val INVALID = -1
+ }
+
+ override var heightOverride: Int = HeightOverrideable.NO_OVERRIDE
+
+ private val colorActive = Utils.getColorAttrDefaultColor(context,
+ com.android.internal.R.attr.colorAccentPrimary)
+ private val colorInactive = Utils.getColorAttrDefaultColor(context, R.attr.offStateColor)
+ private val colorUnavailable =
+ Utils.getColorAttrDefaultColor(context, android.R.attr.colorBackground)
+
+ private val colorLabelActive =
+ Utils.getColorAttrDefaultColor(context, android.R.attr.textColorPrimaryInverse)
+ private val colorLabelInactive =
+ Utils.getColorAttrDefaultColor(context, android.R.attr.textColorPrimary)
+ private val colorLabelUnavailable =
+ Utils.getColorAttrDefaultColor(context, android.R.attr.textColorTertiary)
+
+ private lateinit var label: TextView
+ protected lateinit var secondaryLabel: TextView
+ private lateinit var labelContainer: IgnorableChildLinearLayout
+ protected lateinit var sideView: ViewGroup
+ private lateinit var customDrawableView: ImageView
+ private lateinit var chevronView: ImageView
+
+ protected var showRippleEffect = true
+
+ private lateinit var ripple: RippleDrawable
+ private lateinit var colorBackgroundDrawable: Drawable
+ private var paintColor: Int = 0
+ private var paintAnimator: ValueAnimator? = null
+ private var labelAnimator: ValueAnimator? = null
+ private var secondaryLabelAnimator: ValueAnimator? = null
+
+ private var accessibilityClass: String? = null
+ private var stateDescriptionDeltas: CharSequence? = null
+ private var lastStateDescription: CharSequence? = null
+ private var tileState = false
+ private var lastState = INVALID
+
+ private val locInScreen = IntArray(2)
+
+ init {
+ setId(generateViewId())
+ orientation = LinearLayout.HORIZONTAL
+ gravity = Gravity.CENTER_VERTICAL or Gravity.START
+ importantForAccessibility = IMPORTANT_FOR_ACCESSIBILITY_YES
+ clipChildren = false
+ clipToPadding = false
+ isFocusable = true
+ background = createTileBackground()
+ paintColor = getCircleColor(QSTile.State.DEFAULT_STATE)
+ colorBackgroundDrawable.setTint(paintColor)
+
+ val padding = resources.getDimensionPixelSize(R.dimen.qs_tile_padding)
+ val startPadding = resources.getDimensionPixelSize(R.dimen.qs_tile_start_padding)
+ setPaddingRelative(startPadding, padding, padding, padding)
+
+ val iconSize = resources.getDimensionPixelSize(R.dimen.qs_icon_size)
+ addView(_icon, LayoutParams(iconSize, iconSize))
+
+ createAndAddLabels()
+ createAndAddSideView()
+ }
+
+ override fun onConfigurationChanged(newConfig: Configuration?) {
+ super.onConfigurationChanged(newConfig)
+ updateResources()
+ }
+
+ fun updateResources() {
+ FontSizeUtils.updateFontSize(label, R.dimen.qs_tile_text_size)
+ FontSizeUtils.updateFontSize(secondaryLabel, R.dimen.qs_tile_text_size)
+
+ val iconSize = context.resources.getDimensionPixelSize(R.dimen.qs_icon_size)
+ _icon.layoutParams.apply {
+ height = iconSize
+ width = iconSize
+ }
+
+ val padding = resources.getDimensionPixelSize(R.dimen.qs_tile_padding)
+ val startPadding = resources.getDimensionPixelSize(R.dimen.qs_tile_start_padding)
+ setPaddingRelative(startPadding, padding, padding, padding)
+
+ val labelMargin = resources.getDimensionPixelSize(R.dimen.qs_label_container_margin)
+ (labelContainer.layoutParams as MarginLayoutParams).apply {
+ marginStart = labelMargin
+ }
+
+ (sideView.layoutParams as MarginLayoutParams).apply {
+ marginStart = labelMargin
+ }
+ (chevronView.layoutParams as MarginLayoutParams).apply {
+ height = iconSize
+ width = iconSize
+ }
+
+ val endMargin = resources.getDimensionPixelSize(R.dimen.qs_drawable_end_margin)
+ (customDrawableView.layoutParams as MarginLayoutParams).apply {
+ height = iconSize
+ marginEnd = endMargin
+ }
+ }
+
+ private fun createAndAddLabels() {
+ labelContainer = LayoutInflater.from(context)
+ .inflate(R.layout.qs_tile_label, this, false) as IgnorableChildLinearLayout
+ label = labelContainer.requireViewById(R.id.tile_label)
+ secondaryLabel = labelContainer.requireViewById(R.id.app_label)
+ if (collapsed) {
+ labelContainer.ignoreLastView = true
+ secondaryLabel.alpha = 0f
+ }
+ label.setTextColor(getLabelColor(QSTile.State.DEFAULT_STATE))
+ secondaryLabel.setTextColor(getSecondaryLabelColor(QSTile.State.DEFAULT_STATE))
+ addView(labelContainer)
+ }
+
+ private fun createAndAddSideView() {
+ sideView = LayoutInflater.from(context)
+ .inflate(R.layout.qs_tile_side_icon, this, false) as ViewGroup
+ customDrawableView = sideView.requireViewById(R.id.customDrawable)
+ chevronView = sideView.requireViewById(R.id.chevron)
+ addView(sideView)
+ }
+
+ fun createTileBackground(): Drawable {
+ ripple = mContext.getDrawable(R.drawable.qs_tile_background) as RippleDrawable
+ colorBackgroundDrawable = ripple.findDrawableByLayerId(R.id.background)
+ return ripple
+ }
+
+ override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
+ super.onLayout(changed, l, t, r, b)
+ if (heightOverride != HeightOverrideable.NO_OVERRIDE) {
+ bottom = top + heightOverride
+ }
+ }
+
+ override fun updateAccessibilityOrder(previousView: View?): View {
+ accessibilityTraversalAfter = previousView?.id ?: ID_NULL
+ return this
+ }
+
+ override fun getIcon(): QSIconView {
+ return _icon
+ }
+
+ override fun getIconWithBackground(): View {
+ return icon
+ }
+
+ override fun init(tile: QSTile) {
+ init(
+ { v: View? -> tile.click(this) },
+ { view: View? ->
+ tile.longClick(this)
+ true
+ }
+ )
+ }
+
+ private fun init(
+ click: OnClickListener?,
+ longClick: OnLongClickListener?
+ ) {
+ setOnClickListener(click)
+ onLongClickListener = longClick
+ }
+
+ override fun onStateChanged(state: QSTile.State) {
+ post {
+ handleStateChanged(state)
+ }
+ }
+
+ override fun getDetailY(): Int {
+ return top + height / 2
+ }
+
+ override fun hasOverlappingRendering(): Boolean {
+ // Avoid layers for this layout - we don't need them.
+ return false
+ }
+
+ override fun setClickable(clickable: Boolean) {
+ super.setClickable(clickable)
+ background = if (clickable && showRippleEffect) {
+ ripple.also {
+ // In case that the colorBackgroundDrawable was used as the background, make sure
+ // it has the correct callback instead of null
+ colorBackgroundDrawable.callback = it
+ }
+ } else {
+ colorBackgroundDrawable
+ }
+ }
+
+ override fun getLabelContainer(): View {
+ return labelContainer
+ }
+
+ override fun getSecondaryLabel(): View {
+ return secondaryLabel
+ }
+
+ override fun getSecondaryIcon(): View {
+ return sideView
+ }
+
+ // Accessibility
+
+ override fun onInitializeAccessibilityEvent(event: AccessibilityEvent) {
+ super.onInitializeAccessibilityEvent(event)
+ if (!TextUtils.isEmpty(accessibilityClass)) {
+ event.className = accessibilityClass
+ }
+ if (event.contentChangeTypes == AccessibilityEvent.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION &&
+ stateDescriptionDeltas != null) {
+ event.text.add(stateDescriptionDeltas)
+ stateDescriptionDeltas = null
+ }
+ }
+
+ override fun onInitializeAccessibilityNodeInfo(info: AccessibilityNodeInfo) {
+ super.onInitializeAccessibilityNodeInfo(info)
+ // Clear selected state so it is not announce by talkback.
+ info.isSelected = false
+ if (!TextUtils.isEmpty(accessibilityClass)) {
+ info.className = accessibilityClass
+ if (Switch::class.java.name == accessibilityClass) {
+ val label = resources.getString(
+ if (tileState) R.string.switch_bar_on else R.string.switch_bar_off)
+ // Set the text here for tests in
+ // android.platform.test.scenario.sysui.quicksettings. Can be removed when
+ // UiObject2 has a new getStateDescription() API and tests are updated.
+ info.text = label
+ info.isChecked = tileState
+ info.isCheckable = true
+ if (isLongClickable) {
+ info.addAction(
+ AccessibilityNodeInfo.AccessibilityAction(
+ AccessibilityNodeInfo.AccessibilityAction.ACTION_LONG_CLICK.id,
+ resources.getString(
+ R.string.accessibility_long_click_tile)))
+ }
+ }
+ }
+ }
+
+ override fun toString(): String {
+ val sb = StringBuilder(javaClass.simpleName).append('[')
+ sb.append("locInScreen=(${locInScreen[0]}, ${locInScreen[1]})")
+ sb.append(", iconView=$_icon")
+ sb.append(", tileState=$tileState")
+ sb.append("]")
+ return sb.toString()
+ }
+
+ // HANDLE STATE CHANGES RELATED METHODS
+
+ protected open fun handleStateChanged(state: QSTile.State) {
+ val allowAnimations = animationsEnabled()
+ showRippleEffect = state.showRippleEffect
+ isClickable = state.state != Tile.STATE_UNAVAILABLE
+ isLongClickable = state.handlesLongClick
+ icon.setIcon(state, allowAnimations)
+ contentDescription = state.contentDescription
+
+ // Background color animation
+ val newColor = getCircleColor(state.state)
+ if (allowAnimations) {
+ animateBackground(newColor)
+ } else {
+ clearBackgroundAnimator()
+ colorBackgroundDrawable.setTintList(ColorStateList.valueOf(newColor)).also {
+ paintColor = newColor
+ }
+ paintColor = newColor
+ }
+ //
+
+ // State handling and description
+ val stateDescription = StringBuilder()
+ val stateText = getStateText(state)
+ if (!TextUtils.isEmpty(stateText)) {
+ stateDescription.append(stateText)
+ if (TextUtils.isEmpty(state.secondaryLabel)) {
+ state.secondaryLabel = stateText
+ }
+ }
+ if (!TextUtils.isEmpty(state.stateDescription)) {
+ stateDescription.append(", ")
+ stateDescription.append(state.stateDescription)
+ if (lastState != INVALID && state.state == lastState &&
+ state.stateDescription != lastStateDescription) {
+ stateDescriptionDeltas = state.stateDescription
+ }
+ }
+
+ setStateDescription(stateDescription.toString())
+ lastStateDescription = state.stateDescription
+
+ accessibilityClass = if (state.state == Tile.STATE_UNAVAILABLE) {
+ null
+ } else {
+ state.expandedAccessibilityClassName
+ }
+
+ if (state is BooleanState) {
+ val newState = state.value
+ if (tileState != newState) {
+ tileState = newState
+ }
+ }
+ //
+
+ // Labels
+ if (!Objects.equals(label.text, state.label)) {
+ label.text = state.label
+ }
+ if (!Objects.equals(secondaryLabel.text, state.secondaryLabel)) {
+ secondaryLabel.text = state.secondaryLabel
+ secondaryLabel.visibility = if (TextUtils.isEmpty(state.secondaryLabel)) {
+ GONE
+ } else {
+ VISIBLE
+ }
+ }
+
+ if (allowAnimations) {
+ animateLabelColor(getLabelColor(state.state))
+ animateSecondaryLabelColor(getSecondaryLabelColor(state.state))
+ } else {
+ label.setTextColor(getLabelColor(state.state))
+ secondaryLabel.setTextColor(getSecondaryLabelColor(state.state))
+ }
+
+ // Right side icon
+ loadSideViewDrawableIfNecessary(state)
+ chevronView.imageTintList = ColorStateList.valueOf(getSecondaryLabelColor(state.state))
+
+ label.isEnabled = !state.disabledByPolicy
+
+ lastState = state.state
+ }
+
+ private fun loadSideViewDrawableIfNecessary(state: QSTile.State) {
+ if (state.sideViewCustomDrawable != null) {
+ customDrawableView.setImageDrawable(state.sideViewCustomDrawable)
+ customDrawableView.visibility = VISIBLE
+ chevronView.visibility = GONE
+ } else if (state !is BooleanState || state.forceExpandIcon) {
+ customDrawableView.setImageDrawable(null)
+ customDrawableView.visibility = GONE
+ chevronView.visibility = VISIBLE
+ } else {
+ customDrawableView.setImageDrawable(null)
+ customDrawableView.visibility = GONE
+ chevronView.visibility = GONE
+ }
+ }
+
+ private fun getStateText(state: QSTile.State): String {
+ return if (state.disabledByPolicy) {
+ context.getString(R.string.tile_disabled)
+ } else if (state.state == Tile.STATE_UNAVAILABLE) {
+ context.getString(R.string.tile_unavailable)
+ } else if (state is BooleanState) {
+ if (state.state == Tile.STATE_INACTIVE) {
+ context.getString(R.string.switch_bar_off)
+ } else {
+ context.getString(R.string.switch_bar_on)
+ }
+ } else {
+ ""
+ }
+ }
+
+ /*
+ * The view should not be animated if it's not on screen and no part of it is visible.
+ */
+ protected open fun animationsEnabled(): Boolean {
+ if (!isShown) {
+ return false
+ }
+ if (alpha != 1f) {
+ return false
+ }
+ getLocationOnScreen(locInScreen)
+ return locInScreen.get(1) >= -height
+ }
+
+ private fun animateBackground(newBackgroundColor: Int) {
+ if (newBackgroundColor != paintColor) {
+ clearBackgroundAnimator()
+ paintAnimator = ValueAnimator.ofArgb(paintColor, newBackgroundColor)
+ .setDuration(QSIconViewImpl.QS_ANIM_LENGTH).apply {
+ addUpdateListener { animation: ValueAnimator ->
+ val c = animation.animatedValue as Int
+ colorBackgroundDrawable.setTintList(ColorStateList.valueOf(c)).also {
+ paintColor = c
+ }
+ }
+ start()
+ }
+ }
+ }
+
+ private fun animateLabelColor(color: Int) {
+ val currentColor = label.textColors.defaultColor
+ if (currentColor != color) {
+ clearLabelAnimator()
+ labelAnimator = ValueAnimator.ofArgb(currentColor, color)
+ .setDuration(QSIconViewImpl.QS_ANIM_LENGTH).apply {
+ addUpdateListener {
+ label.setTextColor(it.animatedValue as Int)
+ }
+ start()
+ }
+ }
+ }
+
+ private fun animateSecondaryLabelColor(color: Int) {
+ val currentColor = secondaryLabel.textColors.defaultColor
+ if (currentColor != color) {
+ clearSecondaryLabelAnimator()
+ secondaryLabelAnimator = ValueAnimator.ofArgb(currentColor, color)
+ .setDuration(QSIconViewImpl.QS_ANIM_LENGTH).apply {
+ addUpdateListener {
+ secondaryLabel.setTextColor(it.animatedValue as Int)
+ }
+ start()
+ }
+ }
+ }
+
+ private fun clearBackgroundAnimator() {
+ paintAnimator?.cancel()?.also { paintAnimator = null }
+ }
+
+ private fun clearLabelAnimator() {
+ labelAnimator?.cancel()?.also { labelAnimator = null }
+ }
+
+ private fun clearSecondaryLabelAnimator() {
+ secondaryLabelAnimator?.cancel()?.also { secondaryLabelAnimator = null }
+ }
+
+ private fun getCircleColor(state: Int): Int {
+ return when (state) {
+ Tile.STATE_ACTIVE -> colorActive
+ Tile.STATE_INACTIVE -> colorInactive
+ Tile.STATE_UNAVAILABLE -> colorUnavailable
+ else -> {
+ Log.e(TAG, "Invalid state $state")
+ 0
+ }
+ }
+ }
+
+ private fun getLabelColor(state: Int): Int {
+ return when (state) {
+ Tile.STATE_ACTIVE -> colorLabelActive
+ Tile.STATE_INACTIVE -> colorLabelInactive
+ Tile.STATE_UNAVAILABLE -> colorLabelUnavailable
+ else -> {
+ Log.e(TAG, "Invalid state $state")
+ 0
+ }
+ }
+ }
+
+ private fun getSecondaryLabelColor(state: Int): Int {
+ return when (state) {
+ Tile.STATE_ACTIVE -> colorLabelActive
+ Tile.STATE_INACTIVE, Tile.STATE_UNAVAILABLE -> colorLabelUnavailable
+ else -> {
+ Log.e(TAG, "Invalid state $state")
+ 0
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java
index 5dcbf49..577c0d8 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java
@@ -99,7 +99,9 @@
@Override
public SignalState newTileState() {
- return new SignalState();
+ SignalState s = new SignalState();
+ s.forceExpandIcon = true;
+ return s;
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/QuickAccessWalletTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/QuickAccessWalletTile.java
index d1b74cd..85b835a 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/QuickAccessWalletTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/QuickAccessWalletTile.java
@@ -174,7 +174,7 @@
} else {
state.state = Tile.STATE_UNAVAILABLE;
}
- state.sideViewDrawable = isDeviceLocked ? null : mCardViewDrawable;
+ state.sideViewCustomDrawable = isDeviceLocked ? null : mCardViewDrawable;
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java
index ef2c1c9..7bde64b 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java
@@ -129,6 +129,8 @@
state.contentDescription = state.label;
state.expandedAccessibilityClassName = Switch.class.getName();
state.state = state.value ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE;
+ state.secondaryLabel = state.value ? "" :
+ mContext.getString(R.string.quick_settings_work_mode_paused);
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
index 1ec785d47..63adbd0 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
@@ -933,6 +933,21 @@
}
}
+ public void notifyImeWindowStatus(int displayId, IBinder token, int vis, int backDisposition,
+ boolean showImeSwitcher) {
+ try {
+ if (mOverviewProxy != null) {
+ mOverviewProxy.onImeWindowStatusChanged(displayId, token, vis, backDisposition,
+ showImeSwitcher);
+ } else {
+ Log.e(TAG_OPS, "Failed to get overview proxy for setting IME status.");
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG_OPS, "Failed to call notifyImeWindowStatus()", e);
+ }
+
+ }
+
private void updateEnabledState() {
final int currentUser = ActivityManagerWrapper.getInstance().getCurrentUserId();
mIsEnabled = mContext.getPackageManager().resolveServiceAsUser(mQuickStepIntent,
@@ -983,5 +998,7 @@
default void onAssistantProgress(@FloatRange(from = 0.0, to = 1.0) float progress) {}
default void onAssistantGestureCompletion(float velocity) {}
default void startAssistant(Bundle bundle) {}
+ default void onImeWindowStatusChanged(int displayId, IBinder token, int vis,
+ int backDisposition, boolean showImeSwitcher) {}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ActionProxyReceiver.java b/packages/SystemUI/src/com/android/systemui/screenshot/ActionProxyReceiver.java
index df9fc63..17e94c4 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ActionProxyReceiver.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ActionProxyReceiver.java
@@ -88,7 +88,7 @@
? ACTION_TYPE_EDIT
: ACTION_TYPE_SHARE;
mScreenshotSmartActions.notifyScreenshotAction(
- context, intent.getStringExtra(EXTRA_ID), actionType, false);
+ context, intent.getStringExtra(EXTRA_ID), actionType, false, null);
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/DeleteScreenshotReceiver.java b/packages/SystemUI/src/com/android/systemui/screenshot/DeleteScreenshotReceiver.java
index 35839f3..8d44205 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/DeleteScreenshotReceiver.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/DeleteScreenshotReceiver.java
@@ -62,7 +62,7 @@
});
if (intent.getBooleanExtra(EXTRA_SMART_ACTIONS_ENABLED, false)) {
mScreenshotSmartActions.notifyScreenshotAction(
- context, intent.getStringExtra(EXTRA_ID), ACTION_TYPE_DELETE, false);
+ context, intent.getStringExtra(EXTRA_ID), ACTION_TYPE_DELETE, false, null);
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotNotificationSmartActionsProvider.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotNotificationSmartActionsProvider.java
index 6ebab8a..3eafbfb 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotNotificationSmartActionsProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotNotificationSmartActionsProvider.java
@@ -21,6 +21,7 @@
import android.app.Notification;
import android.content.ComponentName;
+import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.UserHandle;
@@ -107,7 +108,8 @@
* @param action type of notification action invoked.
* @param isSmartAction whether action invoked was a smart action.
*/
- public void notifyAction(String screenshotId, String action, boolean isSmartAction) {
+ public void notifyAction(String screenshotId, String action, boolean isSmartAction,
+ Intent intent) {
if (DEBUG_ACTIONS) {
Log.d(TAG, "SmartActions: notifyAction: return without notify");
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotSmartActions.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotSmartActions.java
index 99238cd..0527818 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotSmartActions.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotSmartActions.java
@@ -26,6 +26,7 @@
import android.app.Notification;
import android.content.ComponentName;
import android.content.Context;
+import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Handler;
@@ -165,7 +166,7 @@
}
void notifyScreenshotAction(Context context, String screenshotId, String action,
- boolean isSmartAction) {
+ boolean isSmartAction, Intent intent) {
try {
ScreenshotNotificationSmartActionsProvider provider =
SystemUIFactory.getInstance().createScreenshotNotificationSmartActionsProvider(
@@ -174,7 +175,7 @@
Log.d(TAG, String.format("%s notifyAction: %s id=%s, isSmartAction=%b",
provider.getClass(), action, screenshotId, isSmartAction));
}
- provider.notifyAction(screenshotId, action, isSmartAction);
+ provider.notifyAction(screenshotId, action, isSmartAction, intent);
} catch (Throwable e) {
Log.e(TAG, "Error in notifyScreenshotAction: ", e);
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/SmartActionsReceiver.java b/packages/SystemUI/src/com/android/systemui/screenshot/SmartActionsReceiver.java
index 3ad922b..f703058 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/SmartActionsReceiver.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/SmartActionsReceiver.java
@@ -60,6 +60,7 @@
}
mScreenshotSmartActions.notifyScreenshotAction(
- context, intent.getStringExtra(EXTRA_ID), actionType, true);
+ context, intent.getStringExtra(EXTRA_ID), actionType, true,
+ pendingIntent.getIntent());
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
index a072de8..5daee6c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
@@ -492,8 +492,12 @@
return UserHandle.USER_NULL;
}
- @VisibleForTesting
- protected void setVisible(boolean visible) {
+ /**
+ * Sets the visibility of keyguard bottom area, and if the indications are updatable.
+ *
+ * @param visible true to make the area visible and update the indication, false otherwise.
+ */
+ public void setVisible(boolean visible) {
mVisible = visible;
mIndicationArea.setVisibility(visible ? VISIBLE : GONE);
if (visible) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
index 8f462fe..e49ca13 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java
@@ -31,6 +31,7 @@
import android.view.accessibility.AccessibilityNodeInfo;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.systemui.animation.Interpolators;
import com.android.systemui.R;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.statusbar.notification.NotificationUtils;
@@ -176,7 +177,13 @@
viewState.height = getIntrinsicHeight();
viewState.zTranslation = ambientState.getBaseZHeight();
viewState.clipTopAmount = 0;
- viewState.alpha = 1f - ambientState.getHideAmount();
+
+ if (ambientState.isExpansionChanging() && !ambientState.isOnKeyguard()) {
+ viewState.alpha = Interpolators.getNotificationScrimAlpha(
+ ambientState.getExpansionFraction());
+ } else {
+ viewState.alpha = 1f - ambientState.getHideAmount();
+ }
viewState.belowSpeedBump = mHostLayoutController.getSpeedBumpIndex() == 0;
viewState.hideSensitive = false;
viewState.xTranslation = getTranslationX();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java
index fad7480..eb7854e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java
@@ -16,6 +16,7 @@
package com.android.systemui.statusbar.dagger;
+import android.app.IActivityManager;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Handler;
@@ -68,6 +69,7 @@
import com.android.wm.shell.bubbles.Bubbles;
import java.util.Optional;
+import java.util.concurrent.Executor;
import dagger.Binds;
import dagger.Lazy;
@@ -239,10 +241,13 @@
CommonNotifCollection notifCollection,
FeatureFlags featureFlags,
SystemClock systemClock,
- ActivityStarter activityStarter) {
+ ActivityStarter activityStarter,
+ @Main Executor mainExecutor,
+ IActivityManager iActivityManager) {
OngoingCallController ongoingCallController =
new OngoingCallController(
- notifCollection, featureFlags, systemClock, activityStarter);
+ notifCollection, featureFlags, systemClock, activityStarter, mainExecutor,
+ iActivityManager);
ongoingCallController.init();
return ongoingCallController;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/events/PrivacyDotViewController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/events/PrivacyDotViewController.kt
index eb3a17f..2481ed4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/events/PrivacyDotViewController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/events/PrivacyDotViewController.kt
@@ -17,20 +17,25 @@
package com.android.systemui.statusbar.events
import android.animation.Animator
-import android.animation.AnimatorListenerAdapter
-import android.animation.ObjectAnimator
import android.annotation.UiThread
import android.util.Log
import android.view.Gravity
import android.view.View
import android.widget.FrameLayout
+import com.android.internal.annotations.GuardedBy
import com.android.systemui.animation.Interpolators
import com.android.systemui.R
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
+import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.statusbar.phone.StatusBarLocationPublisher
import com.android.systemui.statusbar.phone.StatusBarMarginUpdatedListener
+import com.android.systemui.util.concurrency.DelayableExecutor
+import com.android.systemui.util.leak.RotationUtils.ROTATION_LANDSCAPE
+import com.android.systemui.util.leak.RotationUtils.ROTATION_NONE
+import com.android.systemui.util.leak.RotationUtils.ROTATION_SEASCAPE
+import com.android.systemui.util.leak.RotationUtils.ROTATION_UPSIDE_DOWN
import java.lang.IllegalStateException
import java.util.concurrent.Executor
@@ -54,31 +59,33 @@
@SysUISingleton
class PrivacyDotViewController @Inject constructor(
@Main private val mainExecutor: Executor,
+ private val stateController: StatusBarStateController,
private val locationPublisher: StatusBarLocationPublisher,
private val animationScheduler: SystemStatusAnimationScheduler
) {
- private var rotation = 0
- private var leftSize = 0
- private var rightSize = 0
-
private var sbHeightPortrait = 0
private var sbHeightLandscape = 0
- private var hasMultipleHeights = false
- private var needsHeightUpdate = false
- private var needsRotationUpdate = false
- private var needsMarginUpdate = false
-
private lateinit var tl: View
private lateinit var tr: View
private lateinit var bl: View
private lateinit var br: View
- // Track which corner is active (based on orientation + RTL)
- private var designatedCorner: View? = null
+ // Only can be modified on @UiThread
+ private var currentViewState: ViewState = ViewState()
+
+ @GuardedBy("lock")
+ private var nextViewState: ViewState = currentViewState.copy()
+ set(value) {
+ field = value
+ scheduleUpdate()
+ }
+ private val lock = Object()
+ private var cancelRunnable: Runnable? = null
// Privacy dots are created in ScreenDecoration's UiThread, which is not the main thread
- private var uiExecutor: Executor? = null
+ private var uiExecutor: DelayableExecutor? = null
+ private var e: DelayableExecutor? = null
private val views: Sequence<View>
get() = if (!this::tl.isInitialized) sequenceOf() else sequenceOf(tl, tr, br, bl)
@@ -89,29 +96,78 @@
setStatusBarMargins(marginLeft, marginRight)
}
})
+
+ stateController.addCallback(object : StatusBarStateController.StateListener {
+ override fun onExpandedChanged(isExpanded: Boolean) {
+ setStatusBarExpanded(isExpanded)
+ }
+ })
}
- fun setUiExecutor(e: Executor) {
+ fun setUiExecutor(e: DelayableExecutor) {
uiExecutor = e
}
@UiThread
- fun updateRotation(rot: Int) {
- dlog("updateRotation: ")
- if (rot == rotation) {
- return
+ fun setNewRotation(rot: Int) {
+ dlog("updateRotation: $rot")
+
+ synchronized(lock) {
+ if (rot == nextViewState.rotation) {
+ return
+ }
}
- // A rotation has started, hide the views to avoid flicker
+ // If we rotated, hide all dotes until the next state resolves
setCornerVisibilities(View.INVISIBLE)
- if (hasMultipleHeights && (rotation % 2) != (rot % 2)) {
- // we've changed from vertical to horizontal; update status bar height
- needsHeightUpdate = true
- }
+ val newCorner = selectDesignatedCorner(rot)
+ val index = newCorner.cornerIndex()
- rotation = rot
- needsRotationUpdate = true
+ val h = when (rot) {
+ ROTATION_NONE, ROTATION_UPSIDE_DOWN -> sbHeightPortrait
+ ROTATION_LANDSCAPE, ROTATION_SEASCAPE -> sbHeightLandscape
+ else -> 0
+ }
+ synchronized(lock) {
+ nextViewState = nextViewState.copy(
+ rotation = rot,
+ height = h,
+ designatedCorner = newCorner,
+ cornerIndex = index)
+ }
+ }
+
+ @UiThread
+ private fun hideDotView(dot: View, animate: Boolean) {
+ dot.clearAnimation()
+ if (animate) {
+ dot.animate()
+ .setDuration(DURATION)
+ .setInterpolator(Interpolators.ALPHA_OUT)
+ .alpha(0f)
+ .withEndAction { dot.visibility = View.INVISIBLE }
+ .start()
+ } else {
+ dot.visibility = View.INVISIBLE
+ }
+ }
+
+ @UiThread
+ private fun showDotView(dot: View, animate: Boolean) {
+ dot.clearAnimation()
+ if (animate) {
+ dot.visibility = View.VISIBLE
+ dot.alpha = 0f
+ dot.animate()
+ .alpha(1f)
+ .setDuration(DURATION)
+ .setInterpolator(Interpolators.ALPHA_IN)
+ .start()
+ } else {
+ dot.visibility = View.VISIBLE
+ dot.alpha = 1f
+ }
}
@UiThread
@@ -127,14 +183,14 @@
// Update the gravity and margins of the privacy views
@UiThread
- private fun updateRotations() {
+ private fun updateRotations(rotation: Int) {
// To keep a view in the corner, its gravity is always the description of its current corner
// Therefore, just figure out which view is in which corner. This turns out to be something
// like (myCorner - rot) mod 4, where topLeft = 0, topRight = 1, etc. and portrait = 0, and
// rotating the device counter-clockwise increments rotation by 1
views.forEach { corner ->
- val rotatedCorner = rotatedCorner(cornerForView(corner))
+ val rotatedCorner = rotatedCorner(cornerForView(corner), rotation)
(corner.layoutParams as FrameLayout.LayoutParams).apply {
gravity = rotatedCorner.toGravity()
}
@@ -147,26 +203,24 @@
}
@UiThread
- private fun updateCornerSizes() {
+ private fun updateCornerSizes(l: Int, r: Int, rotation: Int) {
views.forEach { corner ->
- val rotatedCorner = rotatedCorner(cornerForView(corner))
- val w = widthForCorner(rotatedCorner)
- Log.d(TAG, "updateCornerSizes: setting (${cornerForView(corner)}) to $w")
+ val rotatedCorner = rotatedCorner(cornerForView(corner), rotation)
+ val w = widthForCorner(rotatedCorner, l, r)
(corner.layoutParams as FrameLayout.LayoutParams).width = w
- corner.requestLayout()
}
}
// Designated view will be the one at statusbar's view.END
@UiThread
- private fun selectDesignatedCorner(): View? {
+ private fun selectDesignatedCorner(r: Int): View? {
if (!this::tl.isInitialized) {
return null
}
val isRtl = tl.isLayoutRtl
- return when (rotation) {
+ return when (r) {
0 -> if (isRtl) tl else tr
1 -> if (isRtl) tr else br
2 -> if (isRtl) br else bl
@@ -177,23 +231,17 @@
// Track the current designated corner and maybe animate to a new rotation
@UiThread
- private fun updateDesignatedCorner(newCorner: View) {
- designatedCorner = newCorner
-
- if (animationScheduler.hasPersistentDot) {
- fadeInDot()
- }
- }
-
- @UiThread
- private fun fadeInDot() {
- designatedCorner?.let { dot ->
- dot.visibility = View.VISIBLE
- dot.alpha = 0f
- dot.animate()
- .alpha(1.0f)
- .setDuration(300)
- .start()
+ private fun updateDesignatedCorner(newCorner: View?, shouldShowDot: Boolean) {
+ if (shouldShowDot) {
+ newCorner?.apply {
+ clearAnimation()
+ visibility = View.VISIBLE
+ alpha = 0f
+ animate()
+ .alpha(1.0f)
+ .setDuration(300)
+ .start()
+ }
}
}
@@ -214,7 +262,7 @@
}
}
- private fun rotatedCorner(corner: Int): Int {
+ private fun rotatedCorner(corner: Int, rotation: Int): Int {
var modded = corner - rotation
if (modded < 0) {
modded += 4
@@ -223,10 +271,10 @@
return modded
}
- private fun widthForCorner(corner: Int): Int {
+ private fun widthForCorner(corner: Int, left: Int, right: Int): Int {
return when (corner) {
- TOP_LEFT, BOTTOM_LEFT -> leftSize
- TOP_RIGHT, BOTTOM_RIGHT -> rightSize
+ TOP_LEFT, BOTTOM_LEFT -> left
+ TOP_RIGHT, BOTTOM_RIGHT -> right
else -> throw IllegalArgumentException("Unknown corner")
}
}
@@ -244,10 +292,16 @@
bl = bottomLeft
br = bottomRight
- designatedCorner = selectDesignatedCorner()
+ val dc = selectDesignatedCorner(0)
+ val index = dc.cornerIndex()
+
mainExecutor.execute {
animationScheduler.addCallback(systemStatusAnimationCallback)
}
+
+ synchronized(lock) {
+ nextViewState = nextViewState.copy(designatedCorner = dc, cornerIndex = index)
+ }
}
/**
@@ -257,8 +311,6 @@
fun setStatusBarHeights(portrait: Int, landscape: Int) {
sbHeightPortrait = portrait
sbHeightLandscape = landscape
-
- hasMultipleHeights = portrait != landscape
}
/**
@@ -268,85 +320,109 @@
* @param right space between the status bar contents and the right side of the screen
*/
private fun setStatusBarMargins(left: Int, right: Int) {
- leftSize = left
- rightSize = right
-
- needsMarginUpdate = true
-
- // Margins come after PhoneStatusBarView does a layout pass, and so will always happen
- // after rotation changes. It is safe to execute the updates from here
- uiExecutor?.execute {
- doUpdates(needsRotationUpdate, needsHeightUpdate, needsMarginUpdate)
+ dlog("setStatusBarMargins l=$left r=$right")
+ synchronized(lock) {
+ nextViewState = nextViewState.copy(marginLeft = left, marginRight = right)
}
}
- private fun doUpdates(rot: Boolean, height: Boolean, width: Boolean) {
- dlog("doUpdates: ")
- var newDesignatedCorner: View? = null
+ /**
+ * We won't show the dot when quick settings is showing
+ */
+ private fun setStatusBarExpanded(expanded: Boolean) {
+ synchronized(lock) {
+ nextViewState = nextViewState.copy(hideDotForQuickSettings = expanded)
+ }
+ }
- if (rot) {
- needsRotationUpdate = false
- updateRotations()
- newDesignatedCorner = selectDesignatedCorner()
+ private fun scheduleUpdate() {
+ dlog("scheduleUpdate: ")
+
+ cancelRunnable?.run()
+ cancelRunnable = uiExecutor?.executeDelayed({
+ processNextViewState()
+ }, 100)
+ }
+
+ @UiThread
+ private fun processNextViewState() {
+ dlog("processNextViewState: ")
+
+ val newState: ViewState
+ synchronized(lock) {
+ newState = nextViewState.copy()
}
- if (height) {
- needsHeightUpdate = false
- updateHeights(rotation)
+ resolveState(newState)
+ }
+
+ @UiThread
+ private fun resolveState(state: ViewState) {
+ dlog("resolveState $state")
+ if (state == currentViewState) {
+ dlog("resolveState: skipping")
+ return
}
- if (width) {
- needsMarginUpdate = false
- updateCornerSizes()
+ if (state.rotation != currentViewState.rotation) {
+ // A rotation has started, hide the views to avoid flicker
+ updateRotations(state.rotation)
}
- if (newDesignatedCorner != null && newDesignatedCorner != designatedCorner) {
- updateDesignatedCorner(newDesignatedCorner)
+ if (state.height != currentViewState.height) {
+ updateHeights(state.rotation)
}
+
+ if (state.marginLeft != currentViewState.marginLeft ||
+ state.marginRight != currentViewState.marginRight) {
+ updateCornerSizes(state.marginLeft, state.marginRight, state.rotation)
+ }
+
+ if (state.designatedCorner != currentViewState.designatedCorner) {
+ updateDesignatedCorner(state.designatedCorner, state.shouldShowDot())
+ }
+
+ if (state.needsLayout(currentViewState)) {
+ views.forEach { it.requestLayout() }
+ }
+
+ val shouldShow = state.shouldShowDot()
+ if (shouldShow != currentViewState.shouldShowDot()) {
+ if (shouldShow && state.designatedCorner != null) {
+ showDotView(state.designatedCorner, true)
+ } else if (!shouldShow && state.designatedCorner != null) {
+ hideDotView(state.designatedCorner, true)
+ }
+ }
+
+ currentViewState = state
}
private val systemStatusAnimationCallback: SystemStatusAnimationCallback =
object : SystemStatusAnimationCallback {
- override fun onSystemStatusAnimationTransitionToPersistentDot(
- showAnimation: Boolean
- ): Animator? {
- if (designatedCorner == null) {
- return null
- } else if (!showAnimation) {
- uiExecutor?.execute { fadeInDot() }
- return null
+ override fun onSystemStatusAnimationTransitionToPersistentDot(): Animator? {
+ synchronized(lock) {
+ nextViewState = nextViewState.copy(systemPrivacyEventIsActive = true)
}
- val alpha = ObjectAnimator.ofFloat(
- designatedCorner, "alpha", 0f, 1f)
- alpha.duration = DURATION
- alpha.interpolator = Interpolators.ALPHA_OUT
- alpha.addListener(object : AnimatorListenerAdapter() {
- override fun onAnimationStart(animator: Animator) {
- uiExecutor?.execute { designatedCorner?.visibility = View.VISIBLE }
- }
- })
- return alpha
+ return null
}
override fun onHidePersistentDot(): Animator? {
- if (designatedCorner == null) {
- return null
+ synchronized(lock) {
+ nextViewState = nextViewState.copy(systemPrivacyEventIsActive = false)
}
- val alpha = ObjectAnimator.ofFloat(
- designatedCorner, "alpha", 1f, 0f)
- alpha.duration = DURATION
- alpha.interpolator = Interpolators.ALPHA_OUT
- alpha.addListener(object : AnimatorListenerAdapter() {
- override fun onAnimationEnd(animator: Animator) {
- uiExecutor?.execute { designatedCorner?.visibility = View.INVISIBLE }
- }
- })
- alpha.start()
return null
}
}
+
+ private fun View?.cornerIndex(): Int {
+ if (this != null) {
+ return cornerForView(this)
+ }
+ return -1
+ }
}
private fun dlog(s: String) {
@@ -382,3 +458,26 @@
else -> throw IllegalArgumentException("Not a corner")
}
}
+
+private data class ViewState(
+ // don't @ me with names
+ val systemPrivacyEventIsActive: Boolean = false,
+ val hideDotForQuickSettings: Boolean = false,
+ val statusBarExpanded: Boolean = false,
+ val rotation: Int = 0,
+ val height: Int = 0,
+ val marginLeft: Int = 0,
+ val marginRight: Int = 0,
+ val cornerIndex: Int = -1,
+ val designatedCorner: View? = null
+) {
+ fun shouldShowDot(): Boolean {
+ return systemPrivacyEventIsActive && !hideDotForQuickSettings
+ }
+
+ fun needsLayout(other: ViewState): Boolean {
+ return rotation != other.rotation ||
+ marginRight != other.marginRight ||
+ height != other.height
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemStatusAnimationScheduler.kt b/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemStatusAnimationScheduler.kt
index b6f0416..655ed41 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemStatusAnimationScheduler.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/events/SystemStatusAnimationScheduler.kt
@@ -107,7 +107,7 @@
scheduleEvent(event)
} else if (event.forceVisible) {
hasPersistentDot = true
- notifyTransitionToPersistentDot(showAnimation = false)
+ notifyTransitionToPersistentDot()
}
} else {
if (DEBUG) {
@@ -202,7 +202,7 @@
aSet2.play(chipAnimator).before(systemAnimator)
if (hasPersistentDot) {
- val dotAnim = notifyTransitionToPersistentDot(showAnimation = true)
+ val dotAnim = notifyTransitionToPersistentDot()
if (dotAnim != null) aSet2.playTogether(systemAnimator, dotAnim)
}
@@ -214,9 +214,9 @@
}, DELAY)
}
- private fun notifyTransitionToPersistentDot(showAnimation: Boolean): Animator? {
+ private fun notifyTransitionToPersistentDot(): Animator? {
val anims: List<Animator> = listeners.mapNotNull {
- it.onSystemStatusAnimationTransitionToPersistentDot(showAnimation)
+ it.onSystemStatusAnimationTransitionToPersistentDot()
}
if (anims.isNotEmpty()) {
val aSet = AnimatorSet()
@@ -326,9 +326,7 @@
@JvmDefault fun onSystemChromeAnimationEnd() {}
// Best method name, change my mind
- @JvmDefault fun onSystemStatusAnimationTransitionToPersistentDot(
- showAnimation: Boolean
- ): Animator? { return null }
+ @JvmDefault fun onSystemStatusAnimationTransitionToPersistentDot(): Animator? { return null }
@JvmDefault fun onHidePersistentDot(): Animator? { return null }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java
index 48f34b3..0548611 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java
@@ -51,6 +51,7 @@
public class NotificationTemplateViewWrapper extends NotificationHeaderViewWrapper {
private final int mFullHeaderTranslation;
+ private final boolean mAllowHideHeader;
protected ImageView mRightIcon;
protected ImageView mLeftIcon;
private ProgressBar mProgressBar;
@@ -71,6 +72,7 @@
protected NotificationTemplateViewWrapper(Context ctx, View view,
ExpandableNotificationRow row) {
super(ctx, view, row);
+ mAllowHideHeader = ctx.getResources().getBoolean(R.bool.heads_up_notification_hides_header);
mTransformationHelper.setCustomTransformation(
new ViewTransformationHelper.CustomTransformation() {
@Override
@@ -249,7 +251,7 @@
super.onContentUpdated(row);
// With the modern templates, a large icon visually overlaps the header, so we can't
// hide the header, we must show it.
- mCanHideHeader = mNotificationHeader != null
+ mCanHideHeader = mAllowHideHeader && mNotificationHeader != null
&& (mRightIcon == null || mRightIcon.getVisibility() != VISIBLE);
if (row.getHeaderVisibleAmount() != DEFAULT_HEADER_VISIBLE_AMOUNT) {
setHeaderVisibleAmount(row.getHeaderVisibleAmount());
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 506d8a1..120f973 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -2068,6 +2068,7 @@
int height = 0;
float previousPaddingRequest = mPaddingBetweenElements;
int numShownItems = 0;
+ int numShownNotifs = 0;
boolean finish = false;
int maxDisplayedNotifications = mMaxDisplayedNotifications;
ExpandableView previousView = null;
@@ -2077,7 +2078,7 @@
if (expandableView.getVisibility() != View.GONE
&& !expandableView.hasNoContentHeight() && !footerViewOnLockScreen) {
boolean limitReached = maxDisplayedNotifications != -1
- && numShownItems >= maxDisplayedNotifications;
+ && numShownNotifs >= maxDisplayedNotifications;
final float viewHeight;
if (limitReached) {
viewHeight = mShelf.getIntrinsicHeight();
@@ -2090,7 +2091,11 @@
}
height += calculateGapHeight(previousView, expandableView, numShownItems);
height += viewHeight;
+
numShownItems++;
+ if (!(expandableView instanceof MediaHeaderView)) {
+ numShownNotifs++;
+ }
previousView = expandableView;
if (finish) {
break;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
index 413048d..d94d030 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java
@@ -24,6 +24,7 @@
import android.view.View;
import android.view.ViewGroup;
+import com.android.systemui.animation.Interpolators;
import com.android.systemui.R;
import com.android.systemui.statusbar.NotificationShelf;
import com.android.systemui.statusbar.notification.dagger.SilentHeader;
@@ -374,7 +375,13 @@
ExpandableView view = algorithmState.visibleChildren.get(i);
ExpandableViewState viewState = view.getViewState();
viewState.location = ExpandableViewState.LOCATION_UNKNOWN;
- viewState.alpha = 1f - ambientState.getHideAmount();
+
+ if (ambientState.isExpansionChanging() && !ambientState.isOnKeyguard()) {
+ viewState.alpha = Interpolators.getNotificationScrimAlpha(
+ ambientState.getExpansionFraction());
+ } else {
+ viewState.alpha = 1f - ambientState.getHideAmount();
+ }
if (view.mustStayOnScreen() && viewState.yTranslation >= 0) {
// Even if we're not scrolled away we're in view and we're also not in the
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
index 16bed6f..2b51b56 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CollapsedStatusBarFragment.java
@@ -105,12 +105,7 @@
private final OngoingCallListener mOngoingCallListener = new OngoingCallListener() {
@Override
- public void onOngoingCallStarted(boolean animate) {
- disable(getContext().getDisplayId(), mDisabled1, mDisabled2, animate);
- }
-
- @Override
- public void onOngoingCallEnded(boolean animate) {
+ public void onOngoingCallStateChanged(boolean animate) {
disable(getContext().getDisplayId(), mDisabled1, mDisabled2, animate);
}
};
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 ae68462..c911e3d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
@@ -220,17 +220,22 @@
*/
private void onFullyHidden() {
cancelShowRunnable();
- if (mRoot != null) {
- mRoot.setVisibility(View.INVISIBLE);
- }
+ setVisibility(View.INVISIBLE);
mFalsingCollector.onBouncerHidden();
DejankUtils.postAfterTraversal(mResetRunnable);
}
+ private void setVisibility(@View.Visibility int visibility) {
+ if (mRoot != null) {
+ mRoot.setVisibility(visibility);
+ dispatchVisibilityChanged();
+ }
+ }
+
private final Runnable mShowRunnable = new Runnable() {
@Override
public void run() {
- mRoot.setVisibility(View.VISIBLE);
+ setVisibility(View.VISIBLE);
showPromptReason(mBouncerPromptReason);
final CharSequence customMessage = mCallback.consumeCustomMessage();
if (customMessage != null) {
@@ -299,7 +304,7 @@
}
mIsAnimatingAway = false;
if (mRoot != null) {
- mRoot.setVisibility(View.INVISIBLE);
+ setVisibility(View.INVISIBLE);
if (destroyView) {
// We have a ViewFlipper that unregisters a broadcast when being detached, which may
@@ -436,7 +441,7 @@
mContainer.addView(mRoot, mContainer.getChildCount());
mStatusBarHeight = mRoot.getResources().getDimensionPixelOffset(
com.android.systemui.R.dimen.status_bar_height);
- mRoot.setVisibility(View.INVISIBLE);
+ setVisibility(View.INVISIBLE);
final WindowInsets rootInsets = mRoot.getRootWindowInsets();
if (rootInsets != null) {
@@ -533,6 +538,12 @@
}
}
+ private void dispatchVisibilityChanged() {
+ for (BouncerExpansionCallback callback : mExpansionCallbacks) {
+ callback.onVisibilityChanged(mRoot.getVisibility() == View.VISIBLE);
+ }
+ }
+
/**
* Apply keyguard configuration from the currently active resources. This can be called when the
* device configuration changes, to re-apply some resources that are qualified on the device
@@ -573,6 +584,13 @@
* to 1f {@link KeyguardBouncer#EXPANSION_HIDDEN} when fully hidden
*/
default void onExpansionChanged(float bouncerHideAmount) {}
+
+ /**
+ * Invoked when visibility of KeyguardBouncer has changed.
+ * Note the bouncer expansion can be {@link KeyguardBouncer#EXPANSION_VISIBLE}, but the
+ * view's visibility can be {@link View.INVISIBLE}.
+ */
+ default void onVisibilityChanged(boolean isVisible) {}
}
/** Create a {@link KeyguardBouncer} once a container and bouncer callback are available. */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardIndicationTextView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardIndicationTextView.java
index 5085e1c..d84bb90 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardIndicationTextView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardIndicationTextView.java
@@ -125,6 +125,7 @@
if (info != null) {
setTextColor(info.getTextColor());
setOnClickListener(info.getClickListener());
+ setClickable(info.getClickListener() != null);
final Drawable icon = info.getIcon();
if (icon != null) {
icon.setTint(getCurrentTextColor());
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java
index f9a644f..a3efcd2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java
@@ -697,16 +697,6 @@
if (isNaN(h)) {
Log.wtf(TAG, "ExpandedHeight set to NaN");
}
- if (mAmbientState.isExpansionChanging()
- && !mIsFlinging // Fling already uses interpolated height from end of swipe
- && !mAmbientState.isOnKeyguard()
- && !mAmbientState.isDozing()
- && !mAmbientState.isPulsing()) {
- final float fraction = h / mView.getHeight();
- final float interpolatedFraction = new PathInterpolator(0.2f, 0.8f, 0.8f, 1f)
- .getInterpolation(fraction);
- h = interpolatedFraction * mView.getHeight();
- }
maybeOverScrollForShadeFlingOpen(h);
if (mExpandLatencyTracking && h != 0f) {
DejankUtils.postAfterTraversal(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
index f1405de..ed7ab6cf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
@@ -673,11 +673,14 @@
}
}
+ // Disabling for now, but keeping the log
+ /*
mIconController.setIconVisibility(mSlotCamera, showCamera);
mIconController.setIconVisibility(mSlotMicrophone, showMicrophone);
if (mPrivacyItemController.getLocationAvailable()) {
mIconController.setIconVisibility(mSlotLocation, showLocation);
}
+ */
mPrivacyLogger.logStatusBarIconsVisible(showCamera, showMicrophone, showLocation);
}
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 a952db2..c34fa2f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -42,6 +42,7 @@
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.settingslib.Utils;
+import com.android.systemui.animation.Interpolators;
import com.android.systemui.DejankUtils;
import com.android.systemui.Dumpable;
import com.android.systemui.R;
@@ -810,15 +811,7 @@
}
private float getInterpolatedFraction() {
- float frac = mPanelExpansion;
- // let's start this 20% of the way down the screen
- frac = frac * 1.2f - 0.2f;
- if (frac <= 0) {
- return 0;
- } else {
- // woo, special effects
- return (float) (1f - 0.5f * (1f - Math.cos(3.14159f * Math.pow(1f - frac, 2f))));
- }
+ return Interpolators.getNotificationScrimAlpha(mPanelExpansion);
}
private void setScrimAlpha(ScrimView scrim, float alpha) {
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 bd17d00..cae7e35 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -393,7 +393,6 @@
private final Object mQueueLock = new Object();
- private final StatusBarIconController mIconController;
private final PulseExpansionHandler mPulseExpansionHandler;
private final NotificationWakeUpCoordinator mWakeUpCoordinator;
private final KeyguardBypassController mKeyguardBypassController;
@@ -720,7 +719,7 @@
LightBarController lightBarController,
AutoHideController autoHideController,
KeyguardUpdateMonitor keyguardUpdateMonitor,
- StatusBarIconController statusBarIconController,
+ StatusBarSignalPolicy signalPolicy,
PulseExpansionHandler pulseExpansionHandler,
NotificationWakeUpCoordinator notificationWakeUpCoordinator,
KeyguardBypassController keyguardBypassController,
@@ -806,7 +805,7 @@
mLightBarController = lightBarController;
mAutoHideController = autoHideController;
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
- mIconController = statusBarIconController;
+ mSignalPolicy = signalPolicy;
mPulseExpansionHandler = pulseExpansionHandler;
mWakeUpCoordinator = notificationWakeUpCoordinator;
mKeyguardBypassController = keyguardBypassController;
@@ -1015,7 +1014,6 @@
// Lastly, call to the icon policy to install/update all the icons.
mIconPolicy.init();
- mSignalPolicy = new StatusBarSignalPolicy(mContext, mIconController);
mKeyguardStateController.addCallback(this);
startKeyguard();
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 1ef84701..6ed375e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -129,6 +129,13 @@
}
updateStates();
}
+
+ @Override
+ public void onVisibilityChanged(boolean isVisible) {
+ if (mAlternateAuthInterceptor != null) {
+ mAlternateAuthInterceptor.onBouncerVisibilityChanged();
+ }
+ }
};
private final DockManager.DockEventListener mDockEventListener =
new DockManager.DockEventListener() {
@@ -1126,6 +1133,18 @@
}
/**
+ * Request to show the udfps affordance in a particular color. This can be used if an
+ * occluding app on the keyguard would like to request udfps. This method does nothing if
+ * {@link KeyguardUpdateMonitor#shouldListenForFingerprint} is false.
+ */
+ public void requestUdfps(boolean request, int color) {
+ if (mAlternateAuthInterceptor == null) {
+ return;
+ }
+ mAlternateAuthInterceptor.requestUdfps(request, color);
+ }
+
+ /**
* Delegate used to send show/reset events to an alternate authentication method instead of the
* regular pin/pattern/password bouncer.
*/
@@ -1174,5 +1193,19 @@
*/
void setBouncerExpansionChanged(float expansion);
+ /**
+ * called when the bouncer view visibility has changed.
+ */
+ void onBouncerVisibilityChanged();
+
+ /**
+ * Use when an app occluding the keyguard would like to give the user ability to
+ * unlock the device using udfps.
+ *
+ * @param color of the udfps icon. should have proper contrast with its background. only
+ * used if requestUdfps = true
+ */
+ void requestUdfps(boolean requestUdfps, int color);
+
}
}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java
index 3445826..142cf21 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java
@@ -25,6 +25,7 @@
import com.android.settingslib.mobile.TelephonyIcons;
import com.android.systemui.Dependency;
import com.android.systemui.R;
+import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController.IconState;
import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators;
@@ -33,12 +34,16 @@
import com.android.systemui.statusbar.policy.SecurityController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.tuner.TunerService.Tunable;
+import com.android.systemui.util.CarrierConfigTracker;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
+import javax.inject.Inject;
+/** Controls the signal policies for icons shown in the StatusBar. **/
+@SysUISingleton
public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallback,
SecurityController.SecurityControllerCallback, Tunable {
private static final String TAG = "StatusBarSignalPolicy";
@@ -57,6 +62,7 @@
private final NetworkController mNetworkController;
private final SecurityController mSecurityController;
private final Handler mHandler = Handler.getMain();
+ private final CarrierConfigTracker mCarrierConfigTracker;
private boolean mHideAirplane;
private boolean mHideMobile;
@@ -75,7 +81,9 @@
new ArrayList<CallIndicatorIconState>();
private WifiIconState mWifiIconState = new WifiIconState();
- public StatusBarSignalPolicy(Context context, StatusBarIconController iconController) {
+ @Inject
+ public StatusBarSignalPolicy(Context context, StatusBarIconController iconController,
+ CarrierConfigTracker carrierConfigTracker) {
mContext = context;
mSlotAirplane = mContext.getString(com.android.internal.R.string.status_bar_airplane);
@@ -95,6 +103,7 @@
Dependency.get(TunerService.class).addTunable(this, StatusBarIconController.ICON_HIDE_LIST);
mNetworkController.addCallback(this);
mSecurityController.addCallback(this);
+ mCarrierConfigTracker = carrierConfigTracker;
}
public void destroy() {
@@ -215,8 +224,12 @@
state.callStrengthResId = statusIcon.icon;
state.callStrengthDescription = statusIcon.contentDescription;
}
- mIconController.setCallStrengthIcons(mSlotCallStrength,
- CallIndicatorIconState.copyStates(mCallIndicatorStates));
+ if (mCarrierConfigTracker.getCallStrengthConfig(subId)) {
+ mIconController.setCallStrengthIcons(mSlotCallStrength,
+ CallIndicatorIconState.copyStates(mCallIndicatorStates));
+ } else {
+ mIconController.removeIcon(mSlotCallStrength, subId);
+ }
mIconController.setNoCallingIcons(mSlotNoCalling,
CallIndicatorIconState.copyStates(mCallIndicatorStates));
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java
index ae11a74..d0d2cb2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/dagger/StatusBarPhoneModule.java
@@ -88,10 +88,10 @@
import com.android.systemui.statusbar.phone.ScrimController;
import com.android.systemui.statusbar.phone.ShadeController;
import com.android.systemui.statusbar.phone.StatusBar;
-import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarLocationPublisher;
import com.android.systemui.statusbar.phone.StatusBarNotificationActivityStarter;
+import com.android.systemui.statusbar.phone.StatusBarSignalPolicy;
import com.android.systemui.statusbar.phone.StatusBarTouchableRegionManager;
import com.android.systemui.statusbar.phone.ongoingcall.OngoingCallController;
import com.android.systemui.statusbar.policy.BatteryController;
@@ -134,7 +134,7 @@
LightBarController lightBarController,
AutoHideController autoHideController,
KeyguardUpdateMonitor keyguardUpdateMonitor,
- StatusBarIconController statusBarIconController,
+ StatusBarSignalPolicy signalPolicy,
PulseExpansionHandler pulseExpansionHandler,
NotificationWakeUpCoordinator notificationWakeUpCoordinator,
KeyguardBypassController keyguardBypassController,
@@ -221,7 +221,7 @@
lightBarController,
autoHideController,
keyguardUpdateMonitor,
- statusBarIconController,
+ signalPolicy,
pulseExpansionHandler,
notificationWakeUpCoordinator,
keyguardBypassController,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallChronometer.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallChronometer.kt
new file mode 100644
index 0000000..1fe77fd
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallChronometer.kt
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.phone.ongoingcall
+
+import android.content.Context
+import android.util.AttributeSet
+
+import android.widget.Chronometer
+
+/**
+ * A [Chronometer] specifically for the ongoing call chip in the status bar.
+ *
+ * This class handles:
+ * 1) Setting the text width. If we used a basic WRAP_CONTENT for width, the chip width would
+ * change slightly each second because the width of each number is slightly different.
+ *
+ * Instead, we save the largest number width seen so far and ensure that the chip is at least
+ * that wide. This means the chip may get larger over time (e.g. in the transition from 59:59
+ * to 1:00:00), but never smaller.
+ *
+ * 2) Hiding the text if the time gets too long for the space available. Once the text has been
+ * hidden, it remains hidden for the duration of the call.
+ *
+ * Note that if the text was too big in portrait mode, resulting in the text being hidden, then the
+ * text will also be hidden in landscape (even if there is enough space for it in landscape).
+ */
+class OngoingCallChronometer @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyle: Int = 0
+) : Chronometer(context, attrs, defStyle) {
+
+ // Minimum width that the text view can be. Corresponds with the largest number width seen so
+ // far.
+ var minimumTextWidth: Int = 0
+
+ // True if the text is too long for the space available, so the text should be hidden.
+ var shouldHideText: Boolean = false
+
+ override fun setBase(base: Long) {
+ // These variables may have changed during the previous call, so re-set them before the new
+ // call starts.
+ minimumTextWidth = 0
+ shouldHideText = false
+ super.setBase(base)
+ }
+
+ override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
+ if (shouldHideText) {
+ setMeasuredDimension(0, 0)
+ return
+ }
+
+ // Evaluate how wide the text *wants* to be if it had unlimited space.
+ super.onMeasure(
+ MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
+ heightMeasureSpec)
+ val desiredTextWidth = measuredWidth
+
+ // Evaluate how wide the text *can* be based on the enforced constraints
+ val enforcedTextWidth = resolveSize(desiredTextWidth, widthMeasureSpec)
+
+ if (desiredTextWidth > enforcedTextWidth) {
+ shouldHideText = true
+ setMeasuredDimension(0, 0)
+ } else {
+ // It's possible that the current text could fit in a smaller width, but we don't want
+ // the chip to change size every second. Instead, keep it at the minimum required width.
+ minimumTextWidth = desiredTextWidth.coerceAtLeast(minimumTextWidth)
+ setMeasuredDimension(minimumTextWidth, MeasureSpec.getSize(heightMeasureSpec))
+ }
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt
index 51bb643..6d1df5b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallController.kt
@@ -16,6 +16,9 @@
package com.android.systemui.statusbar.phone.ongoingcall
+import android.app.ActivityManager
+import android.app.IActivityManager
+import android.app.IUidObserver
import android.app.Notification
import android.app.Notification.CallStyle.CALL_TYPE_ONGOING
import android.content.Intent
@@ -25,6 +28,7 @@
import com.android.systemui.R
import com.android.systemui.animation.ActivityLaunchAnimator
import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.statusbar.FeatureFlags
import com.android.systemui.statusbar.notification.collection.NotificationEntry
@@ -32,6 +36,7 @@
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener
import com.android.systemui.statusbar.policy.CallbackController
import com.android.systemui.util.time.SystemClock
+import java.util.concurrent.Executor
import javax.inject.Inject
/**
@@ -42,12 +47,17 @@
private val notifCollection: CommonNotifCollection,
private val featureFlags: FeatureFlags,
private val systemClock: SystemClock,
- private val activityStarter: ActivityStarter
+ private val activityStarter: ActivityStarter,
+ @Main private val mainExecutor: Executor,
+ private val iActivityManager: IActivityManager
) : CallbackController<OngoingCallListener> {
/** Null if there's no ongoing call. */
private var ongoingCallInfo: OngoingCallInfo? = null
+ /** True if the application managing the call is visible to the user. */
+ private var isCallAppVisible: Boolean = true
private var chipView: ViewGroup? = null
+ private var uidObserver: IUidObserver.Stub? = null
private val mListeners: MutableList<OngoingCallListener> = mutableListOf()
@@ -67,8 +77,9 @@
override fun onEntryUpdated(entry: NotificationEntry) {
if (isOngoingCallNotification(entry)) {
ongoingCallInfo = OngoingCallInfo(
- entry.sbn.notification.`when`,
- entry.sbn.notification.contentIntent.intent)
+ entry.sbn.notification.`when`,
+ entry.sbn.notification.contentIntent.intent,
+ entry.sbn.uid)
updateChip()
}
}
@@ -76,7 +87,10 @@
override fun onEntryRemoved(entry: NotificationEntry, reason: Int) {
if (isOngoingCallNotification(entry)) {
ongoingCallInfo = null
- mListeners.forEach { l -> l.onOngoingCallEnded(animate = true) }
+ mListeners.forEach { l -> l.onOngoingCallStateChanged(animate = true) }
+ if (uidObserver != null) {
+ iActivityManager.unregisterUidObserver(uidObserver)
+ }
}
}
}
@@ -100,9 +114,13 @@
}
/**
- * Returns true if there's an active ongoing call that can be displayed in a status bar chip.
+ * Returns true if there's an active ongoing call that should be displayed in a status bar chip.
*/
- fun hasOngoingCall(): Boolean = ongoingCallInfo != null
+ fun hasOngoingCall(): Boolean {
+ return ongoingCallInfo != null &&
+ // When the user is in the phone app, don't show the chip.
+ !isCallAppVisible
+ }
override fun addCallback(listener: OngoingCallListener) {
synchronized(mListeners) {
@@ -137,7 +155,9 @@
ActivityLaunchAnimator.Controller.fromView(it))
}
- mListeners.forEach { l -> l.onOngoingCallStarted(animate = true) }
+ setUpUidObserver(currentOngoingCallInfo)
+
+ mListeners.forEach { l -> l.onOngoingCallStateChanged(animate = true) }
} else {
// If we failed to update the chip, don't store the ongoing call info. Then
// [hasOngoingCall] will return false and we fall back to typical notification handling.
@@ -150,9 +170,52 @@
}
}
+ /**
+ * Sets up an [IUidObserver] to monitor the status of the application managing the ongoing call.
+ */
+ private fun setUpUidObserver(currentOngoingCallInfo: OngoingCallInfo) {
+ isCallAppVisible = isProcessVisibleToUser(
+ iActivityManager.getUidProcessState(currentOngoingCallInfo.uid, null))
+
+ uidObserver = object : IUidObserver.Stub() {
+ override fun onUidStateChanged(
+ uid: Int, procState: Int, procStateSeq: Long, capability: Int) {
+ if (uid == currentOngoingCallInfo.uid) {
+ val oldIsCallAppVisible = isCallAppVisible
+ isCallAppVisible = isProcessVisibleToUser(procState)
+ if (oldIsCallAppVisible != isCallAppVisible) {
+ // Animations may be run as a result of the call's state change, so ensure
+ // the listener is notified on the main thread.
+ mainExecutor.execute {
+ mListeners.forEach { l -> l.onOngoingCallStateChanged(animate = true) }
+ }
+ }
+ }
+ }
+
+ override fun onUidGone(uid: Int, disabled: Boolean) {}
+ override fun onUidActive(uid: Int) {}
+ override fun onUidIdle(uid: Int, disabled: Boolean) {}
+ override fun onUidCachedChanged(uid: Int, cached: Boolean) {}
+ }
+
+ iActivityManager.registerUidObserver(
+ uidObserver,
+ ActivityManager.UID_OBSERVER_PROCSTATE,
+ ActivityManager.PROCESS_STATE_UNKNOWN,
+ null
+ )
+ }
+
+ /** Returns true if the given [procState] represents a process that's visible to the user. */
+ private fun isProcessVisibleToUser(procState: Int): Boolean {
+ return procState <= ActivityManager.PROCESS_STATE_TOP
+ }
+
private class OngoingCallInfo(
val callStartTime: Long,
- val intent: Intent
+ val intent: Intent,
+ val uid: Int
)
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallListener.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallListener.kt
index 7c583a1..7a12430 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallListener.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallListener.kt
@@ -16,11 +16,13 @@
package com.android.systemui.statusbar.phone.ongoingcall
-/** A listener that's notified when an ongoing call is started or ended. */
+/** A listener that's notified when the state of an ongoing call has changed. */
interface OngoingCallListener {
- /** Called when an ongoing call is started. */
- fun onOngoingCallStarted(animate: Boolean)
- /** Called when an ongoing call is ended. */
- fun onOngoingCallEnded(animate: Boolean)
+ /**
+ * Called when the state of an ongoing call has changed in any way that may affect view
+ * visibility (including call starting, call stopping, application managing the call becoming
+ * visible or invisible).
+ */
+ fun onOngoingCallStateChanged(animate: Boolean)
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
index 044f52f..ce08075 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
@@ -61,6 +61,7 @@
import com.android.systemui.statusbar.policy.NetworkController.IconState;
import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators;
import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;
+import com.android.systemui.util.CarrierConfigTracker;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
@@ -78,6 +79,7 @@
private static final int IMS_TYPE_WLAN = 2;
private static final int IMS_TYPE_WLAN_CROSS_SIM = 3;
private final TelephonyManager mPhone;
+ private final CarrierConfigTracker mCarrierConfigTracker;
private final ImsMmTelManager mImsMmTelManager;
private final SubscriptionDefaults mDefaults;
private final String mNetworkNameDefault;
@@ -123,10 +125,12 @@
public MobileSignalController(Context context, Config config, boolean hasMobileData,
TelephonyManager phone, CallbackHandler callbackHandler,
NetworkControllerImpl networkController, SubscriptionInfo info,
- SubscriptionDefaults defaults, Looper receiverLooper) {
+ SubscriptionDefaults defaults, Looper receiverLooper,
+ CarrierConfigTracker carrierConfigTracker) {
super("MobileSignalController(" + info.getSubscriptionId() + ")", context,
NetworkCapabilities.TRANSPORT_CELLULAR, callbackHandler,
networkController);
+ mCarrierConfigTracker = carrierConfigTracker;
mConfig = config;
mPhone = phone;
mDefaults = defaults;
@@ -583,7 +587,7 @@
mTelephonyDisplayInfo = mobileStatus.telephonyDisplayInfo;
int lastVoiceState = mServiceState != null ? mServiceState.getState() : -1;
mServiceState = mobileStatus.serviceState;
- int currentVoiceState = mServiceState != null ? mServiceState.getState() : -1;
+ int currentVoiceState = mServiceState != null ? mServiceState.getState() : -1;
// Only update the no calling Status in the below scenarios
// 1. The first valid voice state has been received
// 2. The voice state has been changed and either the last or current state is
@@ -594,12 +598,29 @@
|| (lastVoiceState == ServiceState.STATE_IN_SERVICE
|| currentVoiceState == ServiceState.STATE_IN_SERVICE))) {
boolean isNoCalling = currentVoiceState != ServiceState.STATE_IN_SERVICE;
- IconState statusIcon = new IconState(isNoCalling, R.drawable.ic_qs_no_calling_sms,
+ isNoCalling &= !hideNoCalling();
+ IconState statusIcon = new IconState(isNoCalling,
+ R.drawable.ic_qs_no_calling_sms,
getTextIfExists(AccessibilityContentDescriptions.NO_CALLING).toString());
notifyCallStateChange(statusIcon, mSubscriptionInfo.getSubscriptionId());
}
}
+ void updateNoCallingState() {
+ int currentVoiceState = mServiceState != null ? mServiceState.getState() : -1;
+ boolean isNoCalling = currentVoiceState != ServiceState.STATE_IN_SERVICE;
+ isNoCalling &= !hideNoCalling();
+ IconState statusIcon = new IconState(isNoCalling,
+ R.drawable.ic_qs_no_calling_sms,
+ getTextIfExists(AccessibilityContentDescriptions.NO_CALLING).toString());
+ notifyCallStateChange(statusIcon, mSubscriptionInfo.getSubscriptionId());
+ }
+
+ private boolean hideNoCalling() {
+ return mNetworkController.hasDefaultNetwork()
+ && mCarrierConfigTracker.getNoCallingConfig(mSubscriptionInfo.getSubscriptionId());
+ }
+
private int getCallStrengthIcon(int level, boolean isWifi) {
return isWifi ? TelephonyIcons.WIFI_CALL_STRENGTH_ICONS[level]
: TelephonyIcons.MOBILE_CALL_STRENGTH_ICONS[level];
@@ -616,7 +637,9 @@
void refreshCallIndicator(SignalCallback callback) {
boolean isNoCalling = mServiceState != null
&& mServiceState.getState() != ServiceState.STATE_IN_SERVICE;
- IconState statusIcon = new IconState(isNoCalling, R.drawable.ic_qs_no_calling_sms,
+ isNoCalling &= !hideNoCalling();
+ IconState statusIcon = new IconState(isNoCalling,
+ R.drawable.ic_qs_no_calling_sms,
getTextIfExists(AccessibilityContentDescriptions.NO_CALLING).toString());
callback.setCallIndicator(statusIcon, mSubscriptionInfo.getSubscriptionId());
@@ -646,7 +669,6 @@
if (!mProviderModel) {
return;
}
- Log.d("mTag", "notifyWifiLevelChange " + mImsType);
mLastWlanLevel = level;
if (mImsType != IMS_TYPE_WLAN) {
return;
@@ -662,7 +684,6 @@
if (!mProviderModel) {
return;
}
- Log.d("mTag", "notifyDefaultMobileLevelChange " + mImsType);
mLastWlanCrossSimLevel = level;
if (mImsType != IMS_TYPE_WLAN_CROSS_SIM) {
return;
@@ -681,7 +702,6 @@
int newLevel = getSignalLevel(signalStrength);
if (newLevel != mLastLevel) {
mLastLevel = newLevel;
- Log.d("mTag", "notifyMobileLevelChangeIfNecessary " + mImsType);
mLastWwanLevel = newLevel;
if (mImsType == IMS_TYPE_WWAN) {
IconState statusIcon = new IconState(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
index f683603..f45218d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java
@@ -74,6 +74,7 @@
import com.android.systemui.settings.CurrentUserTracker;
import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener;
import com.android.systemui.telephony.TelephonyListenerManager;
+import com.android.systemui.util.CarrierConfigTracker;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -122,6 +123,7 @@
private final Object mLock = new Object();
private final boolean mProviderModel;
private Config mConfig;
+ private final CarrierConfigTracker mCarrierConfigTracker;
private TelephonyCallback.ActiveDataSubscriptionIdListener mPhoneStateListener;
private int mActiveMobileDataSubscription = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
@@ -212,7 +214,8 @@
@Nullable WifiManager wifiManager,
NetworkScoreManager networkScoreManager,
AccessPointControllerImpl accessPointController,
- DemoModeController demoModeController) {
+ DemoModeController demoModeController,
+ CarrierConfigTracker carrierConfigTracker) {
this(context, connectivityManager,
telephonyManager,
telephonyListenerManager,
@@ -228,7 +231,8 @@
new SubscriptionDefaults(),
deviceProvisionedController,
broadcastDispatcher,
- demoModeController);
+ demoModeController,
+ carrierConfigTracker);
mReceiverHandler.post(mRegisterListeners);
}
@@ -246,7 +250,8 @@
SubscriptionDefaults defaultsHandler,
DeviceProvisionedController deviceProvisionedController,
BroadcastDispatcher broadcastDispatcher,
- DemoModeController demoModeController) {
+ DemoModeController demoModeController,
+ CarrierConfigTracker carrierConfigTracker) {
mContext = context;
mTelephonyListenerManager = telephonyListenerManager;
mConfig = config;
@@ -262,6 +267,7 @@
mConnectivityManager = connectivityManager;
mHasMobileDataFeature = telephonyManager.isDataCapable();
mDemoModeController = demoModeController;
+ mCarrierConfigTracker = carrierConfigTracker;
// telephony
mPhone = telephonyManager;
@@ -574,6 +580,10 @@
return mWifiSignalController.isCarrierMergedWifi(subId);
}
+ boolean hasDefaultNetwork() {
+ return !mNoDefaultNetwork;
+ }
+
boolean isNonCarrierWifiNetworkAvailable() {
return !mNoNetworksAvailable;
}
@@ -884,7 +894,7 @@
MobileSignalController controller = new MobileSignalController(mContext, mConfig,
mHasMobileDataFeature, mPhone.createForSubscriptionId(subId),
mCallbackHandler, this, subscriptions.get(i),
- mSubDefaults, mReceiverHandler.getLooper());
+ mSubDefaults, mReceiverHandler.getLooper(), mCarrierConfigTracker);
controller.setUserSetupComplete(mUserSetup);
mMobileSignalControllers.put(subId, controller);
if (subscriptions.get(i).getSimSlotIndex() == 0) {
@@ -1027,6 +1037,10 @@
mNoDefaultNetwork = mConnectedTransports.isEmpty();
mCallbackHandler.setConnectivityStatus(mNoDefaultNetwork, !mInetCondition,
mNoNetworksAvailable);
+ for (int i = 0; i < mMobileSignalControllers.size(); i++) {
+ MobileSignalController mobileSignalController = mMobileSignalControllers.valueAt(i);
+ mobileSignalController.updateNoCallingState();
+ }
notifyAllListeners();
}
}
@@ -1334,8 +1348,8 @@
null, null, null, "", false, null, null);
MobileSignalController controller = new MobileSignalController(mContext,
mConfig, mHasMobileDataFeature,
- mPhone.createForSubscriptionId(info.getSubscriptionId()), mCallbackHandler, this, info,
- mSubDefaults, mReceiverHandler.getLooper());
+ mPhone.createForSubscriptionId(info.getSubscriptionId()), mCallbackHandler, this,
+ info, mSubDefaults, mReceiverHandler.getLooper(), mCarrierConfigTracker);
mMobileSignalControllers.put(id, controller);
controller.getState().userSetup = true;
return info;
diff --git a/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java b/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java
new file mode 100644
index 0000000..02a07e4
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.util;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.util.SparseArray;
+
+import com.android.systemui.dagger.SysUISingleton;
+
+import javax.inject.Inject;
+
+/**
+ * Tracks the Carrier Config values.
+ */
+@SysUISingleton
+public class CarrierConfigTracker extends BroadcastReceiver {
+ private final SparseArray<Boolean> mCallStrengthConfigs = new SparseArray<>();
+ private final SparseArray<Boolean> mNoCallingConfigs = new SparseArray<>();
+ private final CarrierConfigManager mCarrierConfigManager;
+ private final boolean mDefaultCallStrengthConfig;
+ private final boolean mDefaultNoCallingConfig;
+
+ @Inject
+ public CarrierConfigTracker(Context context) {
+ mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
+ context.registerReceiver(
+ this, new IntentFilter(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED));
+ mDefaultCallStrengthConfig =
+ CarrierConfigManager.getDefaultConfig().getBoolean(
+ CarrierConfigManager.KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL);
+ mDefaultNoCallingConfig =
+ CarrierConfigManager.getDefaultConfig().getBoolean(
+ CarrierConfigManager.KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL);
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent.getAction() == CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED) {
+ int subId = intent.getIntExtra(
+ CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX,
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ if (!SubscriptionManager.isValidSubscriptionId(subId)) {
+ return;
+ }
+ PersistableBundle b = mCarrierConfigManager.getConfigForSubId(subId);
+ if (b != null) {
+ boolean hideNoCallingConfig = b.getBoolean(
+ CarrierConfigManager.KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL);
+ boolean displayCallStrengthIcon = b.getBoolean(
+ CarrierConfigManager.KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL);
+ mCallStrengthConfigs.put(subId, displayCallStrengthIcon);
+ mNoCallingConfigs.put(subId, hideNoCallingConfig);
+ }
+ }
+ }
+
+ /**
+ * Returns the KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL value for the given subId.
+ */
+ public boolean getCallStrengthConfig(int subId) {
+ if (mCallStrengthConfigs.indexOfKey(subId) >= 0) {
+ return mCallStrengthConfigs.get(subId);
+ }
+ return mDefaultCallStrengthConfig;
+ }
+
+ /**
+ * Returns the KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL value for the given subId.
+ */
+ public boolean getNoCallingConfig(int subId) {
+ if (mNoCallingConfigs.indexOfKey(subId) >= 0) {
+ return mNoCallingConfigs.get(subId);
+ }
+ return mDefaultNoCallingConfig;
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactory.java b/packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactory.java
index 0352fb5..2270f96 100644
--- a/packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactory.java
@@ -16,13 +16,15 @@
package com.android.systemui.util.concurrency;
+import android.os.Looper;
+
import java.util.concurrent.Executor;
/**
* Factory for building Executors running on a unique named thread.
*
* Use this when our generally available @Main, @Background, @UiBackground, @LongRunning, or
- * similar global qualifiers don't quite cut it. Note that the methods here create entirely new
+ * similar global qualifiers don't quite cut it. Note that the methods here can create entirely new
* threads; there are no singletons here. Use responsibly.
*/
public interface ThreadFactory {
@@ -41,4 +43,9 @@
* implementation. Assume this is the case and use responsibly.
**/
DelayableExecutor buildDelayableExecutorOnNewThread(String threadName);
+
+ /**
+ * Return an {@link DelayableExecutor} running the given Looper
+ **/
+ DelayableExecutor buildDelayableExecutorOnLooper(Looper looper);
}
diff --git a/packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactoryImpl.java b/packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactoryImpl.java
index ca8d836..2d9f2b4 100644
--- a/packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactoryImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactoryImpl.java
@@ -17,6 +17,7 @@
package com.android.systemui.util.concurrency;
import android.os.HandlerThread;
+import android.os.Looper;
import java.util.concurrent.Executor;
@@ -35,4 +36,8 @@
handlerThread.start();
return new ExecutorImpl(handlerThread.getLooper());
}
+
+ public DelayableExecutor buildDelayableExecutorOnLooper(Looper looper) {
+ return new ExecutorImpl(looper);
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java b/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java
index 08cdebd..edea305 100644
--- a/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java
+++ b/packages/SystemUI/src/com/android/systemui/util/leak/GarbageMonitor.java
@@ -58,6 +58,7 @@
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.logging.QSLogger;
+import com.android.systemui.qs.tileimpl.QSIconViewImpl;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import java.io.FileDescriptor;
@@ -296,7 +297,7 @@
MemoryIconDrawable(Context context) {
baseIcon = context.getDrawable(R.drawable.ic_memory).mutate();
dp = context.getResources().getDisplayMetrics().density;
- paint.setColor(QSTileImpl.getColorForState(context, STATE_ACTIVE));
+ paint.setColor(QSIconViewImpl.getIconColorForState(context, STATE_ACTIVE));
}
public void setRss(long rss) {
diff --git a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletActivity.java b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletActivity.java
index 92e68f3..ac8b16a 100644
--- a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletActivity.java
@@ -16,6 +16,7 @@
package com.android.systemui.wallet.ui;
+import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.service.quickaccesswallet.QuickAccessWalletClient;
@@ -34,6 +35,7 @@
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
+import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.LifecycleActivity;
@@ -54,6 +56,7 @@
private final Handler mHandler;
private final FalsingManager mFalsingManager;
private final UserTracker mUserTracker;
+ private final StatusBarKeyguardViewManager mKeyguardViewManager;
private WalletScreenController mWalletScreenController;
@Inject
@@ -65,7 +68,8 @@
@Background Executor executor,
@Main Handler handler,
FalsingManager falsingManager,
- UserTracker userTracker) {
+ UserTracker userTracker,
+ StatusBarKeyguardViewManager keyguardViewManager) {
mQuickAccessWalletClient = quickAccessWalletClient;
mKeyguardStateController = keyguardStateController;
mKeyguardDismissUtil = keyguardDismissUtil;
@@ -74,6 +78,7 @@
mHandler = handler;
mFalsingManager = falsingManager;
mUserTracker = userTracker;
+ mKeyguardViewManager = keyguardViewManager;
}
@Override
@@ -136,6 +141,13 @@
protected void onResume() {
super.onResume();
mWalletScreenController.queryWalletCards();
+ mKeyguardViewManager.requestUdfps(true, Color.BLACK);
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ mKeyguardViewManager.requestUdfps(false, -1);
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletCardCarousel.java b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletCardCarousel.java
index 4200241..1e1b459 100644
--- a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletCardCarousel.java
+++ b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletCardCarousel.java
@@ -61,7 +61,7 @@
static final int CARD_ANIM_ALPHA_DELAY = 50;
private final Rect mSystemGestureExclusionZone = new Rect();
- private WalletCardCarouselAdapter mWalletCardCarouselAdapter;
+ private final WalletCardCarouselAdapter mWalletCardCarouselAdapter;
private int mExpectedViewWidth;
private int mCardMarginPx;
private int mCardWidthPx;
@@ -79,12 +79,6 @@
// also be used in DotIndicatorDecoration.
float mEdgeToCenterDistance = Float.MAX_VALUE;
private float mCardCenterToScreenCenterDistancePx = Float.MAX_VALUE;
- // When card data is loaded, this many cards should be animated as data is bound to them.
- private int mNumCardsToAnimate;
- // When card data is loaded, this is the position of the leftmost card to be animated.
- private int mCardAnimationStartPosition;
- // When card data is loaded, the animations may be delayed so that other animations can complete
- private int mExtraAnimationDelay;
interface OnSelectionListener {
/**
@@ -179,10 +173,6 @@
}
}
- void setExtraAnimationDelay(int extraAnimationDelay) {
- mExtraAnimationDelay = extraAnimationDelay;
- }
-
void setSelectionListener(OnSelectionListener selectionListener) {
mSelectionListener = selectionListener;
}
@@ -200,19 +190,14 @@
}
/**
- * Set card data. Returns true if carousel was empty, indicating that views will be animated
+ * Returns true if the data set is changed.
*/
- boolean setData(List<WalletCardViewInfo> data, int selectedIndex) {
- boolean wasEmpty = mWalletCardCarouselAdapter.getItemCount() == 0;
- mWalletCardCarouselAdapter.setData(data);
+ boolean setData(List<WalletCardViewInfo> data, int selectedIndex, boolean hasLockStateChanged) {
+ boolean hasDataChanged = mWalletCardCarouselAdapter.setData(data, hasLockStateChanged);
scrollToPosition(selectedIndex);
- if (wasEmpty) {
- mNumCardsToAnimate = numCardsOnScreen(data.size(), selectedIndex);
- mCardAnimationStartPosition = Math.max(selectedIndex - 1, 0);
- }
WalletCardViewInfo selectedCard = data.get(selectedIndex);
mCardScrollListener.onCardScroll(selectedCard, selectedCard, 0);
- return wasEmpty;
+ return hasDataChanged;
}
@Override
@@ -222,19 +207,6 @@
}
/**
- * The number of cards shown on screen when one of the cards is position in the center. This is
- * also the num
- */
- private static int numCardsOnScreen(int numCards, int selectedIndex) {
- if (numCards <= 2) {
- return numCards;
- }
- // When there are 3 or more cards, 3 cards will be shown unless the first or last card is
- // centered on screen.
- return selectedIndex > 0 && selectedIndex < (numCards - 1) ? 3 : 2;
- }
-
- /**
* The padding pushes the first and last cards in the list to the center when they are
* selected.
*/
@@ -439,9 +411,29 @@
return mData.get(position).getCardId().hashCode();
}
- void setData(List<WalletCardViewInfo> data) {
+ private boolean setData(List<WalletCardViewInfo> data, boolean hasLockedStateChanged) {
+ List<WalletCardViewInfo> oldData = mData;
mData = data;
- notifyDataSetChanged();
+ if (hasLockedStateChanged || !isUiEquivalent(oldData, data)) {
+ notifyDataSetChanged();
+ return true;
+ }
+ return false;
+ }
+
+ private boolean isUiEquivalent(
+ List<WalletCardViewInfo> oldData, List<WalletCardViewInfo> newData) {
+ if (oldData.size() != newData.size()) {
+ return false;
+ }
+ for (int i = 0; i < newData.size(); i++) {
+ WalletCardViewInfo oldItem = oldData.get(i);
+ WalletCardViewInfo newItem = newData.get(i);
+ if (!oldItem.isUiEquivalent(newItem)) {
+ return false;
+ }
+ }
+ return true;
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletCardViewInfo.java b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletCardViewInfo.java
index 3d37320..08fbe4a 100644
--- a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletCardViewInfo.java
+++ b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletCardViewInfo.java
@@ -54,4 +54,11 @@
*/
@NonNull
PendingIntent getPendingIntent();
+
+ default boolean isUiEquivalent(WalletCardViewInfo other) {
+ if (other == null) {
+ return false;
+ }
+ return getCardId().equals(other.getCardId());
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java
index 44074f70..c547bb3 100644
--- a/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java
+++ b/packages/SystemUI/src/com/android/systemui/wallet/ui/WalletView.java
@@ -19,8 +19,6 @@
import static com.android.systemui.wallet.ui.WalletCardCarousel.CARD_ANIM_ALPHA_DELAY;
import static com.android.systemui.wallet.ui.WalletCardCarousel.CARD_ANIM_ALPHA_DURATION;
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
import android.annotation.Nullable;
import android.app.PendingIntent;
import android.content.Context;
@@ -29,6 +27,7 @@
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
+import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
@@ -46,9 +45,8 @@
public class WalletView extends FrameLayout implements WalletCardCarousel.OnCardScrollListener {
private static final String TAG = "WalletView";
- private static final int CAROUSEL_IN_ANIMATION_DURATION = 300;
+ private static final int CAROUSEL_IN_ANIMATION_DURATION = 100;
private static final int CAROUSEL_OUT_ANIMATION_DURATION = 200;
- private static final int CARD_LABEL_ANIM_DELAY = 133;
private final WalletCardCarousel mCardCarousel;
private final ImageView mIcon;
@@ -57,14 +55,12 @@
private final Button mAppButton;
// Displays underneath the carousel, allow user to unlock device, verify card, etc.
private final Button mActionButton;
- private final Interpolator mInInterpolator;
private final Interpolator mOutInterpolator;
private final float mAnimationTranslationX;
private final ViewGroup mCardCarouselContainer;
private final TextView mErrorView;
private final ViewGroup mEmptyStateView;
private CharSequence mCenterCardText;
- private Drawable mCenterCardIcon;
private boolean mIsDeviceLocked = false;
public WalletView(Context context) {
@@ -83,8 +79,6 @@
mActionButton = requireViewById(R.id.wallet_action_button);
mErrorView = requireViewById(R.id.error_view);
mEmptyStateView = requireViewById(R.id.wallet_empty_state);
- mInInterpolator =
- AnimationUtils.loadInterpolator(context, android.R.interpolator.fast_out_slow_in);
mOutInterpolator =
AnimationUtils.loadInterpolator(context, android.R.interpolator.accelerate_cubic);
mAnimationTranslationX = mCardCarousel.getCardWidthPx() / 4f;
@@ -109,7 +103,6 @@
Drawable centerCardIcon = centerCard.getIcon();
if (!TextUtils.equals(mCenterCardText, centerCardText)) {
mCenterCardText = centerCardText;
- mCenterCardIcon = centerCardIcon;
mCardLabel.setText(centerCardText);
mIcon.setImageDrawable(centerCardIcon);
}
@@ -134,39 +127,15 @@
*/
void showCardCarousel(
List<WalletCardViewInfo> data, int selectedIndex, boolean isDeviceLocked) {
+ boolean shouldAnimate =
+ mCardCarousel.setData(data, selectedIndex, mIsDeviceLocked != isDeviceLocked);
mIsDeviceLocked = isDeviceLocked;
- boolean shouldAnimate = mCardCarousel.setData(data, selectedIndex);
mCardCarouselContainer.setVisibility(VISIBLE);
mErrorView.setVisibility(GONE);
+ mEmptyStateView.setVisibility(GONE);
renderHeaderIconAndActionButton(data.get(selectedIndex), isDeviceLocked);
if (shouldAnimate) {
- // If the empty state is visible, animate it away and delay the card carousel animation
- int emptyStateAnimDelay = 0;
- if (mEmptyStateView.getVisibility() == VISIBLE) {
- emptyStateAnimDelay = CARD_ANIM_ALPHA_DURATION;
- mEmptyStateView.animate()
- .alpha(0)
- .setDuration(emptyStateAnimDelay)
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mEmptyStateView.setVisibility(GONE);
- }
- })
- .start();
- }
- mCardLabel.setAlpha(0f);
- mCardLabel.animate().alpha(1f)
- .setStartDelay(CARD_LABEL_ANIM_DELAY + emptyStateAnimDelay)
- .setDuration(CARD_ANIM_ALPHA_DURATION)
- .start();
- mCardCarousel.setExtraAnimationDelay(emptyStateAnimDelay);
- mCardCarousel.setTranslationX(mAnimationTranslationX);
- mCardCarousel.animate().translationX(0)
- .setInterpolator(mInInterpolator)
- .setDuration(CAROUSEL_IN_ANIMATION_DURATION)
- .setStartDelay(emptyStateAnimDelay)
- .start();
+ animateViewsShown(mIcon, mCardLabel, mActionButton);
}
}
@@ -277,6 +246,15 @@
}
}
+ private static void animateViewsShown(View... uiElements) {
+ for (View view : uiElements) {
+ if (view.getVisibility() == VISIBLE) {
+ view.setAlpha(0f);
+ view.animate().alpha(1f).setDuration(CAROUSEL_IN_ANIMATION_DURATION).start();
+ }
+ }
+ }
+
private static CharSequence getLabelText(WalletCardViewInfo card) {
String[] rawLabel = card.getLabel().toString().split("\\n");
return rawLabel.length == 2 ? rawLabel[0] : card.getLabel();
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java
index d07a8da..495489f 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java
@@ -32,6 +32,7 @@
import android.content.Context;
import android.content.pm.UserInfo;
import android.content.res.Resources;
+import android.graphics.drawable.Icon;
import android.os.Handler;
import android.os.UserHandle;
import android.test.suitebuilder.annotation.SmallTest;
@@ -41,10 +42,11 @@
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
+import androidx.annotation.Nullable;
+
import com.android.internal.colorextraction.ColorExtractor;
import com.android.keyguard.clock.ClockManager;
import com.android.systemui.R;
-import com.android.systemui.SystemUIFactory;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.colorextraction.SysuiColorExtractor;
@@ -74,6 +76,7 @@
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import java.util.concurrent.Executor;
@SmallTest
@@ -117,12 +120,12 @@
@Mock
ConfigurationController mConfigurationController;
@Mock
+ Optional<BcSmartspaceDataPlugin> mOptionalSmartspaceDataProvider;
+ @Mock
BcSmartspaceDataPlugin mSmartspaceDataProvider;
@Mock
SmartspaceView mSmartspaceView;
@Mock
- SystemUIFactory mSystemUIFactory;
- @Mock
ActivityStarter mActivityStarter;
@Mock
FalsingManager mFalsingManager;
@@ -162,7 +165,6 @@
when(mFeatureFlags.isSmartspaceEnabled()).thenReturn(true);
when(mView.isAttachedToWindow()).thenReturn(true);
when(mResources.getString(anyInt())).thenReturn("h:mm");
- when(mSystemUIFactory.getSmartspaceDataProvider()).thenReturn(mSmartspaceDataProvider);
mController = new KeyguardClockSwitchController(
mView,
mStatusBarStateController,
@@ -175,14 +177,14 @@
mExecutor,
mBatteryController,
mConfigurationController,
- mSystemUIFactory,
mActivityStarter,
mFalsingManager,
mKeyguardUpdateMonitor,
mBypassController,
mHandler,
mUserTracker,
- mSecureSettings
+ mSecureSettings,
+ mOptionalSmartspaceDataProvider
);
when(mStatusBarStateController.getState()).thenReturn(StatusBarState.SHADE);
@@ -190,6 +192,8 @@
mStatusArea = new View(getContext());
when(mView.findViewById(R.id.keyguard_status_area)).thenReturn(mStatusArea);
+ when(mOptionalSmartspaceDataProvider.isPresent()).thenReturn(true);
+ when(mOptionalSmartspaceDataProvider.get()).thenReturn(mSmartspaceDataProvider);
when(mSmartspaceDataProvider.getView(any())).thenReturn(mSmartspaceView);
}
@@ -260,7 +264,7 @@
@Test
public void testSmartspaceEnabledNoDataProviderShowsKeyguardStatusArea() {
when(mFeatureFlags.isSmartspaceEnabled()).thenReturn(true);
- when(mSystemUIFactory.getSmartspaceDataProvider()).thenReturn(null);
+ when(mOptionalSmartspaceDataProvider.isPresent()).thenReturn(false);
mController.init();
assertEquals(View.VISIBLE, mStatusArea.getVisibility());
@@ -389,5 +393,7 @@
public void setIntentStarter(IntentStarter intentStarter) { }
public void setFalsingManager(FalsingManager falsingManager) { }
+
+ public void setDnd(@Nullable Icon dndIcon, @Nullable String description) { }
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java b/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java
index 3252750..b9ce203 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java
@@ -65,8 +65,12 @@
import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.events.PrivacyDotViewController;
import com.android.systemui.tuner.TunerService;
+import com.android.systemui.util.concurrency.FakeExecutor;
+import com.android.systemui.util.concurrency.FakeThreadFactory;
+import com.android.systemui.util.concurrency.ThreadFactory;
import com.android.systemui.util.settings.FakeSettings;
import com.android.systemui.util.settings.SecureSettings;
+import com.android.systemui.util.time.FakeSystemClock;
import org.junit.Before;
import org.junit.Test;
@@ -89,6 +93,7 @@
private DisplayManager mDisplayManager;
private SecureSettings mSecureSettings;
private Handler mMainHandler;
+ private ThreadFactory mThreadFactory;
@Mock
private TunerService mTunerService;
@Mock
@@ -105,6 +110,7 @@
mTestableLooper = TestableLooper.get(this);
mMainHandler = new Handler(mTestableLooper.getLooper());
mSecureSettings = new FakeSettings();
+ mThreadFactory = new FakeThreadFactory(new FakeExecutor(new FakeSystemClock()));
mWindowManager = mock(WindowManager.class);
WindowMetrics metrics = mContext.getSystemService(WindowManager.class)
@@ -119,7 +125,8 @@
mContext.addMockSystemService(DisplayManager.class, mDisplayManager);
mScreenDecorations = spy(new ScreenDecorations(mContext, mMainHandler, mSecureSettings,
- mBroadcastDispatcher, mTunerService, mUserTracker, mDotViewController) {
+ mBroadcastDispatcher, mTunerService, mUserTracker, mDotViewController,
+ mThreadFactory) {
@Override
public void start() {
super.start();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt
index 800daa1..dd3a192 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt
@@ -93,6 +93,7 @@
@Mock private lateinit var expandedSet: ConstraintSet
@Mock private lateinit var collapsedSet: ConstraintSet
@Mock private lateinit var mediaOutputDialogFactory: MediaOutputDialogFactory
+ @Mock private lateinit var mediaCarouselController: MediaCarouselController
private lateinit var appIcon: ImageView
private lateinit var albumView: ImageView
private lateinit var titleText: TextView
@@ -129,7 +130,7 @@
player = MediaControlPanel(context, bgExecutor, activityStarter, mediaViewController,
seekBarViewModel, Lazy { mediaDataManager }, keyguardDismissUtil,
- mediaOutputDialogFactory)
+ mediaOutputDialogFactory, mediaCarouselController)
whenever(seekBarViewModel.progress).thenReturn(seekBarData)
// Mock out a view holder for the player to attach to.
diff --git a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarRotationContextTest.java b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarRotationContextTest.java
index 47f4183..eac68f6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarRotationContextTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/navigationbar/NavigationBarRotationContextTest.java
@@ -62,8 +62,10 @@
final View view = new View(mContext);
mRotationButton = mock(RotationButton.class);
- mRotationButtonController = spy(new RotationButtonController(mContext, 0, 0,
- mRotationButton, (visibility) -> {}));
+ mRotationButtonController = new RotationButtonController(mContext, 0, 0);
+ mRotationButtonController.setRotationButton(mRotationButton, (visibility) -> {});
+ // Due to a mockito issue, only spy the object after setting the initial state
+ mRotationButtonController = spy(mRotationButtonController);
final KeyButtonDrawable kbd = mock(KeyButtonDrawable.class);
doReturn(view).when(mRotationButton).getCurrentView();
doReturn(true).when(mRotationButton).acceptRotationProposal();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleSpaceUtilsTest.java b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleSpaceUtilsTest.java
index 0dd1f68..8983ff8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleSpaceUtilsTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleSpaceUtilsTest.java
@@ -17,7 +17,6 @@
package com.android.systemui.people;
import static com.android.systemui.people.PeopleSpaceUtils.PACKAGE_NAME;
-import static com.android.systemui.people.widget.AppWidgetOptionsHelper.OPTIONS_PEOPLE_TILE;
import static com.google.common.truth.Truth.assertThat;
@@ -200,7 +199,6 @@
int[] widgetIdsArray = {WIDGET_ID_WITH_SHORTCUT, WIDGET_ID_WITHOUT_SHORTCUT};
mOptions = new Bundle();
- mOptions.putParcelable(OPTIONS_PEOPLE_TILE, PERSON_TILE);
when(mIAppWidgetService.getAppWidgetIds(any())).thenReturn(widgetIdsArray);
when(mAppWidgetManager.getAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT)))
diff --git a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleTileViewHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleTileViewHelperTest.java
index 228e5e8..5c70a4ef2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/people/PeopleTileViewHelperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/people/PeopleTileViewHelperTest.java
@@ -29,7 +29,6 @@
import static com.android.systemui.people.PeopleSpaceUtils.STARRED_CONTACT;
import static com.android.systemui.people.PeopleSpaceUtils.VALID_CONTACT;
-import static com.android.systemui.people.widget.AppWidgetOptionsHelper.OPTIONS_PEOPLE_TILE;
import static com.google.common.truth.Truth.assertThat;
@@ -140,7 +139,6 @@
MockitoAnnotations.initMocks(this);
mOptions = new Bundle();
- mOptions.putParcelable(OPTIONS_PEOPLE_TILE, PERSON_TILE);
when(mMockContext.getString(R.string.birthday_status)).thenReturn(
mContext.getString(R.string.birthday_status));
diff --git a/packages/SystemUI/tests/src/com/android/systemui/people/widget/PeopleSpaceWidgetManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/people/widget/PeopleSpaceWidgetManagerTest.java
index f31f326..107ce28 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/people/widget/PeopleSpaceWidgetManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/people/widget/PeopleSpaceWidgetManagerTest.java
@@ -51,7 +51,6 @@
import static com.android.systemui.people.PeopleSpaceUtils.INVALID_USER_ID;
import static com.android.systemui.people.PeopleSpaceUtils.PACKAGE_NAME;
import static com.android.systemui.people.PeopleSpaceUtils.USER_ID;
-import static com.android.systemui.people.widget.AppWidgetOptionsHelper.OPTIONS_PEOPLE_TILE;
import static com.google.common.truth.Truth.assertThat;
@@ -192,6 +191,7 @@
| SUPPRESSED_EFFECT_LIGHTS
| SUPPRESSED_EFFECT_PEEK
| SUPPRESSED_EFFECT_NOTIFICATION_LIST;
+ private static final long SBN_POST_TIME = 567L;
private ShortcutInfo mShortcutInfo;
private NotificationEntry mNotificationEntry;
@@ -474,8 +474,6 @@
.setId(1));
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, never())
- .updateAppWidgetOptions(anyInt(), any());
verify(mAppWidgetManager, never()).updateAppWidget(anyInt(),
any());
}
@@ -495,8 +493,6 @@
.setId(1));
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, never())
- .updateAppWidgetOptions(anyInt(), any());
verify(mAppWidgetManager, never()).updateAppWidget(anyInt(),
any());
}
@@ -515,8 +511,6 @@
NotifEvent notif1b = mNoMan.retractNotif(notif1.sbn, 0);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, never())
- .updateAppWidgetOptions(anyInt(), any());
verify(mAppWidgetManager, never()).updateAppWidget(anyInt(),
any());
}
@@ -538,8 +532,6 @@
NotifEvent notif1b = mNoMan.retractNotif(notif1.sbn, 0);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, never())
- .updateAppWidgetOptions(anyInt(), any());
verify(mAppWidgetManager, never()).updateAppWidget(anyInt(),
any());
}
@@ -559,8 +551,6 @@
mManager.updateWidgetsWithConversationChanged(conversationChannel);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, never())
- .updateAppWidgetOptions(anyInt(), any());
verify(mAppWidgetManager, never()).updateAppWidget(anyInt(),
any());
}
@@ -578,11 +568,7 @@
mManager.updateWidgetsWithConversationChanged(conversationChannel);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = mBundleArgumentCaptor.getValue();
- PeopleSpaceTile tile = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getStatuses()).containsExactly(status);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
@@ -599,14 +585,8 @@
mManager.updateWidgetsWithConversationChanged(conversationChannel);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- any());
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(SECOND_WIDGET_ID_WITH_SHORTCUT),
- any());
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(SECOND_WIDGET_ID_WITH_SHORTCUT),
any());
}
@@ -626,12 +606,9 @@
NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = mBundleArgumentCaptor.getValue();
- PeopleSpaceTile tile = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
+ assertThat(tile.getLastInteractionTimestamp()).isEqualTo(SBN_POST_TIME);
assertThat(tile.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
@@ -647,14 +624,8 @@
.setId(1));
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- any());
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(SECOND_WIDGET_ID_WITH_SHORTCUT),
- any());
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(SECOND_WIDGET_ID_WITH_SHORTCUT),
any());
}
@@ -672,14 +643,8 @@
.setId(1));
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- any());
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
- verify(mAppWidgetManager, never())
- .updateAppWidgetOptions(eq(SECOND_WIDGET_ID_WITH_SHORTCUT),
- any());
verify(mAppWidgetManager, never()).updateAppWidget(eq(SECOND_WIDGET_ID_WITH_SHORTCUT),
any());
}
@@ -700,12 +665,7 @@
NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = requireNonNull(mBundleArgumentCaptor.getValue());
-
- PeopleSpaceTile tile = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tile.getNotificationContent())
.isEqualTo(mContext.getString(R.string.missed_call));
@@ -729,12 +689,7 @@
NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = requireNonNull(mBundleArgumentCaptor.getValue());
-
- PeopleSpaceTile tile = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tile.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
@@ -758,21 +713,13 @@
NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = requireNonNull(mBundleArgumentCaptor.getValue());
- PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tileWithMissedCallOrigin = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(
NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SAME_URI),
- mBundleArgumentCaptor.capture());
- Bundle bundleForSameUriTile = requireNonNull(mBundleArgumentCaptor.getValue());
- PeopleSpaceTile tileWithSameUri = bundleForSameUriTile.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tileWithSameUri = mManager.mTiles.get(WIDGET_ID_WITH_SAME_URI);
assertThat(tileWithSameUri.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithSameUri.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SAME_URI),
@@ -801,19 +748,12 @@
NotifEvent notif1b = mNoMan.retractNotif(notif1.sbn.cloneLight(), 0);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(2)).updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = mBundleArgumentCaptor.getValue();
- PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tileWithMissedCallOrigin = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(null);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(null);
verify(mAppWidgetManager, times(2)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
- verify(mAppWidgetManager, times(2))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SAME_URI),
- mBundleArgumentCaptor.capture());
- Bundle bundleForSameUriTile = requireNonNull(mBundleArgumentCaptor.getValue());
- PeopleSpaceTile tileWithSameUri = bundleForSameUriTile.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tileWithSameUri = mManager.mTiles.get(WIDGET_ID_WITH_SAME_URI);
assertThat(tileWithSameUri.getNotificationKey()).isEqualTo(null);
assertThat(tileWithSameUri.getNotificationContent()).isEqualTo(null);
verify(mAppWidgetManager, times(2)).updateAppWidget(eq(WIDGET_ID_WITH_SAME_URI),
@@ -847,21 +787,13 @@
NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = requireNonNull(mBundleArgumentCaptor.getValue());
- PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tileWithMissedCallOrigin = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(
NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SAME_URI),
- mBundleArgumentCaptor.capture());
- Bundle bundleForSameUriTile = requireNonNull(mBundleArgumentCaptor.getValue());
- PeopleSpaceTile tileWithSameUri = bundleForSameUriTile.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tileWithSameUri = mManager.mTiles.get(WIDGET_ID_WITH_SAME_URI);
assertThat(tileWithSameUri.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithSameUri.getNotificationContent()).isEqualTo(NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SAME_URI),
@@ -900,20 +832,13 @@
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = requireNonNull(mBundleArgumentCaptor.getValue());
- PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tileWithMissedCallOrigin = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(
NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
// Do not update since notification doesn't include a Person reference.
- verify(mAppWidgetManager, times(0))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SAME_URI),
- any());
verify(mAppWidgetManager, times(0)).updateAppWidget(eq(WIDGET_ID_WITH_SAME_URI),
any());
}
@@ -939,20 +864,13 @@
NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = requireNonNull(mBundleArgumentCaptor.getValue());
- PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tileWithMissedCallOrigin = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(
NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
// Do not update since missing permission to read contacts.
- verify(mAppWidgetManager, times(0))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_DIFFERENT_URI),
- any());
verify(mAppWidgetManager, times(0)).updateAppWidget(eq(WIDGET_ID_WITH_DIFFERENT_URI),
any());
}
@@ -977,23 +895,14 @@
NotifEvent notif1 = mNoMan.postNotif(builder);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = requireNonNull(mBundleArgumentCaptor.getValue());
- PeopleSpaceTile tileWithMissedCallOrigin = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tileWithMissedCallOrigin = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tileWithMissedCallOrigin.getNotificationKey()).isEqualTo(NOTIFICATION_KEY);
assertThat(tileWithMissedCallOrigin.getNotificationContent()).isEqualTo(
NOTIFICATION_CONTENT_1);
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
// Do not update since missing permission to read contacts.
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SAME_URI),
- mBundleArgumentCaptor.capture());
- Bundle noNotificationBundle = requireNonNull(mBundleArgumentCaptor.getValue());
- PeopleSpaceTile tileNoNotification =
- noNotificationBundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tileNoNotification = mManager.mTiles.get(WIDGET_ID_WITH_SAME_URI);
assertThat(tileNoNotification.getNotificationKey()).isNull();
verify(mAppWidgetManager, times(1)).updateAppWidget(eq(WIDGET_ID_WITH_SAME_URI),
any());
@@ -1010,21 +919,20 @@
.setSbn(sbn)
.setId(1));
mClock.advanceTime(MIN_LINGER_DURATION);
+ long timestampBeforeNotificationClear = System.currentTimeMillis();
NotifEvent notif1b = mNoMan.retractNotif(notif1.sbn, 0);
mClock.advanceTime(MIN_LINGER_DURATION);
- verify(mAppWidgetManager, times(2)).updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = mBundleArgumentCaptor.getValue();
- PeopleSpaceTile tile = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationKey()).isEqualTo(null);
+ assertThat(tile.getLastInteractionTimestamp()).isLessThan(
+ timestampBeforeNotificationClear);
assertThat(tile.getNotificationContent()).isEqualTo(null);
assertThat(tile.getNotificationDataUri()).isEqualTo(null);
verify(mAppWidgetManager, times(2)).updateAppWidget(eq(WIDGET_ID_WITH_SHORTCUT),
any());
}
-
@Test
public void testAddThenReconfigureWidgetsUpdatesStorageCacheAndListeners()
throws Exception {
@@ -1131,7 +1039,6 @@
@Test
public void testOnAppWidgetOptionsChangedNoWidgetAdded() {
Bundle newOptions = new Bundle();
- newOptions.putParcelable(OPTIONS_PEOPLE_TILE, PERSON_TILE);
mManager.onAppWidgetOptionsChanged(SECOND_WIDGET_ID_WITH_SHORTCUT, newOptions);
@@ -1166,10 +1073,9 @@
mManager.onAppWidgetOptionsChanged(SECOND_WIDGET_ID_WITH_SHORTCUT, newOptions);
- verify(mAppWidgetManager, times(2)).updateAppWidgetOptions(
+ verify(mAppWidgetManager, times(1)).updateAppWidgetOptions(
eq(SECOND_WIDGET_ID_WITH_SHORTCUT), mBundleArgumentCaptor.capture());
- List<Bundle> bundles = mBundleArgumentCaptor.getAllValues();
- Bundle first = bundles.get(0);
+ Bundle first = mBundleArgumentCaptor.getValue();
assertThat(first.getString(PeopleSpaceUtils.SHORTCUT_ID, EMPTY_STRING))
.isEqualTo(EMPTY_STRING);
assertThat(first.getInt(USER_ID, INVALID_USER_ID)).isEqualTo(INVALID_USER_ID);
@@ -1177,21 +1083,6 @@
verify(mLauncherApps, times(1)).cacheShortcuts(eq(TEST_PACKAGE_A),
eq(Arrays.asList(SHORTCUT_ID)), eq(UserHandle.of(0)),
eq(LauncherApps.FLAG_CACHE_PEOPLE_TILE_SHORTCUTS));
-
- Bundle second = bundles.get(1);
- PeopleSpaceTile tile = second.getParcelable(OPTIONS_PEOPLE_TILE);
- assertThat(tile.getId()).isEqualTo(SHORTCUT_ID);
-
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mContext);
- assertThat(sp.getStringSet(KEY.toString(), new HashSet<>())).contains(
- String.valueOf(SECOND_WIDGET_ID_WITH_SHORTCUT));
- SharedPreferences widgetSp = mContext.getSharedPreferences(
- String.valueOf(SECOND_WIDGET_ID_WITH_SHORTCUT),
- Context.MODE_PRIVATE);
- assertThat(widgetSp.getString(PACKAGE_NAME, EMPTY_STRING)).isEqualTo(TEST_PACKAGE_A);
- assertThat(widgetSp.getString(PeopleSpaceUtils.SHORTCUT_ID, EMPTY_STRING))
- .isEqualTo(SHORTCUT_ID);
- assertThat(widgetSp.getInt(USER_ID, INVALID_USER_ID)).isEqualTo(0);
}
@Test
@@ -1306,11 +1197,7 @@
public void testUpdateWidgetsOnStateChange() {
mManager.updateWidgetsOnStateChange(ACTION_BOOT_COMPLETED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = mBundleArgumentCaptor.getValue();
- PeopleSpaceTile tile = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.isPackageSuspended()).isFalse();
assertThat(tile.isUserQuieted()).isFalse();
assertThat(tile.canBypassDnd()).isFalse();
@@ -1325,11 +1212,7 @@
mManager.updateWidgetsOnStateChange(ACTION_BOOT_COMPLETED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = mBundleArgumentCaptor.getValue();
- PeopleSpaceTile tile = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.isPackageSuspended()).isFalse();
assertThat(tile.isUserQuieted()).isTrue();
assertThat(tile.getNotificationPolicyState()).isEqualTo(SHOW_CONVERSATIONS);
@@ -1341,11 +1224,7 @@
mManager.updateWidgetsOnStateChange(ACTION_PACKAGES_SUSPENDED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- Bundle bundle = mBundleArgumentCaptor.getValue();
- PeopleSpaceTile tile = bundle.getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.isPackageSuspended()).isTrue();
assertThat(tile.isUserQuieted()).isFalse();
assertThat(tile.getNotificationPolicyState()).isEqualTo(SHOW_CONVERSATIONS);
@@ -1357,10 +1236,7 @@
mManager.updateWidgetsOnStateChange(NotificationManager
.ACTION_INTERRUPTION_FILTER_CHANGED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- PeopleSpaceTile tile = mBundleArgumentCaptor.getValue().getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationPolicyState()).isEqualTo(expected | SHOW_CONVERSATIONS);
}
@@ -1375,10 +1251,7 @@
mManager.updateWidgetsOnStateChange(NotificationManager
.ACTION_INTERRUPTION_FILTER_CHANGED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- PeopleSpaceTile tile = mBundleArgumentCaptor.getValue().getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationPolicyState()).isEqualTo(expected | SHOW_CONVERSATIONS);
}
@@ -1394,10 +1267,7 @@
mManager.updateWidgetsOnStateChange(NotificationManager
.ACTION_INTERRUPTION_FILTER_CHANGED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- PeopleSpaceTile tile = mBundleArgumentCaptor.getValue().getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationPolicyState()).isEqualTo(
expected | SHOW_IMPORTANT_CONVERSATIONS);
}
@@ -1412,10 +1282,7 @@
mManager.updateWidgetsOnStateChange(NotificationManager
.ACTION_INTERRUPTION_FILTER_CHANGED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- PeopleSpaceTile tile = mBundleArgumentCaptor.getValue().getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationPolicyState()).isEqualTo(expected | BLOCK_CONVERSATIONS);
}
@@ -1430,10 +1297,7 @@
mManager.updateWidgetsOnStateChange(ACTION_BOOT_COMPLETED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- PeopleSpaceTile tile = mBundleArgumentCaptor.getValue().getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationPolicyState()).isEqualTo(expected | SHOW_CONTACTS);
}
@@ -1448,10 +1312,7 @@
mManager.updateWidgetsOnStateChange(ACTION_BOOT_COMPLETED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- PeopleSpaceTile tile = mBundleArgumentCaptor.getValue().getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationPolicyState()).isEqualTo(expected | SHOW_STARRED_CONTACTS);
}
@@ -1464,10 +1325,7 @@
mManager.updateWidgetsOnStateChange(NotificationManager
.ACTION_INTERRUPTION_FILTER_CHANGED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- PeopleSpaceTile tile = mBundleArgumentCaptor.getValue().getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationPolicyState()).isEqualTo(expected | BLOCK_CONVERSATIONS);
}
@@ -1482,10 +1340,7 @@
mManager.updateWidgetsOnStateChange(ACTION_BOOT_COMPLETED);
- verify(mAppWidgetManager, times(1))
- .updateAppWidgetOptions(eq(WIDGET_ID_WITH_SHORTCUT),
- mBundleArgumentCaptor.capture());
- PeopleSpaceTile tile = mBundleArgumentCaptor.getValue().getParcelable(OPTIONS_PEOPLE_TILE);
+ PeopleSpaceTile tile = mManager.mTiles.get(WIDGET_ID_WITH_SHORTCUT);
assertThat(tile.getNotificationPolicyState()).isEqualTo(expected | SHOW_CONVERSATIONS);
}
@@ -1513,7 +1368,6 @@
private void addTileForWidget(PeopleSpaceTile tile, int widgetId) throws Exception {
setStorageForTile(tile.getId(), tile.getPackageName(), widgetId, tile.getContactUri());
Bundle options = new Bundle();
- options.putParcelable(OPTIONS_PEOPLE_TILE, tile);
ConversationChannel channel = getConversationWithShortcutId(new PeopleTileKey(tile));
when(mAppWidgetManager.getAppWidgetOptions(eq(widgetId)))
.thenReturn(options);
@@ -1596,6 +1450,7 @@
.setNotification(notification)
.setPkg(TEST_PACKAGE_A)
.setUid(0)
+ .setPostTime(SBN_POST_TIME)
.setUser(new UserHandle(0))
.build();
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/TileLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/TileLayoutTest.java
index 54cee84..24e47c5 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/TileLayoutTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/TileLayoutTest.java
@@ -35,7 +35,7 @@
import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.tileimpl.QSIconViewImpl;
-import com.android.systemui.qs.tileimpl.QSTileView;
+import com.android.systemui.qs.tileimpl.QSTileViewImpl;
import org.junit.Before;
import org.junit.Test;
@@ -60,7 +60,7 @@
private QSPanelControllerBase.TileRecord createTileRecord() {
QSPanelControllerBase.TileRecord tileRecord = new QSPanelControllerBase.TileRecord();
tileRecord.tile = mock(QSTile.class);
- tileRecord.tileView = spy(new QSTileView(mContext, new QSIconViewImpl(mContext)));
+ tileRecord.tileView = spy(new QSTileViewImpl(mContext, new QSIconViewImpl(mContext)));
return tileRecord;
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/carrier/QSCarrierGroupControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/carrier/QSCarrierGroupControllerTest.java
index 59a5f03..876acc1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/carrier/QSCarrierGroupControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/carrier/QSCarrierGroupControllerTest.java
@@ -37,6 +37,7 @@
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators;
+import com.android.systemui.util.CarrierConfigTracker;
import com.android.systemui.utils.leaks.LeakCheckedTest;
import com.android.systemui.utils.os.FakeHandler;
@@ -66,6 +67,8 @@
private CarrierTextManager.Builder mCarrierTextControllerBuilder;
@Mock
private CarrierTextManager mCarrierTextManager;
+ @Mock
+ private CarrierConfigTracker mCarrierConfigTracker;
private TestableLooper mTestableLooper;
@Before
@@ -99,7 +102,7 @@
mQSCarrierGroupController = new QSCarrierGroupController.Builder(
mActivityStarter, handler, TestableLooper.get(this).getLooper(),
- mNetworkController, mCarrierTextControllerBuilder, mContext)
+ mNetworkController, mCarrierTextControllerBuilder, mContext, mCarrierConfigTracker)
.setQSCarrierGroup(mQSCarrierGroup)
.build();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSTileBaseViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSTileBaseViewTest.kt
deleted file mode 100644
index 998e070..0000000
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSTileBaseViewTest.kt
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.qs.tileimpl
-
-import android.service.quicksettings.Tile
-import android.testing.AndroidTestingRunner
-import android.text.TextUtils
-import androidx.test.filters.SmallTest
-import com.android.systemui.R
-import com.android.systemui.SysuiTestCase
-import com.android.systemui.plugins.qs.QSIconView
-import com.android.systemui.plugins.qs.QSTile
-import com.google.common.truth.Truth.assertThat
-import org.junit.Before
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.MockitoAnnotations
-
-@RunWith(AndroidTestingRunner::class)
-@SmallTest
-class QSTileBaseViewTest : SysuiTestCase() {
-
- @Mock
- private lateinit var iconView: QSIconView
-
- private lateinit var tileView: QSTileBaseView
-
- @Before
- fun setUp() {
- MockitoAnnotations.initMocks(this)
-
- tileView = QSTileBaseView(context, iconView, false)
- }
-
- @Test
- fun testSecondaryLabelNotModified_unavailable() {
- val state = QSTile.State()
- val testString = "TEST STRING"
- state.state = Tile.STATE_UNAVAILABLE
- state.secondaryLabel = testString
-
- tileView.handleStateChanged(state)
-
- assertThat(state.secondaryLabel as CharSequence).isEqualTo(testString)
- }
-
- @Test
- fun testSecondaryLabelNotModified_booleanInactive() {
- val state = QSTile.BooleanState()
- val testString = "TEST STRING"
- state.state = Tile.STATE_INACTIVE
- state.secondaryLabel = testString
-
- tileView.handleStateChanged(state)
-
- assertThat(state.secondaryLabel as CharSequence).isEqualTo(testString)
- }
-
- @Test
- fun testSecondaryLabelNotModified_booleanActive() {
- val state = QSTile.BooleanState()
- val testString = "TEST STRING"
- state.state = Tile.STATE_ACTIVE
- state.secondaryLabel = testString
-
- tileView.handleStateChanged(state)
-
- assertThat(state.secondaryLabel as CharSequence).isEqualTo(testString)
- }
-
- @Test
- fun testSecondaryLabelNotModified_availableNotBoolean_inactive() {
- val state = QSTile.State()
- state.state = Tile.STATE_INACTIVE
- state.secondaryLabel = ""
-
- tileView.handleStateChanged(state)
-
- assertThat(TextUtils.isEmpty(state.secondaryLabel)).isTrue()
- }
-
- @Test
- fun testSecondaryLabelNotModified_availableNotBoolean_active() {
- val state = QSTile.State()
- state.state = Tile.STATE_ACTIVE
- state.secondaryLabel = ""
-
- tileView.handleStateChanged(state)
-
- assertThat(TextUtils.isEmpty(state.secondaryLabel)).isTrue()
- }
-
- @Test
- fun testSecondaryLabelDescription_unavailable() {
- val state = QSTile.State()
- state.state = Tile.STATE_UNAVAILABLE
- state.secondaryLabel = ""
-
- tileView.handleStateChanged(state)
-
- assertThat(state.secondaryLabel as CharSequence).isEqualTo(
- context.getString(R.string.tile_unavailable)
- )
- }
-
- @Test
- fun testSecondaryLabelDescription_booleanInactive() {
- val state = QSTile.BooleanState()
- state.state = Tile.STATE_INACTIVE
- state.secondaryLabel = ""
-
- tileView.handleStateChanged(state)
-
- assertThat(state.secondaryLabel as CharSequence).isEqualTo(
- context.getString(R.string.switch_bar_off)
- )
- }
-
- @Test
- fun testSecondaryLabelDescription_booleanActive() {
- val state = QSTile.BooleanState()
- state.state = Tile.STATE_ACTIVE
- state.secondaryLabel = ""
-
- tileView.handleStateChanged(state)
-
- assertThat(state.secondaryLabel as CharSequence).isEqualTo(
- context.getString(R.string.switch_bar_on)
- )
- }
-}
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSTileViewImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSTileViewImplTest.kt
new file mode 100644
index 0000000..e5e2e53
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSTileViewImplTest.kt
@@ -0,0 +1,230 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.qs.tileimpl
+
+import android.content.Context
+import android.graphics.drawable.Drawable
+import android.service.quicksettings.Tile
+import android.testing.AndroidTestingRunner
+import android.text.TextUtils
+import android.view.View
+import androidx.test.filters.SmallTest
+import com.android.systemui.R
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.plugins.qs.QSIconView
+import com.android.systemui.plugins.qs.QSTile
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.MockitoAnnotations
+
+@RunWith(AndroidTestingRunner::class)
+@SmallTest
+class QSTileViewImplTest : SysuiTestCase() {
+
+ @Mock
+ private lateinit var iconView: QSIconView
+ @Mock
+ private lateinit var customDrawable: Drawable
+
+ private lateinit var tileView: FakeTileView
+ private lateinit var customDrawableView: View
+ private lateinit var chevronView: View
+
+ @Before
+ fun setUp() {
+ MockitoAnnotations.initMocks(this)
+
+ tileView = FakeTileView(context, iconView, false)
+ customDrawableView = tileView.requireViewById(R.id.customDrawable)
+ chevronView = tileView.requireViewById(R.id.chevron)
+ }
+
+ @Test
+ fun testSecondaryLabelNotModified_unavailable() {
+ val state = QSTile.State()
+ val testString = "TEST STRING"
+ state.state = Tile.STATE_UNAVAILABLE
+ state.secondaryLabel = testString
+
+ tileView.changeState(state)
+
+ assertThat(state.secondaryLabel as CharSequence).isEqualTo(testString)
+ }
+
+ @Test
+ fun testSecondaryLabelNotModified_booleanInactive() {
+ val state = QSTile.BooleanState()
+ val testString = "TEST STRING"
+ state.state = Tile.STATE_INACTIVE
+ state.secondaryLabel = testString
+
+ tileView.changeState(state)
+
+ assertThat(state.secondaryLabel as CharSequence).isEqualTo(testString)
+ }
+
+ @Test
+ fun testSecondaryLabelNotModified_booleanActive() {
+ val state = QSTile.BooleanState()
+ val testString = "TEST STRING"
+ state.state = Tile.STATE_ACTIVE
+ state.secondaryLabel = testString
+
+ tileView.changeState(state)
+
+ assertThat(state.secondaryLabel as CharSequence).isEqualTo(testString)
+ }
+
+ @Test
+ fun testSecondaryLabelNotModified_availableNotBoolean_inactive() {
+ val state = QSTile.State()
+ state.state = Tile.STATE_INACTIVE
+ state.secondaryLabel = ""
+
+ tileView.changeState(state)
+
+ assertThat(TextUtils.isEmpty(state.secondaryLabel)).isTrue()
+ }
+
+ @Test
+ fun testSecondaryLabelNotModified_availableNotBoolean_active() {
+ val state = QSTile.State()
+ state.state = Tile.STATE_ACTIVE
+ state.secondaryLabel = ""
+
+ tileView.changeState(state)
+
+ assertThat(TextUtils.isEmpty(state.secondaryLabel)).isTrue()
+ }
+
+ @Test
+ fun testSecondaryLabelDescription_unavailable() {
+ val state = QSTile.State()
+ state.state = Tile.STATE_UNAVAILABLE
+ state.secondaryLabel = ""
+
+ tileView.changeState(state)
+
+ assertThat(state.secondaryLabel as CharSequence).isEqualTo(
+ context.getString(R.string.tile_unavailable)
+ )
+ }
+
+ @Test
+ fun testSecondaryLabelDescription_booleanInactive() {
+ val state = QSTile.BooleanState()
+ state.state = Tile.STATE_INACTIVE
+ state.secondaryLabel = ""
+
+ tileView.changeState(state)
+
+ assertThat(state.secondaryLabel as CharSequence).isEqualTo(
+ context.getString(R.string.switch_bar_off)
+ )
+ }
+
+ @Test
+ fun testSecondaryLabelDescription_booleanActive() {
+ val state = QSTile.BooleanState()
+ state.state = Tile.STATE_ACTIVE
+ state.secondaryLabel = ""
+
+ tileView.changeState(state)
+
+ assertThat(state.secondaryLabel as CharSequence).isEqualTo(
+ context.getString(R.string.switch_bar_on)
+ )
+ }
+
+ @Test
+ fun testShowCustomDrawableViewBooleanState() {
+ val state = QSTile.BooleanState()
+ state.sideViewCustomDrawable = customDrawable
+
+ tileView.changeState(state)
+
+ assertThat(customDrawableView.visibility).isEqualTo(View.VISIBLE)
+ assertThat(chevronView.visibility).isEqualTo(View.GONE)
+ }
+
+ @Test
+ fun testShowCustomDrawableViewNonBooleanState() {
+ val state = QSTile.State()
+ state.sideViewCustomDrawable = customDrawable
+
+ tileView.changeState(state)
+
+ assertThat(customDrawableView.visibility).isEqualTo(View.VISIBLE)
+ assertThat(chevronView.visibility).isEqualTo(View.GONE)
+ }
+
+ @Test
+ fun testShowCustomDrawableViewBooleanStateForceChevron() {
+ val state = QSTile.BooleanState()
+ state.sideViewCustomDrawable = customDrawable
+ state.forceExpandIcon = true
+
+ tileView.changeState(state)
+
+ assertThat(customDrawableView.visibility).isEqualTo(View.VISIBLE)
+ assertThat(chevronView.visibility).isEqualTo(View.GONE)
+ }
+
+ @Test
+ fun testShowChevronNonBooleanState() {
+ val state = QSTile.State()
+
+ tileView.changeState(state)
+
+ assertThat(customDrawableView.visibility).isEqualTo(View.GONE)
+ assertThat(chevronView.visibility).isEqualTo(View.VISIBLE)
+ }
+
+ @Test
+ fun testShowChevronBooleanStateForcheShow() {
+ val state = QSTile.BooleanState()
+ state.forceExpandIcon = true
+
+ tileView.changeState(state)
+
+ assertThat(customDrawableView.visibility).isEqualTo(View.GONE)
+ assertThat(chevronView.visibility).isEqualTo(View.VISIBLE)
+ }
+
+ @Test
+ fun testNoImageShown() {
+ val state = QSTile.BooleanState()
+
+ tileView.changeState(state)
+
+ assertThat(customDrawableView.visibility).isEqualTo(View.GONE)
+ assertThat(chevronView.visibility).isEqualTo(View.GONE)
+ }
+
+ class FakeTileView(
+ context: Context,
+ icon: QSIconView,
+ collapsed: Boolean
+ ) : QSTileViewImpl(context, icon, collapsed) {
+ fun changeState(state: QSTile.State) {
+ handleStateChanged(state)
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/QuickAccessWalletTileTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/QuickAccessWalletTileTest.java
index 9d463d4..e894b7b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/QuickAccessWalletTileTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/QuickAccessWalletTileTest.java
@@ -271,7 +271,7 @@
mContext.getString(R.string.wallet_secondary_label_device_locked),
state.secondaryLabel);
assertNotNull(state.stateDescription);
- assertNull(state.sideViewDrawable);
+ assertNull(state.sideViewCustomDrawable);
}
@Test
@@ -287,7 +287,7 @@
"•••• 1234",
state.secondaryLabel);
assertNotNull(state.stateDescription);
- assertNotNull(state.sideViewDrawable);
+ assertNotNull(state.sideViewCustomDrawable);
}
@@ -303,7 +303,7 @@
mContext.getString(R.string.wallet_secondary_label_no_card),
state.secondaryLabel);
assertNotNull(state.stateDescription);
- assertNull(state.sideViewDrawable);
+ assertNull(state.sideViewCustomDrawable);
}
@Test
@@ -315,7 +315,7 @@
assertEquals(Tile.STATE_UNAVAILABLE, state.state);
assertNull(state.stateDescription);
- assertNull(state.sideViewDrawable);
+ assertNull(state.sideViewCustomDrawable);
}
@Test
@@ -342,7 +342,7 @@
when(mKeyguardStateController.isUnlocked()).thenReturn(true);
setUpWalletCard(/* hasCard= */ true);
- assertNotNull(mTile.getState().sideViewDrawable);
+ assertNotNull(mTile.getState().sideViewCustomDrawable);
}
@Test
@@ -362,7 +362,7 @@
mCallbackCaptor.getValue().onWalletCardsRetrieved(responseWithCards);
mTestableLooper.processAllMessages();
- assertNotNull(mTile.getState().sideViewDrawable);
+ assertNotNull(mTile.getState().sideViewCustomDrawable);
mTile.handleSetListening(true);
@@ -373,14 +373,14 @@
mCallbackCaptor.getValue().onWalletCardsRetrieved(responseWithoutCards);
mTestableLooper.processAllMessages();
- assertNull(mTile.getState().sideViewDrawable);
+ assertNull(mTile.getState().sideViewCustomDrawable);
}
@Test
public void testQueryCards_noCards_notUpdateSideViewDrawable() {
setUpWalletCard(/* hasCard= */ false);
- assertNull(mTile.getState().sideViewDrawable);
+ assertNull(mTile.getState().sideViewCustomDrawable);
}
@Test
@@ -395,7 +395,7 @@
mCallbackCaptor.getValue().onWalletCardRetrievalError(error);
mTestableLooper.processAllMessages();
- assertNull(mTile.getState().sideViewDrawable);
+ assertNull(mTile.getState().sideViewCustomDrawable);
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionProxyReceiverTest.java b/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionProxyReceiverTest.java
index 9a1126f..bfe875c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionProxyReceiverTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/screenshot/ActionProxyReceiverTest.java
@@ -115,7 +115,8 @@
actionProxyReceiver.onReceive(mContext, mIntent);
verify(mMockScreenshotSmartActions, never())
- .notifyScreenshotAction(any(Context.class), anyString(), anyString(), anyBoolean());
+ .notifyScreenshotAction(any(Context.class), anyString(), anyString(), anyBoolean(),
+ any(Intent.class));
}
@Test
@@ -128,7 +129,7 @@
actionProxyReceiver.onReceive(mContext, mIntent);
verify(mMockScreenshotSmartActions).notifyScreenshotAction(
- mContext, testId, ACTION_TYPE_SHARE, false);
+ mContext, testId, ACTION_TYPE_SHARE, false, null);
}
private ActionProxyReceiver constructActionProxyReceiver(boolean withStatusBar) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenshot/DeleteScreenshotReceiverTest.java b/packages/SystemUI/tests/src/com/android/systemui/screenshot/DeleteScreenshotReceiverTest.java
index 14c7679..664c125 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/screenshot/DeleteScreenshotReceiverTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/screenshot/DeleteScreenshotReceiverTest.java
@@ -81,7 +81,8 @@
verify(mMockExecutor, never()).execute(any(Runnable.class));
verify(mMockScreenshotSmartActions, never()).notifyScreenshotAction(
- any(Context.class), any(String.class), any(String.class), anyBoolean());
+ any(Context.class), any(String.class), any(String.class), anyBoolean(),
+ any(Intent.class));
}
@Test
@@ -112,8 +113,8 @@
}
// ensure smart actions not called by default
- verify(mMockScreenshotSmartActions, never()).notifyScreenshotAction(
- any(Context.class), any(String.class), any(String.class), anyBoolean());
+ verify(mMockScreenshotSmartActions, never()).notifyScreenshotAction(any(Context.class),
+ any(String.class), any(String.class), anyBoolean(), any(Intent.class));
}
@Test
@@ -128,8 +129,8 @@
mDeleteScreenshotReceiver.onReceive(mContext, intent);
verify(mMockExecutor).execute(any(Runnable.class));
- verify(mMockScreenshotSmartActions).notifyScreenshotAction(
- mContext, testId, ACTION_TYPE_DELETE, false);
+ verify(mMockScreenshotSmartActions).notifyScreenshotAction(mContext, testId,
+ ACTION_TYPE_DELETE, false, null);
}
private static ContentValues getFakeContentValues() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenshot/SmartActionsReceiverTest.java b/packages/SystemUI/tests/src/com/android/systemui/screenshot/SmartActionsReceiverTest.java
index 6f3a4a1..011e6b7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/screenshot/SmartActionsReceiverTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/screenshot/SmartActionsReceiverTest.java
@@ -23,6 +23,7 @@
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.app.PendingIntent;
import android.content.Intent;
@@ -65,12 +66,14 @@
String testActionType = "testActionType";
mIntent.putExtra(EXTRA_ID, testId);
mIntent.putExtra(EXTRA_ACTION_TYPE, testActionType);
+ Intent intent = new Intent();
+ when(mMockPendingIntent.getIntent()).thenReturn(intent);
mSmartActionsReceiver.onReceive(mContext, mIntent);
verify(mMockPendingIntent).send(
eq(mContext), eq(0), isNull(), isNull(), isNull(), isNull(), any(Bundle.class));
verify(mMockScreenshotSmartActions).notifyScreenshotAction(
- mContext, testId, testActionType, true);
+ mContext, testId, testActionType, true, intent);
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
index b2487e8..b3d52b8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
@@ -178,7 +178,7 @@
@Mock private NotificationsController mNotificationsController;
@Mock private LightBarController mLightBarController;
- @Mock private StatusBarIconController mStatusBarIconController;
+ @Mock private StatusBarSignalPolicy mStatusBarSignalPolicy;
@Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
@Mock private KeyguardStateController mKeyguardStateController;
@Mock private KeyguardIndicationController mKeyguardIndicationController;
@@ -356,7 +356,7 @@
mLightBarController,
mAutoHideController,
mKeyguardUpdateMonitor,
- mStatusBarIconController,
+ mStatusBarSignalPolicy,
mPulseExpansionHandler,
mNotificationWakeUpCoordinator,
mKeyguardBypassController,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallChronometerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallChronometerTest.kt
new file mode 100644
index 0000000..0e77bb3
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallChronometerTest.kt
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.phone.ongoingcall
+
+import android.testing.AndroidTestingRunner
+import android.testing.TestableLooper
+import android.view.LayoutInflater
+import android.view.View
+import android.widget.LinearLayout
+import androidx.test.filters.SmallTest
+import com.android.systemui.R
+import com.android.systemui.SysuiTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+private const val TEXT_VIEW_MAX_WIDTH = 400
+
+// When a [Chronometer] is created, it starts off with "00:00" as its text.
+private const val INITIAL_TEXT = "00:00"
+private const val LARGE_TEXT = "00:000"
+private const val XL_TEXT = "00:0000"
+
+@SmallTest
+@RunWith(AndroidTestingRunner::class)
+@TestableLooper.RunWithLooper
+class OngoingCallChronometerTest : SysuiTestCase() {
+
+ private lateinit var textView: OngoingCallChronometer
+ private lateinit var doesNotFitText: String
+
+ @Before
+ fun setUp() {
+ allowTestableLooperAsMainThread()
+ TestableLooper.get(this).runWithLooper {
+ val chipView = LayoutInflater.from(mContext)
+ .inflate(R.layout.ongoing_call_chip, null) as LinearLayout
+ textView = chipView.findViewById(R.id.ongoing_call_chip_time)!!
+ measureTextView()
+ calculateDoesNotFixText()
+ }
+ }
+
+ @Test
+ fun verifyTextSizes() {
+ val initialTextLength = textView.paint.measureText(INITIAL_TEXT)
+ val largeTextLength = textView.paint.measureText(LARGE_TEXT)
+ val xlTextLength = textView.paint.measureText(XL_TEXT)
+
+ // Assert that our test text sizes do what we expect them to do in the rest of the tests.
+ assertThat(initialTextLength).isLessThan(TEXT_VIEW_MAX_WIDTH)
+ assertThat(largeTextLength).isLessThan(TEXT_VIEW_MAX_WIDTH)
+ assertThat(xlTextLength).isLessThan(TEXT_VIEW_MAX_WIDTH)
+ assertThat(textView.paint.measureText(doesNotFitText)).isGreaterThan(TEXT_VIEW_MAX_WIDTH)
+
+ assertThat(largeTextLength).isGreaterThan(initialTextLength)
+ assertThat(xlTextLength).isGreaterThan(largeTextLength)
+ }
+
+ @Test
+ fun onMeasure_initialTextFitsInSpace_textDisplayed() {
+ assertThat(textView.measuredWidth).isGreaterThan(0)
+ }
+
+ @Test
+ fun onMeasure_newTextLargerThanPreviousText_widthGetsLarger() {
+ val initialTextLength = textView.measuredWidth
+
+ setTextAndMeasure(LARGE_TEXT)
+
+ assertThat(textView.measuredWidth).isGreaterThan(initialTextLength)
+ }
+
+ @Test
+ fun onMeasure_newTextSmallerThanPreviousText_widthDoesNotGetSmaller() {
+ setTextAndMeasure(XL_TEXT)
+ val xlWidth = textView.measuredWidth
+
+ setTextAndMeasure(LARGE_TEXT)
+
+ assertThat(textView.measuredWidth).isEqualTo(xlWidth)
+ }
+
+ @Test
+ fun onMeasure_textDoesNotFit_textHidden() {
+ setTextAndMeasure(doesNotFitText)
+
+ assertThat(textView.measuredWidth).isEqualTo(0)
+ }
+
+ @Test
+ fun onMeasure_newTextFitsButPreviousTextDidNot_textHidden() {
+ setTextAndMeasure(doesNotFitText)
+
+ setTextAndMeasure(LARGE_TEXT)
+
+ assertThat(textView.measuredWidth).isEqualTo(0)
+ }
+
+ @Test
+ fun resetBase_hadLongerTextThenSetBaseThenShorterText_widthIsShort() {
+ setTextAndMeasure(XL_TEXT)
+ val xlWidth = textView.measuredWidth
+
+ textView.base = 0L
+ setTextAndMeasure(INITIAL_TEXT)
+
+ assertThat(textView.measuredWidth).isLessThan(xlWidth)
+ assertThat(textView.measuredWidth).isGreaterThan(0)
+ }
+
+ @Test
+ fun setBase_wasHidingTextThenSetBaseThenShorterText_textShown() {
+ setTextAndMeasure(doesNotFitText)
+
+ textView.base = 0L
+ setTextAndMeasure(INITIAL_TEXT)
+
+ assertThat(textView.measuredWidth).isGreaterThan(0)
+ }
+
+ private fun setTextAndMeasure(text: String) {
+ textView.text = text
+ measureTextView()
+ }
+
+ private fun measureTextView() {
+ textView.measure(
+ View.MeasureSpec.makeMeasureSpec(TEXT_VIEW_MAX_WIDTH, View.MeasureSpec.AT_MOST),
+ View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
+ )
+ }
+
+ /**
+ * Calculates what [doesNotFitText] should be. Needs to be done dynamically because different
+ * devices have different densities, which means the textView can fit different amounts of
+ * characters.
+ */
+ private fun calculateDoesNotFixText() {
+ var currentText = XL_TEXT + "0"
+ while (textView.paint.measureText(currentText) <= TEXT_VIEW_MAX_WIDTH) {
+ currentText += "0"
+ }
+ doesNotFitText = currentText
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt
index c244290..896e330 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ongoingcall/OngoingCallControllerTest.kt
@@ -16,6 +16,9 @@
package com.android.systemui.statusbar.phone.ongoingcall
+import android.app.ActivityManager
+import android.app.IActivityManager
+import android.app.IUidObserver
import android.app.Notification
import android.app.PendingIntent
import android.app.Person
@@ -34,31 +37,46 @@
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener
+import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.time.FakeSystemClock
+import com.android.systemui.util.mockito.any
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentCaptor
-import org.mockito.ArgumentMatchers.anyBoolean
+import org.mockito.ArgumentMatchers.*
import org.mockito.Mock
+import org.mockito.Mockito.`when`
+import org.mockito.Mockito.eq
import org.mockito.Mockito.mock
-import org.mockito.Mockito.verify
import org.mockito.Mockito.never
import org.mockito.Mockito.times
-import org.mockito.Mockito.`when`
+import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
+private const val CALL_UID = 900
+
+// A process state that represents the process being visible to the user.
+private const val PROC_STATE_VISIBLE = ActivityManager.PROCESS_STATE_TOP
+
+// A process state that represents the process being invisible to the user.
+private const val PROC_STATE_INVISIBLE = ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE
+
@SmallTest
@RunWith(AndroidTestingRunner::class)
@TestableLooper.RunWithLooper
class OngoingCallControllerTest : SysuiTestCase() {
+ private val clock = FakeSystemClock()
+ private val mainExecutor = FakeExecutor(clock)
+
private lateinit var controller: OngoingCallController
private lateinit var notifCollectionListener: NotifCollectionListener
@Mock private lateinit var mockOngoingCallListener: OngoingCallListener
@Mock private lateinit var mockActivityStarter: ActivityStarter
+ @Mock private lateinit var mockIActivityManager: IActivityManager
private lateinit var chipView: LinearLayout
@@ -76,7 +94,12 @@
val notificationCollection = mock(CommonNotifCollection::class.java)
controller = OngoingCallController(
- notificationCollection, featureFlags, FakeSystemClock(), mockActivityStarter)
+ notificationCollection,
+ featureFlags,
+ clock,
+ mockActivityStarter,
+ mainExecutor,
+ mockIActivityManager)
controller.init()
controller.addCallback(mockOngoingCallListener)
controller.setChipView(chipView)
@@ -84,34 +107,37 @@
val collectionListenerCaptor = ArgumentCaptor.forClass(NotifCollectionListener::class.java)
verify(notificationCollection).addCollectionListener(collectionListenerCaptor.capture())
notifCollectionListener = collectionListenerCaptor.value!!
+
+ `when`(mockIActivityManager.getUidProcessState(eq(CALL_UID), nullable(String::class.java)))
+ .thenReturn(PROC_STATE_INVISIBLE)
}
@Test
fun onEntryUpdated_isOngoingCallNotif_listenerNotifiedWithRightCallTime() {
notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
- verify(mockOngoingCallListener).onOngoingCallStarted(anyBoolean())
+ verify(mockOngoingCallListener).onOngoingCallStateChanged(anyBoolean())
}
@Test
fun onEntryUpdated_notOngoingCallNotif_listenerNotNotified() {
notifCollectionListener.onEntryUpdated(createNotCallNotifEntry())
- verify(mockOngoingCallListener, never()).onOngoingCallStarted(anyBoolean())
+ verify(mockOngoingCallListener, never()).onOngoingCallStateChanged(anyBoolean())
}
@Test
fun onEntryRemoved_ongoingCallNotif_listenerNotified() {
notifCollectionListener.onEntryRemoved(createOngoingCallNotifEntry(), REASON_USER_STOPPED)
- verify(mockOngoingCallListener).onOngoingCallEnded(anyBoolean())
+ verify(mockOngoingCallListener).onOngoingCallStateChanged(anyBoolean())
}
@Test
fun onEntryRemoved_notOngoingCallNotif_listenerNotNotified() {
notifCollectionListener.onEntryRemoved(createNotCallNotifEntry(), REASON_USER_STOPPED)
- verify(mockOngoingCallListener, never()).onOngoingCallEnded(anyBoolean())
+ verify(mockOngoingCallListener, never()).onOngoingCallStateChanged(anyBoolean())
}
@Test
@@ -120,13 +146,26 @@
}
@Test
- fun hasOngoingCall_ongoingCallNotifSentAndChipViewSet_returnsTrue() {
+ fun hasOngoingCall_ongoingCallNotifSentAndCallAppNotVisible_returnsTrue() {
+ `when`(mockIActivityManager.getUidProcessState(eq(CALL_UID), nullable(String::class.java)))
+ .thenReturn(PROC_STATE_INVISIBLE)
+
notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
assertThat(controller.hasOngoingCall()).isTrue()
}
@Test
+ fun hasOngoingCall_ongoingCallNotifSentButCallAppVisible_returnsFalse() {
+ `when`(mockIActivityManager.getUidProcessState(eq(CALL_UID), nullable(String::class.java)))
+ .thenReturn(PROC_STATE_VISIBLE)
+
+ notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
+
+ assertThat(controller.hasOngoingCall()).isFalse()
+ }
+
+ @Test
fun hasOngoingCall_ongoingCallNotifSentButInvalidChipView_returnsFalse() {
val invalidChipView = LinearLayout(context)
controller.setChipView(invalidChipView)
@@ -169,7 +208,52 @@
// Verify the listener was notified once for the initial call and again when the new view
// was set.
- verify(mockOngoingCallListener, times(2)).onOngoingCallStarted(anyBoolean())
+ verify(mockOngoingCallListener, times(2))
+ .onOngoingCallStateChanged(anyBoolean())
+ }
+
+ @Test
+ fun callProcessChangesToVisible_listenerNotified() {
+ // Start the call while the process is invisible.
+ `when`(mockIActivityManager.getUidProcessState(eq(CALL_UID), nullable(String::class.java)))
+ .thenReturn(PROC_STATE_INVISIBLE)
+ notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
+
+ val captor = ArgumentCaptor.forClass(IUidObserver.Stub::class.java)
+ verify(mockIActivityManager).registerUidObserver(
+ captor.capture(), any(), any(), nullable(String::class.java))
+ val uidObserver = captor.value
+
+ // Update the process to visible.
+ uidObserver.onUidStateChanged(CALL_UID, PROC_STATE_VISIBLE, 0, 0)
+ mainExecutor.advanceClockToLast()
+ mainExecutor.runAllReady();
+
+ // Once for when the call was started, and another time when the process visibility changes.
+ verify(mockOngoingCallListener, times(2))
+ .onOngoingCallStateChanged(anyBoolean())
+ }
+
+ @Test
+ fun callProcessChangesToInvisible_listenerNotified() {
+ // Start the call while the process is visible.
+ `when`(mockIActivityManager.getUidProcessState(eq(CALL_UID), nullable(String::class.java)))
+ .thenReturn(PROC_STATE_VISIBLE)
+ notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
+
+ val captor = ArgumentCaptor.forClass(IUidObserver.Stub::class.java)
+ verify(mockIActivityManager).registerUidObserver(
+ captor.capture(), any(), any(), nullable(String::class.java))
+ val uidObserver = captor.value
+
+ // Update the process to invisible.
+ uidObserver.onUidStateChanged(CALL_UID, PROC_STATE_INVISIBLE, 0, 0)
+ mainExecutor.advanceClockToLast()
+ mainExecutor.runAllReady();
+
+ // Once for when the call was started, and another time when the process visibility changes.
+ verify(mockOngoingCallListener, times(2))
+ .onOngoingCallStateChanged(anyBoolean())
}
private fun createOngoingCallNotifEntry(): NotificationEntry {
@@ -179,6 +263,7 @@
val contentIntent = mock(PendingIntent::class.java)
`when`(contentIntent.intent).thenReturn(mock(Intent::class.java))
notificationEntryBuilder.modifyNotification(context).setContentIntent(contentIntent)
+ notificationEntryBuilder.setUid(CALL_UID)
return notificationEntryBuilder.build()
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java
index f33c9e8..abc66db 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java
@@ -76,6 +76,7 @@
import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators;
import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;
import com.android.systemui.telephony.TelephonyListenerManager;
+import com.android.systemui.util.CarrierConfigTracker;
import com.android.systemui.util.concurrency.FakeExecutor;
import com.android.systemui.util.time.FakeSystemClock;
@@ -124,6 +125,7 @@
protected DeviceProvisionedListener mUserCallback;
protected Instrumentation mInstrumentation;
protected DemoModeController mDemoModeController;
+ protected CarrierConfigTracker mCarrierConfigTracker;
protected FakeExecutor mFakeExecutor = new FakeExecutor(new FakeSystemClock());
protected int mSubId;
@@ -174,6 +176,7 @@
mMockBd = mock(BroadcastDispatcher.class);
mMockNsm = mock(NetworkScoreManager.class);
mMockSubDefaults = mock(SubscriptionDefaults.class);
+ mCarrierConfigTracker = mock(CarrierConfigTracker.class);
mNetCapabilities = new NetworkCapabilities();
when(mMockTm.isDataCapable()).thenReturn(true);
when(mMockTm.createForSubscriptionId(anyInt())).thenReturn(mMockTm);
@@ -231,7 +234,8 @@
mMockSubDefaults,
mMockProvisionController,
mMockBd,
- mDemoModeController);
+ mDemoModeController,
+ mCarrierConfigTracker);
setupNetworkController();
// Trigger blank callbacks to always get the current state (some tests don't trigger
@@ -298,7 +302,8 @@
mCallbackHandler,
mock(AccessPointControllerImpl.class),
mock(DataUsageController.class), mMockSubDefaults,
- mock(DeviceProvisionedController.class), mMockBd, mDemoModeController);
+ mock(DeviceProvisionedController.class), mMockBd, mDemoModeController,
+ mCarrierConfigTracker);
setupNetworkController();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java
index 6219faf..09554e717 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java
@@ -21,6 +21,7 @@
import com.android.settingslib.mobile.TelephonyIcons;
import com.android.settingslib.net.DataUsageController;
+import com.android.systemui.util.CarrierConfigTracker;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -111,7 +112,8 @@
mMockNsm, mMockSm, mConfig, Looper.getMainLooper(), mFakeExecutor, mCallbackHandler,
mock(AccessPointControllerImpl.class),
mock(DataUsageController.class), mMockSubDefaults,
- mock(DeviceProvisionedController.class), mMockBd, mDemoModeController);
+ mock(DeviceProvisionedController.class), mMockBd, mDemoModeController,
+ mock(CarrierConfigTracker.class));
setupNetworkController();
setupDefaultSignal();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java
index 8d3e403..1e7801d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java
@@ -41,6 +41,7 @@
import com.android.settingslib.mobile.TelephonyIcons;
import com.android.settingslib.net.DataUsageController;
import com.android.systemui.R;
+import com.android.systemui.util.CarrierConfigTracker;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -66,7 +67,7 @@
Looper.getMainLooper(), mFakeExecutor, mCallbackHandler,
mock(AccessPointControllerImpl.class), mock(DataUsageController.class),
mMockSubDefaults, mock(DeviceProvisionedController.class), mMockBd,
- mDemoModeController);
+ mDemoModeController, mock(CarrierConfigTracker.class));
setupNetworkController();
verifyLastMobileDataIndicators(false, -1, 0);
@@ -86,7 +87,7 @@
Looper.getMainLooper(), mFakeExecutor, mCallbackHandler,
mock(AccessPointControllerImpl.class), mock(DataUsageController.class),
mMockSubDefaults, mock(DeviceProvisionedController.class), mMockBd,
- mDemoModeController);
+ mDemoModeController, mock(CarrierConfigTracker.class));
mNetworkController.registerListeners();
// Wait for the main looper to execute the previous command
@@ -154,7 +155,7 @@
Looper.getMainLooper(), mFakeExecutor, mCallbackHandler,
mock(AccessPointControllerImpl.class), mock(DataUsageController.class),
mMockSubDefaults, mock(DeviceProvisionedController.class), mMockBd,
- mDemoModeController);
+ mDemoModeController, mock(CarrierConfigTracker.class));
setupNetworkController();
// No Subscriptions.
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java
index bfb98de..687ca60 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java
@@ -269,9 +269,9 @@
}
// Set the ImsType to be IMS_TYPE_WWAN
setImsType(1);
+ setupDefaultSignal();
for (int testStrength = 0;
testStrength < CellSignalStrength.getNumSignalStrengthLevels(); testStrength++) {
- setupDefaultSignal();
setLevel(testStrength);
verifyLastCallStrength(TelephonyIcons.MOBILE_CALL_STRENGTH_ICONS[testStrength]);
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/concurrency/FakeThreadFactory.java b/packages/SystemUI/tests/src/com/android/systemui/util/concurrency/FakeThreadFactory.java
index 8c92482..ce71ac8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/util/concurrency/FakeThreadFactory.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/concurrency/FakeThreadFactory.java
@@ -16,6 +16,8 @@
package com.android.systemui.util.concurrency;
+import android.os.Looper;
+
import java.util.concurrent.Executor;
/**
@@ -37,4 +39,9 @@
public DelayableExecutor buildDelayableExecutorOnNewThread(String threadName) {
return mFakeExecutor;
}
+
+ @Override
+ public DelayableExecutor buildDelayableExecutorOnLooper(Looper looper) {
+ return mFakeExecutor;
+ }
}
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
index d922d2b..3bb6e08 100644
--- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
@@ -1839,6 +1839,8 @@
// For a full update we replace the RemoteViews completely.
widget.views = views;
}
+ widget.views.setProviderInstanceId(UPDATE_COUNTER.get());
+
int memoryUsage;
if ((UserHandle.getAppId(Binder.getCallingUid()) != Process.SYSTEM_UID) &&
(widget.views != null) &&
@@ -1939,6 +1941,9 @@
|| widget.host.callbacks == null || widget.host.zombie) {
return;
}
+ if (updateViews != null) {
+ updateViews.setProviderInstanceId(requestId);
+ }
SomeArgs args = SomeArgs.obtain();
args.arg1 = widget.host;
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java
index ab3060a..dc8f84a 100644
--- a/services/core/java/com/android/server/UiModeManagerService.java
+++ b/services/core/java/com/android/server/UiModeManagerService.java
@@ -33,7 +33,7 @@
import android.app.ActivityManager;
import android.app.ActivityTaskManager;
import android.app.AlarmManager;
-import android.app.IOnProjectionStateChangeListener;
+import android.app.IOnProjectionStateChangedListener;
import android.app.IUiModeManager;
import android.app.Notification;
import android.app.NotificationManager;
@@ -181,7 +181,7 @@
private SparseArray<List<ProjectionHolder>> mProjectionHolders;
@GuardedBy("mLock")
@Nullable
- private SparseArray<RemoteCallbackList<IOnProjectionStateChangeListener>> mProjectionListeners;
+ private SparseArray<RemoteCallbackList<IOnProjectionStateChangedListener>> mProjectionListeners;
public UiModeManagerService(Context context) {
this(context, /* setupWizardComplete= */ false, /* tm= */ null, new Injector());
@@ -993,11 +993,11 @@
}
}
- public void addOnProjectionStateChangeListener(IOnProjectionStateChangeListener listener,
+ public void addOnProjectionStateChangedListener(IOnProjectionStateChangedListener listener,
@UiModeManager.ProjectionType int projectionType) {
getContext().enforceCallingOrSelfPermission(
android.Manifest.permission.READ_PROJECTION_STATE,
- "registerProjectionStateListener");
+ "addOnProjectionStateChangedListener");
if (projectionType == PROJECTION_TYPE_NONE) {
return;
}
@@ -1027,11 +1027,11 @@
}
- public void removeOnProjectionStateChangeListener(
- IOnProjectionStateChangeListener listener) {
+ public void removeOnProjectionStateChangedListener(
+ IOnProjectionStateChangedListener listener) {
getContext().enforceCallingOrSelfPermission(
android.Manifest.permission.READ_PROJECTION_STATE,
- "unregisterProjectionStateListener");
+ "removeOnProjectionStateChangedListener");
synchronized (mLock) {
if (mProjectionListeners != null) {
for (int i = 0; i < mProjectionListeners.size(); ++i) {
@@ -1191,7 +1191,7 @@
// Every listener that is affected must be called back with all the state they are
// listening for.
if ((changedProjectionType & listenerProjectionType) != 0) {
- RemoteCallbackList<IOnProjectionStateChangeListener> listeners =
+ RemoteCallbackList<IOnProjectionStateChangedListener> listeners =
mProjectionListeners.valueAt(i);
List<String> packageNames = new ArrayList<>();
@UiModeManager.ProjectionType int activeProjectionTypes =
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index b261231..5700bb36 100644
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -155,7 +155,6 @@
import com.android.server.LocalServices;
import com.android.server.SystemService;
import com.android.server.am.ActivityManagerService.ItemMatcher;
-import com.android.server.notification.NotificationManagerInternal;
import com.android.server.uri.NeededUriGrants;
import com.android.server.wm.ActivityServiceConnectionsHolder;
@@ -1978,17 +1977,6 @@
showNow = isLegacyApp && mAm.mConstants.mFlagFgsNotificationDeferralApiGated;
}
if (!showNow) {
- // did we already show it?
- showNow = r.mFgsNotificationShown;
- }
- if (!showNow) {
- // Is the notification already showing for any reason?
- final NotificationManagerInternal nmi =
- LocalServices.getService(NotificationManagerInternal.class);
- showNow = nmi.isNotificationShown(r.appInfo.packageName, null,
- r.foregroundId, UserHandle.getUserId(uid));
- }
- if (!showNow) {
// has the app forced deferral?
if (!r.foregroundNoti.isForegroundDisplayForceDeferred()) {
// is the notification such that it should show right away?
diff --git a/services/core/java/com/android/server/am/ActivityManagerConstants.java b/services/core/java/com/android/server/am/ActivityManagerConstants.java
index f7ce6dd..1743d7e 100644
--- a/services/core/java/com/android/server/am/ActivityManagerConstants.java
+++ b/services/core/java/com/android/server/am/ActivityManagerConstants.java
@@ -147,7 +147,7 @@
private static final int DEFAULT_MAX_PHANTOM_PROCESSES = 32;
private static final int DEFAULT_PROCESS_CRASH_COUNT_RESET_INTERVAL = 12 * 60 * 60 * 1000;
private static final int DEFAULT_PROCESS_CRASH_COUNT_LIMIT = 12;
- private static final int DEFAULT_BOOT_TIME_TEMP_ALLOWLIST_DURATION = 10 * 1000;
+ private static final int DEFAULT_BOOT_TIME_TEMP_ALLOWLIST_DURATION = 20 * 1000;
private static final long DEFAULT_FG_TO_BG_FGS_GRACE_DURATION = 5 * 1000;
private static final int DEFAULT_FGS_START_FOREGROUND_TIMEOUT_MS = 10 * 1000;
private static final float DEFAULT_FGS_ATOM_SAMPLE_RATE = 1; // 100 %
diff --git a/services/core/java/com/android/server/am/AppErrors.java b/services/core/java/com/android/server/am/AppErrors.java
index 5a59eabd..bcb42bb 100644
--- a/services/core/java/com/android/server/am/AppErrors.java
+++ b/services/core/java/com/android/server/am/AppErrors.java
@@ -32,6 +32,7 @@
import android.app.AnrController;
import android.app.ApplicationErrorReport;
import android.app.ApplicationExitInfo;
+import android.app.usage.UsageStatsManager;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
@@ -57,7 +58,9 @@
import com.android.internal.app.ProcessMap;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto;
+import com.android.server.LocalServices;
import com.android.server.PackageWatchdog;
+import com.android.server.usage.AppStandbyInternal;
import com.android.server.wm.WindowProcessController;
import java.io.FileDescriptor;
@@ -885,6 +888,16 @@
}
errState.setBad(true);
app.setRemoved(true);
+ final AppStandbyInternal appStandbyInternal =
+ LocalServices.getService(AppStandbyInternal.class);
+ if (appStandbyInternal != null) {
+ appStandbyInternal.restrictApp(
+ // Sometimes the processName is the same as the package name, so use
+ // that if we don't have the ApplicationInfo object.
+ // AppStandbyController will just return if it can't find the app.
+ app.info != null ? app.info.packageName : processName,
+ userId, UsageStatsManager.REASON_SUB_FORCED_SYSTEM_FLAG_BUGGY);
+ }
// Don't let services in this process be restarted and potentially
// annoy the user repeatedly. Unless it is persistent, since those
// processes run critical code.
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index cc98abf..af3f658 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -3418,6 +3418,11 @@
return;
}
+ if (app.getPid() == 0 && !app.isPendingStart()) {
+ // This process has been killed and its cleanup is done, don't proceed the LRU update.
+ return;
+ }
+
synchronized (mProcLock) {
updateLruProcessLSP(app, client, hasActivity, hasService);
}
diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java
index 0314510..fb919fb 100644
--- a/services/core/java/com/android/server/content/SyncManager.java
+++ b/services/core/java/com/android/server/content/SyncManager.java
@@ -1659,13 +1659,31 @@
final UsageStatsManagerInternal usmi =
LocalServices.getService(UsageStatsManagerInternal.class);
if (usmi != null) {
+ // This method name is unfortunate. It elevates apps to a higher bucket, so it ideally
+ // should be called before we attempt to schedule the job (especially as EJ).
usmi.reportSyncScheduled(syncOperation.owningPackage,
UserHandle.getUserId(syncOperation.owningUid),
syncOperation.isAppStandbyExempted());
}
- getJobScheduler().scheduleAsPackage(b.build(), syncOperation.owningPackage,
+ final JobInfo ji = b.build();
+ int result = getJobScheduler().scheduleAsPackage(ji, syncOperation.owningPackage,
syncOperation.target.userId, syncOperation.wakeLockName());
+ if (result == JobScheduler.RESULT_FAILURE && ji.isExpedited()) {
+ if (isLoggable) {
+ Slog.i(TAG, "Failed to schedule EJ for " + syncOperation.owningPackage
+ + ". Downgrading to regular");
+ }
+ syncOperation.scheduleEjAsRegularJob = true;
+ b.setExpedited(false).setExtras(syncOperation.toJobInfoExtras());
+ result = getJobScheduler().scheduleAsPackage(b.build(), syncOperation.owningPackage,
+ syncOperation.target.userId, syncOperation.wakeLockName());
+ }
+ if (result == JobScheduler.RESULT_FAILURE) {
+ Slog.e(TAG, "Failed to schedule job for " + syncOperation.owningPackage);
+ // TODO: notify AppStandbyController that the sync isn't actually scheduled so the
+ // bucket doesn't stay elevated
+ }
}
/**
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index c51571a..1c27c65 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -16,6 +16,8 @@
package com.android.server.input;
+import static android.view.Surface.ROTATION_0;
+
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.Notification;
@@ -38,6 +40,7 @@
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.database.ContentObserver;
+import android.graphics.Point;
import android.graphics.Rect;
import android.hardware.display.DisplayManager;
import android.hardware.display.DisplayViewport;
@@ -97,6 +100,7 @@
import android.view.InputEvent;
import android.view.InputMonitor;
import android.view.KeyEvent;
+import android.view.MotionEvent;
import android.view.PointerIcon;
import android.view.Surface;
import android.view.VerifiedInputEvent;
@@ -820,6 +824,28 @@
&& mode != InputEventInjectionSync.WAIT_FOR_RESULT) {
throw new IllegalArgumentException("mode is invalid");
}
+ if (ENABLE_PER_WINDOW_INPUT_ROTATION) {
+ if (event instanceof MotionEvent) {
+ final Context dispCtx = getContextForDisplay(event.getDisplayId());
+ final Display display = dispCtx.getDisplay();
+ final int rotation = display.getRotation();
+ if (rotation != ROTATION_0) {
+ final MotionEvent motion = (MotionEvent) event;
+ // Injections are currently expected to be in the space of the injector (ie.
+ // usually assumed to be post-rotated). Thus we need to unrotate into raw
+ // input coordinates for dispatch.
+ final Point sz = new Point();
+ display.getRealSize(sz);
+ if ((rotation % 2) != 0) {
+ final int tmpX = sz.x;
+ sz.x = sz.y;
+ sz.y = tmpX;
+ }
+ motion.applyTransform(MotionEvent.createRotateMatrix(
+ (4 - rotation), sz.x, sz.y));
+ }
+ }
+ }
final int pid = Binder.getCallingPid();
final int uid = Binder.getCallingUid();
diff --git a/services/core/java/com/android/server/location/eventlog/LocationEventLog.java b/services/core/java/com/android/server/location/eventlog/LocationEventLog.java
index 2ffc62a..66b23c4 100644
--- a/services/core/java/com/android/server/location/eventlog/LocationEventLog.java
+++ b/services/core/java/com/android/server/location/eventlog/LocationEventLog.java
@@ -58,13 +58,17 @@
private static final int EVENT_LOCATION_ENABLED = 2;
private static final int EVENT_PROVIDER_ENABLED = 3;
private static final int EVENT_PROVIDER_MOCKED = 4;
- private static final int EVENT_PROVIDER_REGISTER_CLIENT = 5;
- private static final int EVENT_PROVIDER_UNREGISTER_CLIENT = 6;
- private static final int EVENT_PROVIDER_UPDATE_REQUEST = 7;
- private static final int EVENT_PROVIDER_RECEIVE_LOCATION = 8;
- private static final int EVENT_PROVIDER_DELIVER_LOCATION = 9;
- private static final int EVENT_PROVIDER_STATIONARY_THROTTLED = 10;
- private static final int EVENT_LOCATION_POWER_SAVE_MODE_CHANGE = 11;
+ private static final int EVENT_PROVIDER_CLIENT_REGISTER = 5;
+ private static final int EVENT_PROVIDER_CLIENT_UNREGISTER = 6;
+ private static final int EVENT_PROVIDER_CLIENT_FOREGROUND = 7;
+ private static final int EVENT_PROVIDER_CLIENT_BACKGROUND = 8;
+ private static final int EVENT_PROVIDER_CLIENT_PERMITTED = 9;
+ private static final int EVENT_PROVIDER_CLIENT_UNPERMITTED = 10;
+ private static final int EVENT_PROVIDER_UPDATE_REQUEST = 11;
+ private static final int EVENT_PROVIDER_RECEIVE_LOCATION = 12;
+ private static final int EVENT_PROVIDER_DELIVER_LOCATION = 13;
+ private static final int EVENT_PROVIDER_STATIONARY_THROTTLED = 14;
+ private static final int EVENT_LOCATION_POWER_SAVE_MODE_CHANGE = 15;
@GuardedBy("mAggregateStats")
private final ArrayMap<String, ArrayMap<CallerIdentity, AggregateStats>> mAggregateStats;
@@ -126,13 +130,13 @@
/** Logs a new client registration for a location provider. */
public void logProviderClientRegistered(String provider, CallerIdentity identity,
LocationRequest request) {
- addLogEvent(EVENT_PROVIDER_REGISTER_CLIENT, provider, identity, request);
+ addLogEvent(EVENT_PROVIDER_CLIENT_REGISTER, provider, identity, request);
getAggregateStats(provider, identity).markRequestAdded(request.getIntervalMillis());
}
/** Logs a client unregistration for a location provider. */
public void logProviderClientUnregistered(String provider, CallerIdentity identity) {
- addLogEvent(EVENT_PROVIDER_UNREGISTER_CLIENT, provider, identity);
+ addLogEvent(EVENT_PROVIDER_CLIENT_UNREGISTER, provider, identity);
getAggregateStats(provider, identity).markRequestRemoved();
}
@@ -148,14 +152,34 @@
/** Logs a client for a location provider entering the foreground state. */
public void logProviderClientForeground(String provider, CallerIdentity identity) {
+ if (Build.IS_DEBUGGABLE || D) {
+ addLogEvent(EVENT_PROVIDER_CLIENT_FOREGROUND, provider, identity);
+ }
getAggregateStats(provider, identity).markRequestForeground();
}
/** Logs a client for a location provider leaving the foreground state. */
public void logProviderClientBackground(String provider, CallerIdentity identity) {
+ if (Build.IS_DEBUGGABLE || D) {
+ addLogEvent(EVENT_PROVIDER_CLIENT_BACKGROUND, provider, identity);
+ }
getAggregateStats(provider, identity).markRequestBackground();
}
+ /** Logs a client for a location provider entering the permitted state. */
+ public void logProviderClientPermitted(String provider, CallerIdentity identity) {
+ if (Build.IS_DEBUGGABLE || D) {
+ addLogEvent(EVENT_PROVIDER_CLIENT_PERMITTED, provider, identity);
+ }
+ }
+
+ /** Logs a client for a location provider leaving the permitted state. */
+ public void logProviderClientUnpermitted(String provider, CallerIdentity identity) {
+ if (Build.IS_DEBUGGABLE || D) {
+ addLogEvent(EVENT_PROVIDER_CLIENT_UNPERMITTED, provider, identity);
+ }
+ }
+
/** Logs a change to the provider request for a location provider. */
public void logProviderUpdateRequest(String provider, ProviderRequest request) {
addLogEvent(EVENT_PROVIDER_UPDATE_REQUEST, provider, request);
@@ -201,12 +225,24 @@
(Boolean) args[2]);
case EVENT_PROVIDER_MOCKED:
return new ProviderMockedEvent(timeDelta, (String) args[0], (Boolean) args[1]);
- case EVENT_PROVIDER_REGISTER_CLIENT:
- return new ProviderRegisterEvent(timeDelta, (String) args[0], true,
+ case EVENT_PROVIDER_CLIENT_REGISTER:
+ return new ProviderClientRegisterEvent(timeDelta, (String) args[0], true,
(CallerIdentity) args[1], (LocationRequest) args[2]);
- case EVENT_PROVIDER_UNREGISTER_CLIENT:
- return new ProviderRegisterEvent(timeDelta, (String) args[0], false,
+ case EVENT_PROVIDER_CLIENT_UNREGISTER:
+ return new ProviderClientRegisterEvent(timeDelta, (String) args[0], false,
(CallerIdentity) args[1], null);
+ case EVENT_PROVIDER_CLIENT_FOREGROUND:
+ return new ProviderClientForegroundEvent(timeDelta, (String) args[0], true,
+ (CallerIdentity) args[1]);
+ case EVENT_PROVIDER_CLIENT_BACKGROUND:
+ return new ProviderClientForegroundEvent(timeDelta, (String) args[0], false,
+ (CallerIdentity) args[1]);
+ case EVENT_PROVIDER_CLIENT_PERMITTED:
+ return new ProviderClientPermittedEvent(timeDelta, (String) args[0], true,
+ (CallerIdentity) args[1]);
+ case EVENT_PROVIDER_CLIENT_UNPERMITTED:
+ return new ProviderClientPermittedEvent(timeDelta, (String) args[0], false,
+ (CallerIdentity) args[1]);
case EVENT_PROVIDER_UPDATE_REQUEST:
return new ProviderUpdateEvent(timeDelta, (String) args[0],
(ProviderRequest) args[1]);
@@ -279,13 +315,13 @@
}
}
- private static final class ProviderRegisterEvent extends ProviderEvent {
+ private static final class ProviderClientRegisterEvent extends ProviderEvent {
private final boolean mRegistered;
private final CallerIdentity mIdentity;
@Nullable private final LocationRequest mLocationRequest;
- ProviderRegisterEvent(long timeDelta, String provider, boolean registered,
+ ProviderClientRegisterEvent(long timeDelta, String provider, boolean registered,
CallerIdentity identity, @Nullable LocationRequest locationRequest) {
super(timeDelta, provider);
mRegistered = registered;
@@ -296,14 +332,52 @@
@Override
public String getLogString() {
if (mRegistered) {
- return mProvider + " provider " + "+registration " + mIdentity + " -> "
+ return mProvider + " provider +registration " + mIdentity + " -> "
+ mLocationRequest;
} else {
- return mProvider + " provider " + "-registration " + mIdentity;
+ return mProvider + " provider -registration " + mIdentity;
}
}
}
+ private static final class ProviderClientForegroundEvent extends ProviderEvent {
+
+ private final boolean mForeground;
+ private final CallerIdentity mIdentity;
+
+ ProviderClientForegroundEvent(long timeDelta, String provider, boolean foreground,
+ CallerIdentity identity) {
+ super(timeDelta, provider);
+ mForeground = foreground;
+ mIdentity = identity;
+ }
+
+ @Override
+ public String getLogString() {
+ return mProvider + " provider client " + mIdentity + " -> "
+ + (mForeground ? "foreground" : "background");
+ }
+ }
+
+ private static final class ProviderClientPermittedEvent extends ProviderEvent {
+
+ private final boolean mPermitted;
+ private final CallerIdentity mIdentity;
+
+ ProviderClientPermittedEvent(long timeDelta, String provider, boolean permitted,
+ CallerIdentity identity) {
+ super(timeDelta, provider);
+ mPermitted = permitted;
+ mIdentity = identity;
+ }
+
+ @Override
+ public String getLogString() {
+ return mProvider + " provider client " + mIdentity + " -> "
+ + (mPermitted ? "permitted" : "unpermitted");
+ }
+ }
+
private static final class ProviderUpdateEvent extends ProviderEvent {
private final ProviderRequest mRequest;
diff --git a/services/core/java/com/android/server/location/provider/LocationProviderManager.java b/services/core/java/com/android/server/location/provider/LocationProviderManager.java
index 4b772f2..9474f5d 100644
--- a/services/core/java/com/android/server/location/provider/LocationProviderManager.java
+++ b/services/core/java/com/android/server/location/provider/LocationProviderManager.java
@@ -523,6 +523,13 @@
}
mPermitted = permitted;
+
+ if (mForeground) {
+ EVENT_LOG.logProviderClientPermitted(mName, getIdentity());
+ } else {
+ EVENT_LOG.logProviderClientUnpermitted(mName, getIdentity());
+ }
+
return true;
}
diff --git a/services/core/java/com/android/server/media/AudioPlayerStateMonitor.java b/services/core/java/com/android/server/media/AudioPlayerStateMonitor.java
index b9822fcb..d285c43 100644
--- a/services/core/java/com/android/server/media/AudioPlayerStateMonitor.java
+++ b/services/core/java/com/android/server/media/AudioPlayerStateMonitor.java
@@ -258,16 +258,16 @@
if (mActiveAudioUids.size() > 0
&& !mActiveAudioUids.contains(mSortedAudioPlaybackClientUids.get(0))) {
int firstActiveUid = -1;
- int firatActiveUidIndex = -1;
+ int firstActiveUidIndex = -1;
for (int i = 1; i < mSortedAudioPlaybackClientUids.size(); ++i) {
int uid = mSortedAudioPlaybackClientUids.get(i);
if (mActiveAudioUids.contains(uid)) {
- firatActiveUidIndex = i;
+ firstActiveUidIndex = i;
firstActiveUid = uid;
break;
}
}
- for (int i = firatActiveUidIndex; i > 0; --i) {
+ for (int i = firstActiveUidIndex; i > 0; --i) {
mSortedAudioPlaybackClientUids.set(i,
mSortedAudioPlaybackClientUids.get(i - 1));
}
diff --git a/services/core/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java
index 384bc99..9f02c3c 100644
--- a/services/core/java/com/android/server/media/MediaRouterService.java
+++ b/services/core/java/com/android/server/media/MediaRouterService.java
@@ -907,6 +907,8 @@
mActiveBluetoothDevice = btDevice;
mGlobalBluetoothA2dpOn = btDevice != null;
if (wasA2dpOn != mGlobalBluetoothA2dpOn) {
+ Slog.d(TAG, "GlobalBluetoothA2dpOn is changed to '"
+ + mGlobalBluetoothA2dpOn + "'");
UserRecord userRecord = mUserRecords.get(mCurrentUserId);
if (userRecord != null) {
for (ClientRecord cr : userRecord.mClientRecords) {
diff --git a/services/core/java/com/android/server/notification/NotificationManagerInternal.java b/services/core/java/com/android/server/notification/NotificationManagerInternal.java
index 0528b95..dc9839c 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerInternal.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerInternal.java
@@ -30,9 +30,6 @@
void cancelNotification(String pkg, String basePkg, int callingUid, int callingPid,
String tag, int id, int userId);
- /** is the given notification currently showing? */
- boolean isNotificationShown(String pkg, String tag, int notificationId, int userId);
-
void removeForegroundServiceFlagFromNotification(String pkg, int notificationId, int userId);
void onConversationRemoved(String pkg, int uid, Set<String> shortcuts);
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 6083bc5..53e3a0e 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -645,7 +645,7 @@
sb.append("Archive (");
sb.append(N);
sb.append(" notification");
- sb.append((N==1)?")":"s)");
+ sb.append((N == 1) ? ")" : "s)");
return sb.toString();
}
@@ -718,6 +718,22 @@
}
}
}
+
+ void dumpImpl(PrintWriter pw, @NonNull DumpFilter filter) {
+ synchronized (mBufferLock) {
+ Iterator<Pair<StatusBarNotification, Integer>> iter = descendingIterator();
+ int i = 0;
+ while (iter.hasNext()) {
+ final StatusBarNotification sbn = iter.next().first;
+ if (filter != null && !filter.matches(sbn)) continue;
+ pw.println(" " + sbn);
+ if (++i >= 5) {
+ if (iter.hasNext()) pw.println(" ...");
+ break;
+ }
+ }
+ }
+ }
}
void loadDefaultApprovedServices(int userId) {
@@ -5928,17 +5944,7 @@
+ mPreferencesHelper.shouldHideSilentStatusIcons());
}
pw.println(" mArchive=" + mArchive.toString());
- Iterator<Pair<StatusBarNotification, Integer>> iter = mArchive.descendingIterator();
- int j=0;
- while (iter.hasNext()) {
- final StatusBarNotification sbn = iter.next().first;
- if (filter != null && !filter.matches(sbn)) continue;
- pw.println(" " + sbn);
- if (++j >= 5) {
- if (iter.hasNext()) pw.println(" ...");
- break;
- }
- }
+ mArchive.dumpImpl(pw, filter);
if (!zenOnly) {
N = mEnqueuedNotifications.size();
@@ -6048,13 +6054,6 @@
}
@Override
- public boolean isNotificationShown(String pkg, String tag, int notificationId, int userId) {
- synchronized (mNotificationLock) {
- return findNotificationLocked(pkg, tag, notificationId, userId) != null;
- }
- }
-
- @Override
public void removeForegroundServiceFlagFromNotification(String pkg, int notificationId,
int userId) {
checkCallerIsSystem();
@@ -8304,6 +8303,21 @@
int rank, int count, boolean wasPosted, String listenerName) {
final String canceledKey = r.getKey();
+ // Get pending intent used to create alarm, use FLAG_NO_CREATE if PendingIntent
+ // does not already exist, then null will be returned.
+ final PendingIntent pi = PendingIntent.getBroadcast(getContext(),
+ REQUEST_CODE_TIMEOUT,
+ new Intent(ACTION_NOTIFICATION_TIMEOUT)
+ .setData(new Uri.Builder().scheme(SCHEME_TIMEOUT)
+ .appendPath(r.getKey()).build())
+ .addFlags(Intent.FLAG_RECEIVER_FOREGROUND),
+ PendingIntent.FLAG_NO_CREATE | PendingIntent.FLAG_IMMUTABLE);
+
+ // Cancel alarm corresponding to pi.
+ if (pi != null) {
+ mAlarmManager.cancel(pi);
+ }
+
// Record caller.
recordCallerLocked(r);
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 219fa3c..da9c785 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -22005,7 +22005,7 @@
pir.addFilter(new PreferredActivity(filter, match, set, activity, always));
scheduleWritePackageRestrictionsLocked(userId);
}
- if (!updateDefaultHomeNotLocked(userId)) {
+ if (!(isHomeFilter(filter) && updateDefaultHomeNotLocked(userId))) {
postPreferredActivityChangedBroadcast(userId);
}
}
@@ -22295,7 +22295,9 @@
new PersistentPreferredActivity(filter, activity, true));
scheduleWritePackageRestrictionsLocked(userId);
}
- updateDefaultHomeNotLocked(userId);
+ if (isHomeFilter(filter)) {
+ updateDefaultHomeNotLocked(userId);
+ }
postPreferredActivityChangedBroadcast(userId);
}
@@ -22664,6 +22666,11 @@
return filter;
}
+ private boolean isHomeFilter(@NonNull IntentFilter filter) {
+ return filter.hasAction(Intent.ACTION_MAIN) && filter.hasCategory(Intent.CATEGORY_HOME)
+ && filter.hasCategory(CATEGORY_DEFAULT);
+ }
+
ComponentName getHomeActivitiesAsUser(List<ResolveInfo> allHomeCandidates,
int userId) {
return liveComputer().getHomeActivitiesAsUser(allHomeCandidates,
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
index b3fa98e..1bfa72f 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -2180,23 +2180,30 @@
}
final int callingUid = Binder.getCallingUid();
- final int userId = UserHandle.getUserId(newPackage.getUid());
- int numRequestedPermissions = newPackage.getRequestedPermissions().size();
- for (int i = 0; i < numRequestedPermissions; i++) {
- PermissionInfo permInfo = getPermissionInfo(newPackage.getRequestedPermissions().get(i),
- newPackage.getPackageName(), 0);
- if (permInfo == null || !STORAGE_PERMISSIONS.contains(permInfo.name)) {
- continue;
+ for (int userId: getAllUserIds()) {
+ int numRequestedPermissions = newPackage.getRequestedPermissions().size();
+ for (int i = 0; i < numRequestedPermissions; i++) {
+ PermissionInfo permInfo = getPermissionInfo(
+ newPackage.getRequestedPermissions().get(i),
+ newPackage.getPackageName(), 0);
+ if (permInfo == null || !STORAGE_PERMISSIONS.contains(permInfo.name)) {
+ continue;
+ }
+
+ EventLog.writeEvent(0x534e4554, "171430330", newPackage.getUid(),
+ "Revoking permission " + permInfo.name + " from package "
+ + newPackage.getPackageName() + " as either the sdk downgraded "
+ + downgradedSdk + " or newly requested legacy full storage "
+ + newlyRequestsLegacy);
+
+ try {
+ revokeRuntimePermissionInternal(newPackage.getPackageName(), permInfo.name,
+ false, callingUid, userId, null, mDefaultPermissionCallback);
+ } catch (IllegalStateException | SecurityException e) {
+ Log.e(TAG, "unable to revoke " + permInfo.name + " for "
+ + newPackage.getPackageName() + " user " + userId, e);
+ }
}
-
- EventLog.writeEvent(0x534e4554, "171430330", newPackage.getUid(),
- "Revoking permission " + permInfo.name + " from package "
- + newPackage.getPackageName() + " as either the sdk downgraded "
- + downgradedSdk + " or newly requested legacy full storage "
- + newlyRequestsLegacy);
-
- revokeRuntimePermissionInternal(newPackage.getPackageName(), permInfo.name,
- false, callingUid, userId, null, mDefaultPermissionCallback);
}
}
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 27f5350..0a65c23 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -379,6 +379,7 @@
private DisplayFoldController mDisplayFoldController;
AppOpsManager mAppOpsManager;
PackageManager mPackageManager;
+ SideFpsEventHandler mSideFpsEventHandler;
private boolean mHasFeatureAuto;
private boolean mHasFeatureWatch;
private boolean mHasFeatureLeanback;
@@ -928,6 +929,11 @@
} else if (count == 3) {
powerMultiPressAction(eventTime, interactive, mTriplePressOnPowerBehavior);
} else if (interactive && !beganFromNonInteractive) {
+ if (mSideFpsEventHandler.onSinglePressDetected(eventTime)) {
+ Slog.i(TAG, "Suppressing power key because the user is interacting with the "
+ + "fingerprint sensor");
+ return;
+ }
switch (mShortPressOnPowerBehavior) {
case SHORT_PRESS_POWER_NOTHING:
break;
@@ -1803,6 +1809,7 @@
});
initKeyCombinationRules();
initSingleKeyGestureRules();
+ mSideFpsEventHandler = new SideFpsEventHandler(mContext, mHandler, mPowerManager);
}
private void initKeyCombinationRules() {
@@ -4668,6 +4675,7 @@
mKeyguardDelegate.onBootCompleted();
}
}
+ mSideFpsEventHandler.onFingerprintSensorReady();
startedWakingUp(PowerManager.WAKE_REASON_UNKNOWN);
finishedWakingUp(PowerManager.WAKE_REASON_UNKNOWN);
diff --git a/services/core/java/com/android/server/policy/SideFpsEventHandler.java b/services/core/java/com/android/server/policy/SideFpsEventHandler.java
new file mode 100644
index 0000000..7c0005c
--- /dev/null
+++ b/services/core/java/com/android/server/policy/SideFpsEventHandler.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.policy;
+
+import static android.hardware.fingerprint.FingerprintStateListener.STATE_ENROLLING;
+import static android.hardware.fingerprint.FingerprintStateListener.STATE_IDLE;
+
+import android.annotation.NonNull;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.pm.PackageManager;
+import android.hardware.fingerprint.FingerprintManager;
+import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
+import android.hardware.fingerprint.FingerprintStateListener;
+import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
+import android.os.Handler;
+import android.os.PowerManager;
+import android.view.WindowManager;
+
+import com.android.internal.R;
+
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * Defines behavior for handling interactions between power button events and
+ * fingerprint-related operations, for devices where the fingerprint sensor (side fps)
+ * lives on the power button.
+ */
+public class SideFpsEventHandler {
+ @NonNull private final Context mContext;
+ @NonNull private final Handler mHandler;
+ @NonNull private final PowerManager mPowerManager;
+ @NonNull private final AtomicBoolean mIsSideFps;
+ @NonNull private final AtomicBoolean mSideFpsEventHandlerReady;
+
+ private @FingerprintStateListener.State int mFingerprintState;
+
+ SideFpsEventHandler(Context context, Handler handler, PowerManager powerManager) {
+ mContext = context;
+ mHandler = handler;
+ mPowerManager = powerManager;
+ mFingerprintState = STATE_IDLE;
+ mIsSideFps = new AtomicBoolean(false);
+ mSideFpsEventHandlerReady = new AtomicBoolean(false);
+ }
+
+ /**
+ * Called from {@link PhoneWindowManager} after power button is pressed. Checks fingerprint
+ * sensor state and if mFingerprintState = STATE_ENROLLING, displays a dialog confirming intent
+ * to turn screen off. If confirmed, the device goes to sleep, and if canceled, the dialog is
+ * dismissed.
+ * @param eventTime powerPress event time
+ * @return true if powerPress was consumed, false otherwise
+ */
+ public boolean onSinglePressDetected(long eventTime) {
+ if (!mSideFpsEventHandlerReady.get() || !mIsSideFps.get()
+ || mFingerprintState != STATE_ENROLLING) {
+ return false;
+ }
+ mHandler.post(() -> {
+ Dialog confirmScreenOffDialog = new AlertDialog.Builder(mContext)
+ .setTitle(R.string.fp_enrollment_powerbutton_intent_title)
+ .setMessage(R.string.fp_enrollment_powerbutton_intent_message)
+ .setPositiveButton(
+ R.string.fp_enrollment_powerbutton_intent_positive_button,
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+ mPowerManager.goToSleep(
+ eventTime,
+ PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON,
+ 0 /* flags */
+ );
+ }
+ })
+ .setNegativeButton(
+ R.string.fp_enrollment_powerbutton_intent_negative_button,
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+ }
+ })
+ .setCancelable(false)
+ .create();
+ confirmScreenOffDialog.getWindow().setType(
+ WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL);
+ confirmScreenOffDialog.show();
+ });
+ return true;
+ }
+
+ /**
+ * Awaits notification from PhoneWindowManager that fingerprint service is ready
+ * to send updates about power button fps sensor state. Then configures a
+ * FingerprintStateListener to receive and record updates to fps state, and
+ * registers the FingerprintStateListener in FingerprintManager.
+ */
+ public void onFingerprintSensorReady() {
+ final PackageManager pm = mContext.getPackageManager();
+ if (!pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) return;
+ FingerprintManager fingerprintManager =
+ mContext.getSystemService(FingerprintManager.class);
+ fingerprintManager.addAuthenticatorsRegisteredCallback(
+ new IFingerprintAuthenticatorsRegisteredCallback.Stub() {
+ @Override
+ public void onAllAuthenticatorsRegistered(
+ List<FingerprintSensorPropertiesInternal> sensors) {
+ mIsSideFps.set(fingerprintManager.isPowerbuttonFps());
+ FingerprintStateListener fingerprintStateListener =
+ new FingerprintStateListener() {
+ @Override
+ public void onStateChanged(
+ @FingerprintStateListener.State int newState) {
+ mFingerprintState = newState;
+ }
+ };
+ fingerprintManager.registerFingerprintStateListener(
+ fingerprintStateListener);
+ mSideFpsEventHandlerReady.set(true);
+ }
+ });
+ }
+}
diff --git a/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java b/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java
index 03584b9..68e7bdb 100644
--- a/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java
+++ b/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java
@@ -256,7 +256,7 @@
private final ContentResolver mContentResolver;
private final BatterySavingStats mBatterySavingStats;
- private final UiModeManager.OnProjectionStateChangeListener mOnProjectionStateChangeListener =
+ private final UiModeManager.OnProjectionStateChangedListener mOnProjectionStateChangedListener =
(t, pkgs) -> mAutomotiveProjectionActive.update(!pkgs.isEmpty());
@GuardedBy("mLock")
@@ -292,8 +292,8 @@
mAccessibilityEnabled.initialize(acm.isEnabled());
UiModeManager uiModeManager = mContext.getSystemService(UiModeManager.class);
- uiModeManager.addOnProjectionStateChangeListener(UiModeManager.PROJECTION_TYPE_AUTOMOTIVE,
- mContext.getMainExecutor(), mOnProjectionStateChangeListener);
+ uiModeManager.addOnProjectionStateChangedListener(UiModeManager.PROJECTION_TYPE_AUTOMOTIVE,
+ mContext.getMainExecutor(), mOnProjectionStateChangedListener);
mAutomotiveProjectionActive.initialize(
uiModeManager.getActiveProjectionTypes() != UiModeManager.PROJECTION_TYPE_NONE);
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 203214d..30f69dd79 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -2861,6 +2861,10 @@
mImmersiveModeConfirmation.onLockTaskModeChangedLw(lockTaskState);
}
+ boolean onSystemUiSettingsChanged() {
+ return mImmersiveModeConfirmation.onSettingChanged(mService.mCurrentUserId);
+ }
+
/**
* Request a screenshot be taken.
*
diff --git a/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java b/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
index b94bc5b..747d365 100644
--- a/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
+++ b/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
@@ -148,6 +148,15 @@
}
}
+ boolean onSettingChanged(int currentUserId) {
+ final boolean changed = loadSetting(currentUserId, mContext);
+ // Remove the window if the setting changes to be confirmed.
+ if (changed && sConfirmed) {
+ mHandler.sendEmptyMessage(H.HIDE);
+ }
+ return changed;
+ }
+
void immersiveModeChangedLw(int rootDisplayAreaId, boolean isImmersiveMode,
boolean userSetupComplete, boolean navBarEmpty) {
mHandler.removeMessages(H.SHOW);
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 1657a13..d43a763 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -818,7 +818,7 @@
}
if (mImmersiveModeConfirmationsUri.equals(uri) || mPolicyControlUri.equals(uri)) {
- updateSystemUiSettings();
+ updateSystemUiSettings(true /* handleChange */);
return;
}
@@ -874,17 +874,22 @@
}
void loadSettings() {
- updateSystemUiSettings();
+ updateSystemUiSettings(false /* handleChange */);
updatePointerLocation();
}
- void updateSystemUiSettings() {
- boolean changed;
+ void updateSystemUiSettings(boolean handleChange) {
synchronized (mGlobalLock) {
- changed = ImmersiveModeConfirmation.loadSetting(mCurrentUserId, mContext);
- }
- if (changed) {
- updateRotation(false /* alwaysSendConfiguration */, false /* forceRelayout */);
+ boolean changed = false;
+ if (handleChange) {
+ changed = getDefaultDisplayContentLocked().getDisplayPolicy()
+ .onSystemUiSettingsChanged();
+ } else {
+ ImmersiveModeConfirmation.loadSetting(mCurrentUserId, mContext);
+ }
+ if (changed) {
+ mWindowPlacerLocked.requestTraversal();
+ }
}
}
@@ -2990,7 +2995,7 @@
@Override
public void onUserSwitched() {
- mSettingsObserver.updateSystemUiSettings();
+ mSettingsObserver.updateSystemUiSettings(true /* handleChange */);
synchronized (mGlobalLock) {
// force a re-application of focused window sysui visibility on each display.
mRoot.forAllDisplayPolicies(DisplayPolicy::resetSystemUiVisibilityLw);
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 9de5058..ef7360d 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -4547,30 +4547,6 @@
}
@Override
- public boolean isProfileActivePasswordSufficientForParent(int userHandle) {
- if (!mHasFeature) {
- return true;
- }
- Preconditions.checkArgumentNonnegative(userHandle, "Invalid userId");
-
- final CallerIdentity caller = getCallerIdentity();
- Preconditions.checkCallAuthorization(hasFullCrossUsersPermission(caller, userHandle));
- Preconditions.checkCallAuthorization(isManagedProfile(userHandle),
- "can not call APIs refering to the parent profile outside a managed profile, "
- + "userId = %d", userHandle);
-
- synchronized (getLockObject()) {
- final int targetUser = getProfileParentId(userHandle);
- enforceUserUnlocked(targetUser, false);
- int credentialOwner = getCredentialOwner(userHandle, false);
- DevicePolicyData policy = getUserDataUnchecked(credentialOwner);
- PasswordMetrics metrics = mLockSettingsInternal.getUserPasswordMetrics(credentialOwner);
- return isActivePasswordSufficientForUserLocked(
- policy.mPasswordValidAtLastCheckpoint, metrics, targetUser);
- }
- }
-
- @Override
public boolean isPasswordSufficientAfterProfileUnification(int userHandle, int profileUser) {
if (!mHasFeature) {
return true;
diff --git a/services/people/java/com/android/server/people/data/DataManager.java b/services/people/java/com/android/server/people/data/DataManager.java
index d913d4e..7189fb4 100644
--- a/services/people/java/com/android/server/people/data/DataManager.java
+++ b/services/people/java/com/android/server/people/data/DataManager.java
@@ -1149,11 +1149,11 @@
if (conversationInfo == null) {
return;
}
+ if (DEBUG) Log.d(TAG, "Last event from notification: " + sbn.getPostTime());
ConversationInfo updated = new ConversationInfo.Builder(conversationInfo)
.setLastEventTimestamp(sbn.getPostTime())
.setParentNotificationChannelId(sbn.getNotification().getChannelId())
.build();
- // Don't update listeners on notifications posted.
packageData.getConversationStore().addOrUpdate(updated);
EventHistoryImpl eventHistory = packageData.getEventStore().getOrCreateEventHistory(
@@ -1186,9 +1186,19 @@
if (reason != REASON_CLICK || packageData == null) {
return;
}
+ long currentTime = System.currentTimeMillis();
+ ConversationInfo conversationInfo = packageData.getConversationInfo(shortcutId);
+ if (conversationInfo == null) {
+ return;
+ }
+ if (DEBUG) Log.d(TAG, "Last event from notification removed: " + currentTime);
+ ConversationInfo updated = new ConversationInfo.Builder(conversationInfo)
+ .setLastEventTimestamp(currentTime)
+ .build();
+ packageData.getConversationStore().addOrUpdate(updated);
+
EventHistoryImpl eventHistory = packageData.getEventStore().getOrCreateEventHistory(
EventStore.CATEGORY_SHORTCUT_BASED, shortcutId);
- long currentTime = System.currentTimeMillis();
eventHistory.addEvent(new Event(currentTime, Event.TYPE_NOTIFICATION_OPENED));
}
@@ -1265,6 +1275,7 @@
public void onEvent(PackageData packageData, ConversationInfo conversationInfo,
Event event) {
if (event.getType() == Event.TYPE_IN_APP_CONVERSATION) {
+ if (DEBUG) Log.d(TAG, "Last event from in-app: " + event.getTimestamp());
ConversationInfo updated = new ConversationInfo.Builder(conversationInfo)
.setLastEventTimestamp(event.getTimestamp())
.build();
diff --git a/services/smartspace/java/com/android/server/smartspace/SmartspacePerUserService.java b/services/smartspace/java/com/android/server/smartspace/SmartspacePerUserService.java
index 5f435f9..dcffc9e 100644
--- a/services/smartspace/java/com/android/server/smartspace/SmartspacePerUserService.java
+++ b/services/smartspace/java/com/android/server/smartspace/SmartspacePerUserService.java
@@ -87,7 +87,10 @@
protected boolean updateLocked(boolean disabled) {
final boolean enabledChanged = super.updateLocked(disabled);
if (enabledChanged) {
- if (!isEnabledLocked()) {
+ if (isEnabledLocked()) {
+ // Send the pending sessions over to the service
+ resurrectSessionsLocked();
+ } else {
// Clear the remote service for the next call
updateRemoteServiceLocked();
}
diff --git a/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java b/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java
index 6468790..029930a 100644
--- a/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java
@@ -68,7 +68,6 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
-import android.content.pm.IPackageManager;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManagerInternal;
@@ -475,7 +474,6 @@
expectedRegular.add(thr);
expectedRegular.add(two);
expectedRegular.add(one);
- expectedEJ.add(fiv); // EJ list should be unaffected
expectedEJ.add(fou);
expectedEJ.add(one);
mQuotaController.saveTimingSession(0, "com.android.test", fiv, false);
diff --git a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
index 6c1e915b..b112f3fc 100644
--- a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
@@ -693,7 +693,6 @@
NotificationListenerService listenerService =
mDataManager.getNotificationListenerServiceForTesting(USER_ID_PRIMARY);
listenerService.onNotificationPosted(mStatusBarNotification);
-
ConversationChannel result = mDataManager.getConversation(TEST_PKG_NAME, USER_ID_PRIMARY,
TEST_SHORTCUT_ID);
@@ -1361,6 +1360,27 @@
}
@Test
+ public void testNotificationRemoved() {
+ mDataManager.onUserUnlocked(USER_ID_PRIMARY);
+
+ ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID,
+ buildPerson());
+ shortcut.setCached(ShortcutInfo.FLAG_CACHED_NOTIFICATIONS);
+ mDataManager.addOrUpdateConversationInfo(shortcut);
+
+ NotificationListenerService listenerService =
+ mDataManager.getNotificationListenerServiceForTesting(USER_ID_PRIMARY);
+ listenerService.onNotificationPosted(mStatusBarNotification);
+ listenerService.onNotificationRemoved(mStatusBarNotification, null,
+ NotificationListenerService.REASON_CANCEL);
+
+ ConversationInfo conversationInfo = mDataManager.getPackage(TEST_PKG_NAME, USER_ID_PRIMARY)
+ .getConversationStore()
+ .getConversation(TEST_SHORTCUT_ID);
+ assertEquals(conversationInfo.getLastEventTimestamp(), System.currentTimeMillis());
+ }
+
+ @Test
public void testRemoveRecentConversation() {
mDataManager.onUserUnlocked(USER_ID_PRIMARY);
diff --git a/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java
index 81c237b..4b3771b 100644
--- a/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java
@@ -55,7 +55,7 @@
import android.Manifest;
import android.app.AlarmManager;
-import android.app.IOnProjectionStateChangeListener;
+import android.app.IOnProjectionStateChangedListener;
import android.app.IUiModeManager;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
@@ -669,46 +669,46 @@
}
@Test
- public void addOnProjectionStateChangeListener_enforcesReadProjStatePermission() {
+ public void addOnProjectionStateChangedListener_enforcesReadProjStatePermission() {
doThrow(new SecurityException()).when(mContext).enforceCallingOrSelfPermission(
eq(android.Manifest.permission.READ_PROJECTION_STATE), any());
- IOnProjectionStateChangeListener listener = mock(IOnProjectionStateChangeListener.class);
+ IOnProjectionStateChangedListener listener = mock(IOnProjectionStateChangedListener.class);
- assertThrows(SecurityException.class, () -> mService.addOnProjectionStateChangeListener(
+ assertThrows(SecurityException.class, () -> mService.addOnProjectionStateChangedListener(
listener, PROJECTION_TYPE_ALL));
}
@Test
- public void addOnProjectionStateChangeListener_callsListenerIfProjectionActive()
+ public void addOnProjectionStateChangedListener_callsListenerIfProjectionActive()
throws Exception {
when(mPackageManager.getPackageUid(PACKAGE_NAME, 0)).thenReturn(TestInjector.CALLING_UID);
mService.requestProjection(mBinder, PROJECTION_TYPE_AUTOMOTIVE, PACKAGE_NAME);
assertEquals(PROJECTION_TYPE_AUTOMOTIVE, mService.getActiveProjectionTypes());
- IOnProjectionStateChangeListener listener = mock(IOnProjectionStateChangeListener.class);
+ IOnProjectionStateChangedListener listener = mock(IOnProjectionStateChangedListener.class);
when(listener.asBinder()).thenReturn(mBinder); // Any binder will do
- mService.addOnProjectionStateChangeListener(listener, PROJECTION_TYPE_ALL);
+ mService.addOnProjectionStateChangedListener(listener, PROJECTION_TYPE_ALL);
verify(listener).onProjectionStateChanged(eq(PROJECTION_TYPE_AUTOMOTIVE),
eq(List.of(PACKAGE_NAME)));
}
@Test
- public void removeOnProjectionStateChangeListener_enforcesReadProjStatePermission() {
+ public void removeOnProjectionStateChangedListener_enforcesReadProjStatePermission() {
doThrow(new SecurityException()).when(mContext).enforceCallingOrSelfPermission(
eq(android.Manifest.permission.READ_PROJECTION_STATE), any());
- IOnProjectionStateChangeListener listener = mock(IOnProjectionStateChangeListener.class);
+ IOnProjectionStateChangedListener listener = mock(IOnProjectionStateChangedListener.class);
- assertThrows(SecurityException.class, () -> mService.removeOnProjectionStateChangeListener(
+ assertThrows(SecurityException.class, () -> mService.removeOnProjectionStateChangedListener(
listener));
}
@Test
- public void removeOnProjectionStateChangeListener() throws Exception {
- IOnProjectionStateChangeListener listener = mock(IOnProjectionStateChangeListener.class);
+ public void removeOnProjectionStateChangedListener() throws Exception {
+ IOnProjectionStateChangedListener listener = mock(IOnProjectionStateChangedListener.class);
when(listener.asBinder()).thenReturn(mBinder); // Any binder will do.
- mService.addOnProjectionStateChangeListener(listener, PROJECTION_TYPE_ALL);
+ mService.addOnProjectionStateChangedListener(listener, PROJECTION_TYPE_ALL);
- mService.removeOnProjectionStateChangeListener(listener);
+ mService.removeOnProjectionStateChangedListener(listener);
// Now set automotive projection, should not call back.
when(mPackageManager.getPackageUid(PACKAGE_NAME, 0)).thenReturn(TestInjector.CALLING_UID);
mService.requestProjection(mBinder, PROJECTION_TYPE_AUTOMOTIVE, PACKAGE_NAME);
@@ -716,10 +716,10 @@
}
@Test
- public void projectionStateChangeListener_calledWhenStateChanges() throws Exception {
- IOnProjectionStateChangeListener listener = mock(IOnProjectionStateChangeListener.class);
+ public void projectionStateChangedListener_calledWhenStateChanges() throws Exception {
+ IOnProjectionStateChangedListener listener = mock(IOnProjectionStateChangedListener.class);
when(listener.asBinder()).thenReturn(mBinder); // Any binder will do.
- mService.addOnProjectionStateChangeListener(listener, PROJECTION_TYPE_ALL);
+ mService.addOnProjectionStateChangedListener(listener, PROJECTION_TYPE_ALL);
verify(listener, atLeastOnce()).asBinder(); // Called twice during register.
// No calls initially, no projection state set.
@@ -748,19 +748,19 @@
}
@Test
- public void projectionStateChangeListener_calledForAnyRelevantStateChange() throws Exception {
+ public void projectionStateChangedListener_calledForAnyRelevantStateChange() throws Exception {
int fakeProjectionType = 0x0002;
int otherFakeProjectionType = 0x0004;
String otherPackageName = "Internet Arms";
when(mPackageManager.getPackageUid(PACKAGE_NAME, 0)).thenReturn(TestInjector.CALLING_UID);
when(mPackageManager.getPackageUid(otherPackageName, 0))
.thenReturn(TestInjector.CALLING_UID);
- IOnProjectionStateChangeListener listener = mock(IOnProjectionStateChangeListener.class);
+ IOnProjectionStateChangedListener listener = mock(IOnProjectionStateChangedListener.class);
when(listener.asBinder()).thenReturn(mBinder); // Any binder will do.
- IOnProjectionStateChangeListener listener2 = mock(IOnProjectionStateChangeListener.class);
+ IOnProjectionStateChangedListener listener2 = mock(IOnProjectionStateChangedListener.class);
when(listener2.asBinder()).thenReturn(mBinder); // Any binder will do.
- mService.addOnProjectionStateChangeListener(listener, fakeProjectionType);
- mService.addOnProjectionStateChangeListener(listener2,
+ mService.addOnProjectionStateChangedListener(listener, fakeProjectionType);
+ mService.addOnProjectionStateChangedListener(listener2,
fakeProjectionType | otherFakeProjectionType);
verify(listener, atLeastOnce()).asBinder(); // Called twice during register.
verify(listener2, atLeastOnce()).asBinder(); // Called twice during register.
@@ -795,11 +795,11 @@
}
@Test
- public void projectionStateChangeListener_unregisteredOnDeath() throws Exception {
- IOnProjectionStateChangeListener listener = mock(IOnProjectionStateChangeListener.class);
+ public void projectionStateChangedListener_unregisteredOnDeath() throws Exception {
+ IOnProjectionStateChangedListener listener = mock(IOnProjectionStateChangedListener.class);
IBinder listenerBinder = mock(IBinder.class);
when(listener.asBinder()).thenReturn(listenerBinder);
- mService.addOnProjectionStateChangeListener(listener, PROJECTION_TYPE_ALL);
+ mService.addOnProjectionStateChangedListener(listener, PROJECTION_TYPE_ALL);
ArgumentCaptor<IBinder.DeathRecipient> listenerDeathRecipient = ArgumentCaptor.forClass(
IBinder.DeathRecipient.class);
verify(listenerBinder).linkToDeath(listenerDeathRecipient.capture(), anyInt());
diff --git a/services/tests/wmtests/AndroidManifest.xml b/services/tests/wmtests/AndroidManifest.xml
index 04db686..de4698d 100644
--- a/services/tests/wmtests/AndroidManifest.xml
+++ b/services/tests/wmtests/AndroidManifest.xml
@@ -54,11 +54,8 @@
<activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityRequestedOrientationChange" />
<activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityTaskChangeCallbacks" />
<activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityTaskDescriptionChange" />
- <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityViewTestActivity" />
- <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityInActivityView"
+ <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityInVirtualDisplay"
android:resizeableActivity="true" />
- <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityLaunchesNewActivityInActivityView"
- android:resizeableActivity="true" />
<activity android:name="com.android.server.wm.TaskStackChangedListenerTest$LandscapeActivity"
android:screenOrientation="sensorLandscape"
android:showWhenLocked="true"
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskStackChangedListenerTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskStackChangedListenerTest.java
index d139141..a1d0eb8 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskStackChangedListenerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskStackChangedListenerTest.java
@@ -16,7 +16,9 @@
package com.android.server.wm;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY;
+import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_PRESENTATION;
+import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC;
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
@@ -31,7 +33,6 @@
import android.app.ActivityManager.TaskDescription;
import android.app.ActivityOptions;
import android.app.ActivityTaskManager;
-import android.app.ActivityView;
import android.app.ITaskStackListener;
import android.app.Instrumentation.ActivityMonitor;
import android.app.TaskStackListener;
@@ -39,6 +40,10 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
+import android.graphics.PixelFormat;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.VirtualDisplay;
+import android.media.ImageReader;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.SystemClock;
@@ -46,13 +51,16 @@
import android.text.TextUtils;
import android.view.Display;
import android.view.ViewGroup;
+import android.widget.LinearLayout;
import androidx.test.filters.FlakyTest;
import androidx.test.filters.MediumTest;
import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
+import java.util.Arrays;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@@ -65,15 +73,49 @@
@MediumTest
public class TaskStackChangedListenerTest {
+ private static final int VIRTUAL_DISPLAY_WIDTH = 800;
+ private static final int VIRTUAL_DISPLAY_HEIGHT = 600;
+ private static final int VIRTUAL_DISPLAY_DENSITY = 160;
+
private ITaskStackListener mTaskStackListener;
+ private DisplayManager mDisplayManager;
+ private VirtualDisplay mVirtualDisplay;
private static final int WAIT_TIMEOUT_MS = 5000;
private static final Object sLock = new Object();
+ @Before
+ public void setUp() {
+ mDisplayManager = getInstrumentation().getContext().getSystemService(
+ DisplayManager.class);
+ mVirtualDisplay = createVirtualDisplay(
+ getClass().getSimpleName() + "_virtualDisplay",
+ VIRTUAL_DISPLAY_WIDTH, VIRTUAL_DISPLAY_HEIGHT, VIRTUAL_DISPLAY_DENSITY);
+ }
+
@After
public void tearDown() throws Exception {
ActivityTaskManager.getService().unregisterTaskStackListener(mTaskStackListener);
mTaskStackListener = null;
+ mVirtualDisplay.release();
+ }
+
+ private VirtualDisplay createVirtualDisplay(String name, int width, int height, int density) {
+ VirtualDisplay virtualDisplay = null;
+ try (ImageReader reader = ImageReader.newInstance(width, height,
+ /* format= */ PixelFormat.RGBA_8888, /* maxImages= */ 2)) {
+ int flags = VIRTUAL_DISPLAY_FLAG_PRESENTATION | VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
+ | VIRTUAL_DISPLAY_FLAG_PUBLIC;
+ virtualDisplay = mDisplayManager.createVirtualDisplay(
+ name, width, height, density, reader.getSurface(), flags);
+ virtualDisplay.setSurface(reader.getSurface());
+ }
+ assertTrue("display id must be unique",
+ virtualDisplay.getDisplay().getDisplayId() != Display.DEFAULT_DISPLAY);
+ assertNotNull("display must be registered",
+ Arrays.asList(mDisplayManager.getDisplays()).stream().filter(
+ d -> d.getName().equals(name)).findAny());
+ return virtualDisplay;
}
@Test
@@ -235,48 +277,19 @@
assertTrue(activity.mOnDetachedFromWindowCalled);
}
- public static class ActivityLaunchesNewActivityInActivityView extends TestActivity {
- private boolean mActivityBLaunched = false;
-
- @Override
- protected void onPostResume() {
- super.onPostResume();
- if (mActivityBLaunched) {
- return;
- }
- mActivityBLaunched = true;
- startActivity(new Intent(this, ActivityB.class));
- }
- }
-
@Test
public void testTaskDisplayChanged() throws Exception {
- final CountDownLatch activityViewReadyLatch = new CountDownLatch(1);
- final ActivityViewTestActivity activity =
- (ActivityViewTestActivity) startTestActivity(ActivityViewTestActivity.class);
- final ActivityView activityView = activity.getActivityView();
- activityView.setCallback(new ActivityView.StateCallback() {
- @Override
- public void onActivityViewReady(ActivityView view) {
- activityViewReadyLatch.countDown();
- }
- @Override
- public void onActivityViewDestroyed(ActivityView view) {}
- });
- waitForCallback(activityViewReadyLatch);
+ int virtualDisplayId = mVirtualDisplay.getDisplay().getDisplayId();
- // Launch a Activity inside ActivityView.
+ // Launch a Activity inside VirtualDisplay
+ CountDownLatch displayChangedLatch1 = new CountDownLatch(1);
final Object[] params1 = new Object[1];
- final CountDownLatch displayChangedLatch1 = new CountDownLatch(1);
- final int activityViewDisplayId = activityView.getVirtualDisplayId();
- registerTaskStackChangedListener(
- new TaskDisplayChangedListener(
- activityViewDisplayId, params1, displayChangedLatch1));
+ registerTaskStackChangedListener(new TaskDisplayChangedListener(
+ virtualDisplayId, params1, displayChangedLatch1));
+ ActivityOptions options1 = ActivityOptions.makeBasic().setLaunchDisplayId(virtualDisplayId);
int taskId1;
- ActivityOptions options1 = ActivityOptions.makeBasic()
- .setLaunchDisplayId(activityView.getVirtualDisplayId());
synchronized (sLock) {
- taskId1 = startTestActivity(ActivityInActivityView.class, options1).getTaskId();
+ taskId1 = startTestActivity(ActivityInVirtualDisplay.class, options1).getTaskId();
}
waitForCallback(displayChangedLatch1);
@@ -292,7 +305,7 @@
ActivityOptions options2 = ActivityOptions.makeBasic()
.setLaunchDisplayId(Display.DEFAULT_DISPLAY);
synchronized (sLock) {
- taskId2 = startTestActivity(ActivityInActivityView.class, options2).getTaskId();
+ taskId2 = startTestActivity(ActivityInVirtualDisplay.class, options2).getTaskId();
}
waitForCallback(displayChangedLatch2);
@@ -447,8 +460,7 @@
}
}
- public static class ActivityA extends TestActivity {
- }
+ public static class ActivityA extends TestActivity {}
public static class ActivityB extends TestActivity {
@@ -500,30 +512,20 @@
}
}
- public static class ActivityViewTestActivity extends TestActivity {
- private ActivityView mActivityView;
+ public static class ActivityInVirtualDisplay extends TestActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- mActivityView = new ActivityView.Builder(this).build();
- setContentView(mActivityView);
-
- ViewGroup.LayoutParams layoutParams = mActivityView.getLayoutParams();
- layoutParams.width = MATCH_PARENT;
- layoutParams.height = MATCH_PARENT;
- mActivityView.requestLayout();
- }
-
- ActivityView getActivityView() {
- return mActivityView;
+ LinearLayout layout = new LinearLayout(this);
+ layout.setLayoutParams(new ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.MATCH_PARENT));
+ setContentView(layout);
}
}
- // Activity that has {@link android.R.attr#resizeableActivity} attribute set to {@code true}
- public static class ActivityInActivityView extends TestActivity {}
-
public static class ResumeWhilePausingActivity extends TestActivity {}
public static class LandscapeActivity extends TestActivity {}
diff --git a/telecomm/java/android/telecom/CallerInfoAsyncQuery.java b/telecomm/java/android/telecom/CallerInfoAsyncQuery.java
index a9e1a8f..bf49f3c 100644
--- a/telecomm/java/android/telecom/CallerInfoAsyncQuery.java
+++ b/telecomm/java/android/telecom/CallerInfoAsyncQuery.java
@@ -483,7 +483,16 @@
// check to see if these are recognized numbers, and use shortcuts if we can.
TelephonyManager tm = context.getSystemService(TelephonyManager.class);
- if (tm.isEmergencyNumber(number)) {
+ boolean isEmergencyNumber = false;
+ try {
+ isEmergencyNumber = tm.isEmergencyNumber(number);
+ } catch (IllegalStateException ise) {
+ // Ignore the exception that Telephony is not up. Use PhoneNumberUtils API now.
+ // Ideally the PhoneNumberUtils API needs to be removed once the
+ // telphony service not up issue can be fixed (b/187412989)
+ isEmergencyNumber = PhoneNumberUtils.isLocalEmergencyNumber(context, number);
+ }
+ if (isEmergencyNumber) {
cw.event = EVENT_EMERGENCY_NUMBER;
} else if (PhoneNumberUtils.isVoiceMailNumber(context, subId, number)) {
cw.event = EVENT_VOICEMAIL_NUMBER;
diff --git a/telephony/common/com/android/internal/telephony/TelephonyPermissions.java b/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
index d361db2..4d81b5e 100644
--- a/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
+++ b/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
@@ -263,7 +263,7 @@
return true;
}
return checkPrivilegedReadPermissionOrCarrierPrivilegePermission(
- context, subId, callingPackage, callingFeatureId, message, true);
+ context, subId, callingPackage, callingFeatureId, message, true, true);
}
/**
@@ -286,14 +286,28 @@
*/
public static boolean checkCallingOrSelfReadSubscriberIdentifiers(Context context, int subId,
String callingPackage, @Nullable String callingFeatureId, String message) {
+ return checkCallingOrSelfReadSubscriberIdentifiers(context, subId, callingPackage,
+ callingFeatureId, message, true);
+ }
+
+ /**
+ * Same as {@link #checkCallingOrSelfReadSubscriberIdentifiers(Context, int, String, String,
+ * String)} except this allows an additional parameter reportFailure. Caller may not want to
+ * report a failure when this is an internal/intermediate check, for example,
+ * SubscriptionController calls this with an INVALID_SUBID to check if caller has the required
+ * permissions to bypass carrier privilege checks.
+ * @param reportFailure Indicates if failure should be reported.
+ */
+ public static boolean checkCallingOrSelfReadSubscriberIdentifiers(Context context, int subId,
+ String callingPackage, @Nullable String callingFeatureId, String message,
+ boolean reportFailure) {
if (checkCallingOrSelfUseIccAuthWithDeviceIdentifier(context, callingPackage,
callingFeatureId, message)) {
return true;
}
return checkPrivilegedReadPermissionOrCarrierPrivilegePermission(
- context, subId, callingPackage, callingFeatureId, message, false);
+ context, subId, callingPackage, callingFeatureId, message, false, reportFailure);
}
-
/**
* Checks whether the app with the given pid/uid can read device identifiers.
*
@@ -314,7 +328,7 @@
*/
private static boolean checkPrivilegedReadPermissionOrCarrierPrivilegePermission(
Context context, int subId, String callingPackage, @Nullable String callingFeatureId,
- String message, boolean allowCarrierPrivilegeOnAnySub) {
+ String message, boolean allowCarrierPrivilegeOnAnySub, boolean reportFailure) {
int uid = Binder.getCallingUid();
int pid = Binder.getCallingPid();
@@ -334,8 +348,12 @@
return true;
}
- return reportAccessDeniedToReadIdentifiers(context, subId, pid, uid, callingPackage,
- message);
+ if (reportFailure) {
+ return reportAccessDeniedToReadIdentifiers(context, subId, pid, uid, callingPackage,
+ message);
+ } else {
+ return false;
+ }
}
/**
diff --git a/telephony/java/android/telephony/ims/RcsConfig.java b/telephony/java/android/telephony/ims/RcsConfig.java
index 6867c86..fd8d8a7 100644
--- a/telephony/java/android/telephony/ims/RcsConfig.java
+++ b/telephony/java/android/telephony/ims/RcsConfig.java
@@ -357,9 +357,9 @@
/**
* Check whether Rcs Volte single registration is supported by the config.
*/
- public boolean isRcsVolteSingleRegistrationSupported() {
- return getBoolean(PARM_SINGLE_REGISTRATION, false)
- || getInteger(PARM_SINGLE_REGISTRATION, 0) != 0;
+ public boolean isRcsVolteSingleRegistrationSupported(boolean isRoaming) {
+ int val = getInteger(PARM_SINGLE_REGISTRATION, 1);
+ return isRoaming ? val == 1 : val > 0;
}
@Override
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/RippleActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/RippleActivity.java
index 79410cf..d925541 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/RippleActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/RippleActivity.java
@@ -20,6 +20,7 @@
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.CanvasProperty;
+import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RecordingCanvas;
import android.graphics.RuntimeShader;
@@ -48,6 +49,7 @@
static class RippleView extends View {
static final int DURATION = 1000;
static final int MAX_RADIUS = 250;
+ private final int mColor = Color.RED;
private boolean mToggle = false;
ArrayList<RenderNodeAnimator> mRunningAnimations = new ArrayList<RenderNodeAnimator>();
@@ -104,7 +106,7 @@
Paint p = new Paint();
p.setAntiAlias(true);
- p.setColor(0xFFFF0000);
+ p.setColor(mColor);
mPaint = CanvasProperty.createPaint(p);
mRuntimeShader = new RuntimeShader(sSkSL, false);
@@ -118,7 +120,7 @@
if (canvas.isHardwareAccelerated()) {
RecordingCanvas recordingCanvas = (RecordingCanvas) canvas;
recordingCanvas.drawRipple(mX, mY, mRadius, mPaint, mProgress, mNoisePhase,
- mRuntimeShader);
+ mColor, mRuntimeShader);
}
}
diff --git a/tests/TouchLatency/gradle/wrapper/gradle-wrapper.jar b/tests/TouchLatency/gradle/wrapper/gradle-wrapper.jar
index 8c0fb64..758de96 100644
--- a/tests/TouchLatency/gradle/wrapper/gradle-wrapper.jar
+++ b/tests/TouchLatency/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/tests/TouchLatency/gradle/wrapper/gradle-wrapper.properties b/tests/TouchLatency/gradle/wrapper/gradle-wrapper.properties
index 111992a..2d80b69 100644
--- a/tests/TouchLatency/gradle/wrapper/gradle-wrapper.properties
+++ b/tests/TouchLatency/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Tue Nov 27 13:37:59 PST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
diff --git a/tests/TouchLatency/gradlew b/tests/TouchLatency/gradlew
index 91a7e26..cccdd3d 100755
--- a/tests/TouchLatency/gradlew
+++ b/tests/TouchLatency/gradlew
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
##############################################################################
##
@@ -6,47 +6,6 @@
##
##############################################################################
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
@@ -61,9 +20,49 @@
fi
done
SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
+cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@@ -90,7 +89,7 @@
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -114,6 +113,7 @@
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
@@ -154,11 +154,19 @@
esac
fi
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+APP_ARGS=$(save "$@")
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/tests/TouchLatency/gradlew.bat b/tests/TouchLatency/gradlew.bat
index aec9973..e95643d 100644
--- a/tests/TouchLatency/gradlew.bat
+++ b/tests/TouchLatency/gradlew.bat
@@ -8,14 +8,14 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -46,10 +46,9 @@
goto fail
:init
-@rem Get command-line arguments, handling Windowz variants
+@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
@@ -60,11 +59,6 @@
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
diff --git a/tests/UiBench/res/layout/recycler_view.xml b/tests/UiBench/res/layout/recycler_view.xml
index 53eab68..c8a85de 100644
--- a/tests/UiBench/res/layout/recycler_view.xml
+++ b/tests/UiBench/res/layout/recycler_view.xml
@@ -17,5 +17,6 @@
<androidx.recyclerview.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recyclerView"
+ android:overScrollMode="never"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
diff --git a/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java b/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java
index 9793c34..898b8d4 100644
--- a/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java
+++ b/tests/UpdatableSystemFontTest/src/com/android/updatablesystemfont/UpdatableSystemFontTest.java
@@ -112,7 +112,8 @@
@After
public void tearDown() throws Exception {
- expectCommandToSucceed("cmd font clear");
+ // Ignore errors because this may fail if updatable system font is not enabled.
+ runShellCommand("cmd font clear", null);
if (mKeyId != null) {
expectCommandToSucceed("mini-keyctl unlink " + mKeyId + " .fs-verity");
}
diff --git a/tests/net/integration/src/com/android/server/net/integrationtests/TestNetworkStackService.kt b/tests/net/integration/src/com/android/server/net/integrationtests/TestNetworkStackService.kt
index a44ad1e..eff6658 100644
--- a/tests/net/integration/src/com/android/server/net/integrationtests/TestNetworkStackService.kt
+++ b/tests/net/integration/src/com/android/server/net/integrationtests/TestNetworkStackService.kt
@@ -61,7 +61,6 @@
private class NetworkMonitorDeps(private val privateDnsBypassNetwork: Network) :
NetworkMonitor.Dependencies() {
override fun getPrivateDnsBypassNetwork(network: Network?) = privateDnsBypassNetwork
- override fun sendNetworkConditionsBroadcast(context: Context, broadcast: Intent) = Unit
}
private inner class TestNetworkStackConnector(context: Context) : NetworkStackConnector(
@@ -98,4 +97,4 @@
cb.onNetworkMonitorCreated(NetworkMonitorConnector(nm, TestPermissionChecker()))
}
}
-}
\ No newline at end of file
+}
diff --git a/tools/fonts/fontchain_linter.py b/tools/fonts/fontchain_linter.py
index 1d308df..1266cce 100755
--- a/tools/fonts/fontchain_linter.py
+++ b/tools/fonts/fontchain_linter.py
@@ -114,7 +114,7 @@
def get_emoji_map(font):
# Add normal characters
emoji_map = copy.copy(get_best_cmap(font))
- reverse_cmap = {glyph: code for code, glyph in emoji_map.items()}
+ reverse_cmap = {glyph: code for code, glyph in emoji_map.items() if not contains_pua(code) }
# Add variation sequences
vs_dict = get_variation_sequences_cmap(font).uvsDict
@@ -322,6 +322,22 @@
return emoji_fonts[0]
+def is_pua(x):
+ return 0xE000 <= x <= 0xF8FF or 0xF0000 <= x <= 0xFFFFD or 0x100000 <= x <= 0x10FFFD
+
+def contains_pua(sequence):
+ if type(sequence) is tuple:
+ return any([is_pua(x) for x in sequence])
+ else:
+ return is_pua(sequence)
+
+
+def check_emoji_compat():
+ ttf = open_font(get_emoji_font())
+ meta = ttf['meta']
+ assert meta, 'Compat font must have meta table'
+ assert 'Emji' in meta.data, 'meta table should have \'Emji\' data.'
+
def check_emoji_font_coverage(emoji_font, all_emoji, equivalent_emoji):
coverage = get_emoji_map(emoji_font)
@@ -335,6 +351,11 @@
if sequence in {0x0000, 0x000D, 0x0020}:
# The font needs to support a few extra characters, which is OK
continue
+
+ if contains_pua(sequence):
+ # The font needs to have some PUA for EmojiCompat library.
+ continue
+
if sequence not in all_emoji:
errors.append('%s support unexpected in the emoji font.' % printable(sequence))
@@ -347,7 +368,8 @@
printable(second)))
for glyph in set(coverage.values()):
- maps_to_glyph = [seq for seq in coverage if coverage[seq] == glyph]
+ maps_to_glyph = [
+ seq for seq in coverage if coverage[seq] == glyph and not contains_pua(seq) ]
if len(maps_to_glyph) > 1:
# There are more than one sequences mapping to the same glyph. We
# need to make sure they were expected to be equivalent.
@@ -728,6 +750,7 @@
ucd_path = sys.argv[3]
parse_ucd(ucd_path)
all_emoji, default_emoji, equivalent_emoji = compute_expected_emoji()
+ check_emoji_compat()
check_emoji_coverage(all_emoji, equivalent_emoji)
check_emoji_defaults(default_emoji)