diff options
163 files changed, 1878 insertions, 2183 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 13958d24096b..16de8fe7066c 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -3344,9 +3344,9 @@ package android.accessibilityservice { public abstract class AccessibilityService extends android.app.Service { ctor public AccessibilityService(); method public void attachAccessibilityOverlayToDisplay(int, @NonNull android.view.SurfaceControl); - method @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public void attachAccessibilityOverlayToDisplay(int, @NonNull android.view.SurfaceControl, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.IntConsumer); + method @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public final void attachAccessibilityOverlayToDisplay(int, @NonNull android.view.SurfaceControl, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.IntConsumer); method public void attachAccessibilityOverlayToWindow(int, @NonNull android.view.SurfaceControl); - method @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public void attachAccessibilityOverlayToWindow(int, @NonNull android.view.SurfaceControl, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.IntConsumer); + method @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") public final void attachAccessibilityOverlayToWindow(int, @NonNull android.view.SurfaceControl, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.IntConsumer); method public boolean clearCache(); method public boolean clearCachedSubtree(@NonNull android.view.accessibility.AccessibilityNodeInfo); method public final void disableSelf(); @@ -3354,7 +3354,7 @@ package android.accessibilityservice { method public android.view.accessibility.AccessibilityNodeInfo findFocus(int); method @NonNull public final android.accessibilityservice.AccessibilityButtonController getAccessibilityButtonController(); method @NonNull public final android.accessibilityservice.AccessibilityButtonController getAccessibilityButtonController(int); - method @FlaggedApi("android.view.accessibility.braille_display_hid") @NonNull public android.accessibilityservice.BrailleDisplayController getBrailleDisplayController(); + method @FlaggedApi("android.view.accessibility.braille_display_hid") @NonNull public final android.accessibilityservice.BrailleDisplayController getBrailleDisplayController(); method @NonNull @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public final android.accessibilityservice.FingerprintGestureController getFingerprintGestureController(); method @Nullable public final android.accessibilityservice.InputMethod getInputMethod(); method @NonNull public final android.accessibilityservice.AccessibilityService.MagnificationController getMagnificationController(); diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java index d70fa19a4468..fd9600c1f87f 100644 --- a/core/java/android/accessibilityservice/AccessibilityService.java +++ b/core/java/android/accessibilityservice/AccessibilityService.java @@ -3554,8 +3554,8 @@ public abstract class AccessibilityService extends Service { * @see #OVERLAY_RESULT_INVALID * @see #OVERLAY_RESULT_INTERNAL_ERROR */ - @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") - public void attachAccessibilityOverlayToDisplay( + @FlaggedApi(android.view.accessibility.Flags.FLAG_A11Y_OVERLAY_CALLBACKS) + public final void attachAccessibilityOverlayToDisplay( int displayId, @NonNull SurfaceControl sc, @NonNull @CallbackExecutor Executor executor, @@ -3627,8 +3627,8 @@ public abstract class AccessibilityService extends Service { * @see #OVERLAY_RESULT_INVALID * @see #OVERLAY_RESULT_INTERNAL_ERROR */ - @FlaggedApi("android.view.accessibility.a11y_overlay_callbacks") - public void attachAccessibilityOverlayToWindow( + @FlaggedApi(android.view.accessibility.Flags.FLAG_A11Y_OVERLAY_CALLBACKS) + public final void attachAccessibilityOverlayToWindow( int accessibilityWindowId, @NonNull SurfaceControl sc, @NonNull @CallbackExecutor Executor executor, @@ -3645,7 +3645,7 @@ public abstract class AccessibilityService extends Service { */ @FlaggedApi(android.view.accessibility.Flags.FLAG_BRAILLE_DISPLAY_HID) @NonNull - public BrailleDisplayController getBrailleDisplayController() { + public final BrailleDisplayController getBrailleDisplayController() { BrailleDisplayController.checkApiFlagIsEnabled(); synchronized (mLock) { if (mBrailleDisplayController == null) { diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 67c01908c8a8..79e2bd437c3e 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -9638,6 +9638,7 @@ public class Activity extends ContextThemeWrapper * the default behaviour */ @FlaggedApi(android.security.Flags.FLAG_ASM_RESTRICTIONS_ENABLED) + @SuppressLint("OnNameExpected") public void setAllowCrossUidActivitySwitchFromBelow(boolean allowed) { ActivityClient.getInstance().setAllowCrossUidActivitySwitchFromBelow(mToken, allowed); } diff --git a/core/java/android/service/ondeviceintelligence/OnDeviceIntelligenceService.java b/core/java/android/service/ondeviceintelligence/OnDeviceIntelligenceService.java index 793e58ac5d3b..293015f86cee 100644 --- a/core/java/android/service/ondeviceintelligence/OnDeviceIntelligenceService.java +++ b/core/java/android/service/ondeviceintelligence/OnDeviceIntelligenceService.java @@ -18,6 +18,9 @@ package android.service.ondeviceintelligence; import static android.app.ondeviceintelligence.flags.Flags.FLAG_ENABLE_ON_DEVICE_INTELLIGENCE; +import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage; + +import android.annotation.CallSuper; import android.annotation.CallbackExecutor; import android.annotation.FlaggedApi; import android.annotation.NonNull; @@ -40,13 +43,16 @@ import android.content.Intent; import android.os.Binder; import android.os.Bundle; import android.os.CancellationSignal; +import android.os.Handler; import android.os.IBinder; import android.os.ICancellationSignal; +import android.os.Looper; import android.os.OutcomeReceiver; import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; import android.os.RemoteCallback; import android.os.RemoteException; +import android.util.Log; import android.util.Slog; import com.android.internal.infra.AndroidFuture; @@ -88,6 +94,14 @@ public abstract class OnDeviceIntelligenceService extends Service { private static final String TAG = OnDeviceIntelligenceService.class.getSimpleName(); private volatile IRemoteProcessingService mRemoteProcessingService; + private Handler mHandler; + + @CallSuper + @Override + public void onCreate() { + super.onCreate(); + mHandler = new Handler(Looper.getMainLooper(), null /* callback */, true /* async */); + } /** * The {@link Intent} that must be declared as handled by the service. To be supported, the @@ -107,38 +121,49 @@ public abstract class OnDeviceIntelligenceService extends Service { @Override public final IBinder onBind(@NonNull Intent intent) { if (SERVICE_INTERFACE.equals(intent.getAction())) { - // TODO(326052028) : Move the remote method calls to an app handler from the binder - // thread. return new IOnDeviceIntelligenceService.Stub() { /** {@inheritDoc} */ @Override public void ready() { - OnDeviceIntelligenceService.this.onReady(); + mHandler.executeOrSendMessage( + obtainMessage(OnDeviceIntelligenceService::onReady, + OnDeviceIntelligenceService.this)); } @Override public void getVersion(RemoteCallback remoteCallback) { Objects.requireNonNull(remoteCallback); - OnDeviceIntelligenceService.this.onGetVersion(l -> { - Bundle b = new Bundle(); - b.putLong(OnDeviceIntelligenceManager.API_VERSION_BUNDLE_KEY, l); - remoteCallback.sendResult(b); - }); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceIntelligenceService::onGetVersion, + OnDeviceIntelligenceService.this, l -> { + Bundle b = new Bundle(); + b.putLong( + OnDeviceIntelligenceManager.API_VERSION_BUNDLE_KEY, + l); + remoteCallback.sendResult(b); + })); } @Override public void listFeatures(int callerUid, IListFeaturesCallback listFeaturesCallback) { Objects.requireNonNull(listFeaturesCallback); - OnDeviceIntelligenceService.this.onListFeatures(callerUid, - wrapListFeaturesCallback(listFeaturesCallback)); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceIntelligenceService::onListFeatures, + OnDeviceIntelligenceService.this, callerUid, + wrapListFeaturesCallback(listFeaturesCallback))); } @Override public void getFeature(int callerUid, int id, IFeatureCallback featureCallback) { Objects.requireNonNull(featureCallback); - OnDeviceIntelligenceService.this.onGetFeature(callerUid, - id, wrapFeatureCallback(featureCallback)); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceIntelligenceService::onGetFeature, + OnDeviceIntelligenceService.this, callerUid, + id, wrapFeatureCallback(featureCallback))); } @@ -147,9 +172,11 @@ public abstract class OnDeviceIntelligenceService extends Service { IFeatureDetailsCallback featureDetailsCallback) { Objects.requireNonNull(feature); Objects.requireNonNull(featureDetailsCallback); - - OnDeviceIntelligenceService.this.onGetFeatureDetails(callerUid, - feature, wrapFeatureDetailsCallback(featureDetailsCallback)); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceIntelligenceService::onGetFeatureDetails, + OnDeviceIntelligenceService.this, callerUid, + feature, wrapFeatureDetailsCallback(featureDetailsCallback))); } @Override @@ -163,10 +190,13 @@ public abstract class OnDeviceIntelligenceService extends Service { transport = CancellationSignal.createTransport(); cancellationSignalFuture.complete(transport); } - OnDeviceIntelligenceService.this.onDownloadFeature(callerUid, - feature, - CancellationSignal.fromTransport(transport), - wrapDownloadCallback(downloadCallback)); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceIntelligenceService::onDownloadFeature, + OnDeviceIntelligenceService.this, callerUid, + feature, + CancellationSignal.fromTransport(transport), + wrapDownloadCallback(downloadCallback))); } @Override @@ -174,9 +204,11 @@ public abstract class OnDeviceIntelligenceService extends Service { AndroidFuture<ParcelFileDescriptor> future) { Objects.requireNonNull(fileName); Objects.requireNonNull(future); - - OnDeviceIntelligenceService.this.onGetReadOnlyFileDescriptor(fileName, - future); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceIntelligenceService::onGetReadOnlyFileDescriptor, + OnDeviceIntelligenceService.this, fileName, + future)); } @Override @@ -184,13 +216,15 @@ public abstract class OnDeviceIntelligenceService extends Service { Feature feature, RemoteCallback remoteCallback) { Objects.requireNonNull(feature); Objects.requireNonNull(remoteCallback); - - OnDeviceIntelligenceService.this.onGetReadOnlyFeatureFileDescriptorMap( - feature, parcelFileDescriptorMap -> { - Bundle bundle = new Bundle(); - parcelFileDescriptorMap.forEach(bundle::putParcelable); - remoteCallback.sendResult(bundle); - }); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceIntelligenceService::onGetReadOnlyFeatureFileDescriptorMap, + OnDeviceIntelligenceService.this, feature, + parcelFileDescriptorMap -> { + Bundle bundle = new Bundle(); + parcelFileDescriptorMap.forEach(bundle::putParcelable); + remoteCallback.sendResult(bundle); + })); } @Override @@ -201,12 +235,18 @@ public abstract class OnDeviceIntelligenceService extends Service { @Override public void notifyInferenceServiceConnected() { - OnDeviceIntelligenceService.this.onInferenceServiceConnected(); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceIntelligenceService::onInferenceServiceConnected, + OnDeviceIntelligenceService.this)); } @Override public void notifyInferenceServiceDisconnected() { - OnDeviceIntelligenceService.this.onInferenceServiceDisconnected(); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceIntelligenceService::onInferenceServiceDisconnected, + OnDeviceIntelligenceService.this)); } }; } @@ -222,7 +262,8 @@ public abstract class OnDeviceIntelligenceService extends Service { * @hide */ @TestApi - public void onReady() {} + public void onReady() { + } /** @@ -410,12 +451,16 @@ public abstract class OnDeviceIntelligenceService extends Service { Slog.v(TAG, "onGetReadOnlyFileDescriptor: " + fileName + " under internal app storage."); File f = new File(getBaseContext().getFilesDir(), fileName); + if (!f.exists()) { + f = new File(fileName); + } ParcelFileDescriptor pfd = null; try { pfd = ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY); Slog.d(TAG, "Successfully opened a file with ParcelFileDescriptor."); } catch (FileNotFoundException e) { Slog.e(TAG, "Cannot open file. No ParcelFileDescriptor returned."); + future.completeExceptionally(e); } finally { future.complete(pfd); if (pfd != null) { diff --git a/core/java/android/service/ondeviceintelligence/OnDeviceSandboxedInferenceService.java b/core/java/android/service/ondeviceintelligence/OnDeviceSandboxedInferenceService.java index 144c1cda3470..d00485cb1ca5 100644 --- a/core/java/android/service/ondeviceintelligence/OnDeviceSandboxedInferenceService.java +++ b/core/java/android/service/ondeviceintelligence/OnDeviceSandboxedInferenceService.java @@ -19,7 +19,10 @@ package android.service.ondeviceintelligence; import static android.app.ondeviceintelligence.OnDeviceIntelligenceManager.AUGMENT_REQUEST_CONTENT_BUNDLE_KEY; import static android.app.ondeviceintelligence.flags.Flags.FLAG_ENABLE_ON_DEVICE_INTELLIGENCE; +import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage; + import android.annotation.CallbackExecutor; +import android.annotation.CallSuper; import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.Nullable; @@ -48,6 +51,7 @@ import android.os.Handler; import android.os.HandlerExecutor; import android.os.IBinder; import android.os.ICancellationSignal; +import android.os.Looper; import android.os.OutcomeReceiver; import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; @@ -126,6 +130,14 @@ public abstract class OnDeviceSandboxedInferenceService extends Service { public static final String DEVICE_CONFIG_UPDATE_BUNDLE_KEY = "device_config_update"; private IRemoteStorageService mRemoteStorageService; + private Handler mHandler; + + @CallSuper + @Override + public void onCreate() { + super.onCreate(); + mHandler = new Handler(Looper.getMainLooper(), null /* callback */, true /* async */); + } /** * @hide @@ -152,11 +164,15 @@ public abstract class OnDeviceSandboxedInferenceService extends Service { transport = CancellationSignal.createTransport(); cancellationSignalFuture.complete(transport); } - OnDeviceSandboxedInferenceService.this.onTokenInfoRequest(callerUid, - feature, - request, - CancellationSignal.fromTransport(transport), - wrapTokenInfoCallback(tokenInfoCallback)); + + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceSandboxedInferenceService::onTokenInfoRequest, + OnDeviceSandboxedInferenceService.this, + callerUid, feature, + request, + CancellationSignal.fromTransport(transport), + wrapTokenInfoCallback(tokenInfoCallback))); } @Override @@ -178,13 +194,18 @@ public abstract class OnDeviceSandboxedInferenceService extends Service { processingSignalTransport = ProcessingSignal.createTransport(); processingSignalFuture.complete(processingSignalTransport); } - OnDeviceSandboxedInferenceService.this.onProcessRequestStreaming(callerUid, - feature, - request, - requestType, - CancellationSignal.fromTransport(transport), - ProcessingSignal.fromTransport(processingSignalTransport), - wrapStreamingResponseCallback(callback)); + + + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceSandboxedInferenceService::onProcessRequestStreaming, + OnDeviceSandboxedInferenceService.this, callerUid, + feature, + request, + requestType, + CancellationSignal.fromTransport(transport), + ProcessingSignal.fromTransport(processingSignalTransport), + wrapStreamingResponseCallback(callback))); } @Override @@ -205,11 +226,14 @@ public abstract class OnDeviceSandboxedInferenceService extends Service { processingSignalTransport = ProcessingSignal.createTransport(); processingSignalFuture.complete(processingSignalTransport); } - OnDeviceSandboxedInferenceService.this.onProcessRequest(callerUid, feature, - request, requestType, - CancellationSignal.fromTransport(transport), - ProcessingSignal.fromTransport(processingSignalTransport), - wrapResponseCallback(callback)); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceSandboxedInferenceService::onProcessRequest, + OnDeviceSandboxedInferenceService.this, callerUid, feature, + request, requestType, + CancellationSignal.fromTransport(transport), + ProcessingSignal.fromTransport(processingSignalTransport), + wrapResponseCallback(callback))); } @Override @@ -217,10 +241,11 @@ public abstract class OnDeviceSandboxedInferenceService extends Service { IProcessingUpdateStatusCallback callback) { Objects.requireNonNull(processingState); Objects.requireNonNull(callback); - - OnDeviceSandboxedInferenceService.this.onUpdateProcessingState(processingState, - wrapOutcomeReceiver(callback) - ); + mHandler.executeOrSendMessage( + obtainMessage( + OnDeviceSandboxedInferenceService::onUpdateProcessingState, + OnDeviceSandboxedInferenceService.this, processingState, + wrapOutcomeReceiver(callback))); } }; } diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java index d22d2a52c8cc..e338bcf248e4 100644 --- a/core/java/android/view/InputDevice.java +++ b/core/java/android/view/InputDevice.java @@ -78,6 +78,7 @@ public final class InputDevice implements Parcelable { private final InputDeviceIdentifier mIdentifier; @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) private final boolean mIsExternal; + @Source private final int mSources; private final int mKeyboardType; private final KeyCharacterMap mKeyCharacterMap; @@ -359,6 +360,28 @@ public final class InputDevice implements Parcelable { */ public static final int SOURCE_ANY = 0xffffff00; + /** @hide */ + @IntDef(flag = true, prefix = { "SOURCE_" }, value = { + SOURCE_UNKNOWN, + SOURCE_KEYBOARD, + SOURCE_DPAD, + SOURCE_GAMEPAD, + SOURCE_TOUCHSCREEN, + SOURCE_MOUSE, + SOURCE_STYLUS, + SOURCE_BLUETOOTH_STYLUS, + SOURCE_TRACKBALL, + SOURCE_MOUSE_RELATIVE, + SOURCE_TOUCHPAD, + SOURCE_TOUCH_NAVIGATION, + SOURCE_ROTARY_ENCODER, + SOURCE_JOYSTICK, + SOURCE_HDMI, + SOURCE_SENSOR, + }) + @Retention(RetentionPolicy.SOURCE) + @interface Source {} + /** * Constant for retrieving the range of values for {@link MotionEvent#AXIS_X}. * diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index 2a3c691dcd04..7fe8641cd889 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Stembystand"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Snelsluit"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nuwe kennisgewing"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fisieke sleutelbord"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Sekuriteit"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Maak Boodskappe oop"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Hoe dit werk"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Hangend …"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Stel Vingerafdrukslot weer op"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> het nie goed gewerk nie en is uitgevee. Stel dit weer op om jou foon met vingerafdruk te ontsluit."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> en <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> het nie goed gewerk nie en is uitgevee. Stel dit weer op om jou foon met jou vingerafdruk te ontsluit."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Stel Gesigslot weer op"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Jou gesigmodel het nie goed gewerk nie en is uitgevee. Stel dit weer op om jou foon met gesig te ontsluit."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Stel op"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Nie nou nie"</string> </resources> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 08a290c454f3..1d1ded6ce468 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"የድምጽ እርዳታ"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"መቆለፊያ"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"አዲስ ማሳወቂያ"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"አካላዊ ቁልፍ ሰሌዳ"</string> <string name="notification_channel_security" msgid="8516754650348238057">"ደህንነት"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"መልዕክቶች ይክፈቱ"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"እንዴት እንደሚሠራ"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"በመጠባበቅ ላይ..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"በጣት አሻራ መክፈቻን እንደገና ያዋቅሩ"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> በደንብ እየሠራ አልነበረም እና ተሰርዟል። ስልክዎን በጣት አሻራ ለመክፈት እንደገና ያዋቅሩት።"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> እና <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> በደንብ እየሠሩ አልነበረም እና ተሰርዘዋል። ስልክዎን በጣት አሻራ ለመክፈት እንደገና ያዋቅሯቸው።"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"በመልክ መክፈትን እንደገና ያዋቅሩ"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"የእርስዎ የመልክ ሞዴል በደንብ እየሠራ አልነበረም እና ተሰርዟል። ስልክዎን በመልክ ለመክፈት እንደገና ያዋቅሩት።"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"ያዋቅሩ"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"አሁን አይደለም"</string> </resources> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 20d491fd22d8..6ee9d5dab3a3 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -287,6 +287,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"المساعد الصوتي"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"إلغاء التأمين"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"إشعار جديد"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"لوحة المفاتيح الخارجية"</string> <string name="notification_channel_security" msgid="8516754650348238057">"الأمان"</string> @@ -2398,9 +2400,9 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"تم ضبط تنسيق لوحة المفاتيح على <xliff:g id="LAYOUT_1">%1$s</xliff:g> و<xliff:g id="LAYOUT_2">%2$s</xliff:g> و<xliff:g id="LAYOUT_3">%3$s</xliff:g>… انقر لتغييره."</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"تم إعداد لوحات المفاتيح الخارجية"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"انقر لعرض لوحات المفاتيح."</string> - <string name="profile_label_private" msgid="6463418670715290696">"ملف شخصي خاص"</string> + <string name="profile_label_private" msgid="6463418670715290696">"المساحة الخاصة"</string> <string name="profile_label_clone" msgid="769106052210954285">"نسخة طبق الأصل"</string> - <string name="profile_label_work" msgid="3495359133038584618">"ملف العمل"</string> + <string name="profile_label_work" msgid="3495359133038584618">"مساحة العمل"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"ملف العمل 2"</string> <string name="profile_label_work_3" msgid="4834572253956798917">"ملف العمل 3"</string> <string name="profile_label_test" msgid="9168641926186071947">"ملف شخصي تجريبي"</string> @@ -2417,22 +2419,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"فتح تطبيق \"الرسائل\""</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"طريقة العمل"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"بانتظار الإزالة من الأرشيف…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"إعادة إعداد ميزة \"فتح الجهاز ببصمة الإصبع\""</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"هناك مشكلة في <xliff:g id="FINGERPRINT">%s</xliff:g> وتم حذفها. يُرجى إعدادها مرة أخرى لفتح قفل هاتفك باستخدام بصمة الإصبع."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"هناك مشكلة في <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> و<xliff:g id="FINGERPRINT_1">%2$s</xliff:g> وتم حذفهما. يُرجى إعادة إعدادهما لفتح قفل هاتفك باستخدام بصمة الإصبع."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"إعادة إعداد ميزة \"فتح الجهاز بالتعرّف على الوجه\""</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"هناك مشكلة في نموذج الوجه الخاص بك وتم حذفه. يُرجى إعداده مرة أخرى لفتح قفل هاتفك باستخدام وجهك."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"إعداد"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"لاحقًا"</string> </resources> diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml index 30ced90bd5e4..9064df1d5ae5 100644 --- a/core/res/res/values-as/strings.xml +++ b/core/res/res/values-as/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"কণ্ঠধ্বনিৰে সহায়"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"লকডাউন"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"৯৯৯+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"নতুন জাননী"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"কায়িক কীব’ৰ্ড"</string> <string name="notification_channel_security" msgid="8516754650348238057">"সুৰক্ষা"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages খোলক"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"ই কেনেকৈ কাম কৰে"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"বিবেচনাধীন হৈ আছে..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"ফিংগাৰপ্ৰিণ্ট আনলক পুনৰ ছেট আপ কৰক"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g>এ ভালদৰে কাম কৰা নাছিল আৰু সেইটো মচি পেলোৱা হৈছে। ফিংগাৰপ্ৰিণ্টৰ জৰিয়তে আপোনাৰ ফ’নটো আনলক কৰিবলৈ এইটো পুনৰ ছেট আপ কৰক।"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> আৰু <xliff:g id="FINGERPRINT_1">%2$s</xliff:g>এ ভালদৰে কাম কৰা নাছিল আৰু সেয়া মচি পেলোৱা হৈছে। ফিংগাৰপ্ৰিণ্টৰ জৰিয়তে আপোনাৰ ফ’নটো আনলক কৰিবলৈ সেয়া পুনৰ ছেট আপ কৰক।"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"ফে’চ আনলক পুনৰ ছেট আপ কৰক"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"আপোনাৰ মুখাৱয়বৰ মডেলটোৱে ভালদৰে কাম কৰা নাছিল আৰু সেইটো মচি পেলোৱা হৈছে। মুখাৱয়বৰ জৰিয়তে আপোনাৰ ফ’নটো আনলক কৰিবলৈ এইটো পুনৰ ছেট আপ কৰক।"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"ছেট আপ কৰক"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"এতিয়া নহয়"</string> </resources> diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml index 49073f11f897..23a96689c073 100644 --- a/core/res/res/values-az/strings.xml +++ b/core/res/res/values-az/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Səs Yardımçısı"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Kilidləyin"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Yeni bildiriş"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fiziki klaviatura"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Güvənlik"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Mesajı açın"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Haqqında"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Gözləmədə..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Barmaqla Kilidaçmanı yenidən ayarlayın"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> yaxşı işləmirdi və silindi. Telefonu barmaq izi ilə kiliddən çıxarmaq üçün onu yenidən ayarlayın."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> və <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> yaxşı işləmirdi və silindi. Telefonu barmaq izi ilə kiliddən çıxarmaq üçün onları yenidən ayarlayın."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Üzlə Kilidaçmanı yenidən ayarlayın"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Üz modeliniz yaxşı işləmirdi və silindi. Telefonu üzlə kiliddən çıxarmaq üçün onu yenidən ayarlayın."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Ayarlayın"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"İndi yox"</string> </resources> diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index ca66ef4a018f..db9a93f7a63a 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Glasovna pomoć"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Zaključavanje"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Novo obaveštenje"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fizička tastatura"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Bezbednost"</string> @@ -835,11 +837,11 @@ <string name="policylab_watchLogin" msgid="7599669460083719504">"Nadzor pokušaja otključavanja ekrana"</string> <string name="policydesc_watchLogin" product="tablet" msgid="2388436408621909298">"Prati broj netačno unetih lozinki prilikom otključavanja ekrana i zaključava tablet ili briše podatke sa tableta ako je netačna lozinka uneta previše puta."</string> <string name="policydesc_watchLogin" product="tv" msgid="2140588224468517507">"Nadgleda broj netačnih lozinki unetih pri otključavanju ekrana i zaključava Android TV uređaj ili briše sve podatke sa Android TV uređaja ako se unese previše netačnih lozinki."</string> - <string name="policydesc_watchLogin" product="automotive" msgid="7011438994051251521">"Prati broj netačno unetih lozinki pri otključavanju ekrana i zaključava sistem za info-zabavu ili briše sve podatke sa sistema za info-zabavu ako je netačna lozinka uneta previše puta."</string> + <string name="policydesc_watchLogin" product="automotive" msgid="7011438994051251521">"Prati broj netačno unetih lozinki pri otključavanju ekrana i zaključava sistem za informacije i zabavu ili briše sve podatke sa sistema za informacije i zabavu ako je netačna lozinka uneta previše puta."</string> <string name="policydesc_watchLogin" product="default" msgid="4885030206253600299">"Prati broj netačno unetih lozinki pri otključavanju ekrana i zaključava telefon ili briše sve podatke sa telefona ako je netačna lozinka uneta previše puta."</string> <string name="policydesc_watchLogin_secondaryUser" product="tablet" msgid="2049038943004297474">"Nadgleda broj netačnih lozinki unetih pri otključavanju ekrana i zaključava tablet ili briše sve podatke ovog korisnika ako se unese previše netačnih lozinki."</string> <string name="policydesc_watchLogin_secondaryUser" product="tv" msgid="8965224107449407052">"Nadgleda broj netačnih lozinki unetih pri otključavanju ekrana i zaključava Android TV uređaj ili briše sve podatke ovog korisnika ako se unese previše netačnih lozinki."</string> - <string name="policydesc_watchLogin_secondaryUser" product="automotive" msgid="7180857406058327941">"Nadgleda broj netačnih lozinki unetih pri otključavanju ekrana i zaključava sistem za info-zabavu ili briše sve podatke ovog profila ako se unese previše netačnih lozinki."</string> + <string name="policydesc_watchLogin_secondaryUser" product="automotive" msgid="7180857406058327941">"Nadgleda broj netačnih lozinki unetih pri otključavanju ekrana i zaključava sistem za informacije i zabavu ili briše sve podatke ovog profila ako se unese previše netačnih lozinki."</string> <string name="policydesc_watchLogin_secondaryUser" product="default" msgid="9177645136475155924">"Nadgleda broj netačnih lozinki unetih pri otključavanju ekrana i zaključava telefon ili briše sve podatke ovog korisnika ako se unese previše netačnih lozinki."</string> <string name="policylab_resetPassword" msgid="214556238645096520">"Promena zaključavanja ekrana"</string> <string name="policydesc_resetPassword" msgid="4626419138439341851">"Menja otključavanje ekrana."</string> @@ -848,13 +850,13 @@ <string name="policylab_wipeData" msgid="1359485247727537311">"Brisanje svih podataka"</string> <string name="policydesc_wipeData" product="tablet" msgid="7245372676261947507">"Brisanje podataka na tabletu bez upozorenja resetovanjem na fabrička podešavanja."</string> <string name="policydesc_wipeData" product="tv" msgid="513862488950801261">"Briše podatke Android TV uređaja bez upozorenja pomoću resetovanja na fabrička podešavanja."</string> - <string name="policydesc_wipeData" product="automotive" msgid="660804547737323300">"Briše podatke na sistemu za info-zabavu bez upozorenja resetovanjem na fabrička podešavanja."</string> + <string name="policydesc_wipeData" product="automotive" msgid="660804547737323300">"Briše podatke na sistemu za informacije i zabavu bez upozorenja resetovanjem na fabrička podešavanja."</string> <string name="policydesc_wipeData" product="default" msgid="8036084184768379022">"Brisanje podataka na telefonu bez upozorenja resetovanjem na fabrička podešavanja."</string> <string name="policylab_wipeData_secondaryUser" product="automotive" msgid="115034358520328373">"Brisanje podataka profila"</string> <string name="policylab_wipeData_secondaryUser" product="default" msgid="413813645323433166">"Obriši podatke korisnika"</string> <string name="policydesc_wipeData_secondaryUser" product="tablet" msgid="2336676480090926470">"Briše podatke ovog korisnika na ovom tabletu bez upozorenja."</string> <string name="policydesc_wipeData_secondaryUser" product="tv" msgid="2293713284515865200">"Briše podatke ovog korisnika na ovom Android TV uređaju bez upozorenja."</string> - <string name="policydesc_wipeData_secondaryUser" product="automotive" msgid="4658832487305780879">"Briše podatke ovog profila na ovom sistemu za info-zabavu bez upozorenja."</string> + <string name="policydesc_wipeData_secondaryUser" product="automotive" msgid="4658832487305780879">"Briše podatke ovog profila na ovom sistemu za informacije i zabavu bez upozorenja."</string> <string name="policydesc_wipeData_secondaryUser" product="default" msgid="2788325512167208654">"Briše podatke ovog korisnika na ovom telefonu bez upozorenja."</string> <string name="policylab_setGlobalProxy" msgid="215332221188670221">"Podesite globalni proksi server uređaja"</string> <string name="policydesc_setGlobalProxy" msgid="7149665222705519604">"Podešava globalni proksi uređaja koji će se koristiti dok su smernice omogućene. Samo vlasnik uređaja može da podesi globalni proksi."</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Otvori Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Princip rada"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Na čekanju..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Ponovo podesite otključavanje otiskom prsta"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> nije funkcionisao i izbrisali smo ga. Ponovo ga podesite da biste telefon otključavali otiskom prsta."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> i <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> nisu funkcionisali i izbrisali smo ih. Ponovo ih podesite da biste telefon otključavali otiskom prsta."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Ponovo podesite otključavanje licem"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Vaš model lica nije funkcionisao i izbrisali smo ga. Ponovo ga podesite da biste telefon otključavali licem."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Podesi"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ne sada"</string> </resources> diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml index 4cd150a6ebf6..ec19c2da015e 100644 --- a/core/res/res/values-be/strings.xml +++ b/core/res/res/values-be/strings.xml @@ -285,6 +285,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Галас. дапамога"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Блакіроўка"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Новае апавяшчэнне"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Фізічная клавіятура"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Бяспека"</string> @@ -2415,22 +2417,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Адкрыць Паведамленні"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Як гэта працуе"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"У чаканні..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Наладзіць разблакіроўку адбіткам пальца паўторна"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Адбітак пальца \"<xliff:g id="FINGERPRINT">%s</xliff:g>\" не працаваў належным чынам і быў выдалены. Каб мець магчымасць разблакіраваць тэлефон з дапамогай адбітка пальца, наладзьце яго яшчэ раз."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Адбіткі пальцаў \"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>\" і \"<xliff:g id="FINGERPRINT_1">%2$s</xliff:g>\" не працавалі належным чынам і былі выдалены. Каб мець магчымасць разблакіраваць тэлефон з дапамогай адбітка пальца, наладзьце іх яшчэ раз."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Паўторна наладзьце распазнаванне твару"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Мадэль твару не працавала належным чынам і была выдалена. Каб мець магчымасць разблакіраваць тэлефон з дапамогай распазнавання твару, наладзьце яго яшчэ раз."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Наладзіць"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Не зараз"</string> </resources> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index eb2e9207367f..1b73710c4548 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Гласова помощ"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Заключване"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Ново известие"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Физическа клавиатура"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Сигурност"</string> @@ -1726,7 +1728,7 @@ <string name="accessibility_shortcut_off" msgid="3651336255403648739">"Без включване"</string> <string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"ВКЛ."</string> <string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"ИЗКЛ."</string> - <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Искате ли да разрешите на <xliff:g id="SERVICE">%1$s</xliff:g> да има пълен контрол над устройството ви?"</string> + <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Искате ли да разрешите на „<xliff:g id="SERVICE">%1$s</xliff:g>“ да има пълен контрол над устройството ви?"</string> <string name="accessibility_service_warning_description" msgid="291674995220940133">"Пълният контрол е подходящ за приложенията, които помагат на потребителите със специални нужди, но не и за повечето приложения."</string> <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Преглед и управление на екрана"</string> <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Услугата може да чете цялото съдържание на екрана и да показва такова върху други приложения."</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Отваряне на Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Начин на работа"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Изчаква..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Повторно настройване на „Отключване с отпечатък“"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Отпечатъкът „<xliff:g id="FINGERPRINT">%s</xliff:g>“ бе изтрит, защото не работеше добре. Настройте го отново, за да отключвате телефона си с отпечатък."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Отпечатъците „<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>“ и „<xliff:g id="FINGERPRINT_1">%2$s</xliff:g>“ бяха изтрити, защото не работеха добре. Настройте ги отново, за да отключвате телефона си с отпечатък."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Повторно настройване на „Отключване с лице“"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Моделът на лицето ви бе изтрит, защото не работеше добре. Настройте го отново, за да отключвате телефона си с лице."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Настройване"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Не сега"</string> </resources> diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml index 6618127ada43..0e32bbe64c86 100644 --- a/core/res/res/values-bn/strings.xml +++ b/core/res/res/values-bn/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"ভয়েস সহায়তা"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"লকডাউন"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"৯৯৯+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"নতুন বিজ্ঞপ্তি"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"ফিজিক্যাল কীবোর্ড"</string> <string name="notification_channel_security" msgid="8516754650348238057">"নিরাপত্তা"</string> @@ -644,7 +646,7 @@ <string name="biometric_or_screen_lock_dialog_default_subtitle" msgid="159539678371552009">"চালিয়ে যেতে আপনার বায়োমেট্রিক্স বা স্ক্রিন লক ব্যবহার করুন"</string> <string name="biometric_error_hw_unavailable" msgid="2494077380540615216">"বায়োমেট্রিক হার্ডওয়্যার পাওয়া যাবে না"</string> <string name="biometric_error_user_canceled" msgid="6732303949695293730">"যাচাইকরণ বাতিল হয়েছে"</string> - <string name="biometric_not_recognized" msgid="5106687642694635888">"স্বীকৃত নয়"</string> + <string name="biometric_not_recognized" msgid="5106687642694635888">"শনাক্ত করা যায়নি"</string> <string name="biometric_face_not_recognized" msgid="5535599455744525200">"ফেস চেনা যায়নি"</string> <string name="biometric_error_canceled" msgid="8266582404844179778">"যাচাইকরণ বাতিল হয়েছে"</string> <string name="biometric_error_device_not_secured" msgid="3129845065043995924">"পিন, প্যাটার্ন অথবা পাসওয়ার্ড সেট করা নেই"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages খুলুন"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"এটি কীভাবে কাজ করে"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"বাকি আছে…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"\'ফিঙ্গারপ্রিন্ট আনলক\' আবার সেট-আপ করুন"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ভালোভাবে কাজ করছিল না বলে সেটি মুছে ফেলা হয়েছে। ফিঙ্গারপ্রিন্ট ব্যবহার করে আপনার ফোন আনলক করতে হলে এটি আবার সেট-আপ করুন।"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> ও <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ভালোভাবে কাজ করছিল না বলে মুছে ফেলা হয়েছে। ফিঙ্গারপ্রিন্ট ব্যবহার করে আপনার ফোন আনলক করতে হলে সেগুলি আবার সেট-আপ করুন।"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"\'ফেস আনলক\' আবার সেট-আপ করুন"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"আপনার ফেস মডেল ভালোভাবে কাজ করছিল না বলে সেটি মুছে ফেলা হয়েছে। ফেস ব্যবহার করে আপনার ফোন আনলক করতে হলে এটি আবার সেট-আপ করুন।"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"সেট-আপ করুন"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"এখন নয়"</string> </resources> diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml index 4f058bf74b41..ddc515325992 100644 --- a/core/res/res/values-bs/strings.xml +++ b/core/res/res/values-bs/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Glasovna pomoć"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Zaključaj"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Novo obavještenje"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fizička tastatura"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Sigurnost"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Otvorite Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Kako ovo funkcionira"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Na čekanju…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Ponovo postavite otključavanje otiskom prsta"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Otisak prsta <xliff:g id="FINGERPRINT">%s</xliff:g> nije dobro funkcionirao, pa je izbrisan. Postavite ga ponovo da otključavate telefon otiskom prsta."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Otisci prstiju <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> i <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> nisu dobro funkcionirali, pa su izbrisani. Postavite ih ponovo da otključavate telefon otiskom prsta."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Ponovo postavite otključavanje licem"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Model lica nije dobro funkcionirao, pa je izbrisan. Postavite ga ponovo da otključavate telefon licem."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Postavite"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ne sada"</string> </resources> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 77fd6b833bb8..1fd814d3561a 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -85,7 +85,7 @@ <string name="NetworkPreferenceSwitchTitle" msgid="1008329951315753038">"No es pot accedir a la xarxa mòbil"</string> <string name="NetworkPreferenceSwitchSummary" msgid="2086506181486324860">"Prova de canviar de xarxa preferent. Toca per canviar-la."</string> <string name="EmergencyCallWarningTitle" msgid="1615688002899152860">"Les trucades d\'emergència no estan disponibles"</string> - <string name="EmergencyCallWarningSummary" msgid="9102799172089265268">"Per poder fer trucades d\'emergència, cal tenir connexió a una xarxa mòbil"</string> + <string name="EmergencyCallWarningSummary" msgid="9102799172089265268">"Per poder fer trucades d\'emergència, cal tenir connexió de xarxa mòbil"</string> <string name="notification_channel_network_alert" msgid="4788053066033851841">"Alertes"</string> <string name="notification_channel_call_forward" msgid="8230490317314272406">"Desviació de trucades"</string> <string name="notification_channel_emergency_callback" msgid="54074839059123159">"Mode de devolució de trucada d\'emergència"</string> @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Assist. per veu"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Bloqueig de seguretat"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"+999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Notificació nova"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Teclat físic"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Seguretat"</string> @@ -1905,8 +1907,8 @@ <string name="package_updated_device_owner" msgid="7560272363805506941">"Actualitzat per l\'administrador"</string> <string name="package_deleted_device_owner" msgid="2292335928930293023">"Suprimit per l\'administrador"</string> <string name="confirm_battery_saver" msgid="5247976246208245754">"D\'acord"</string> - <string name="battery_saver_description_with_learn_more" msgid="5444908404021316250">"Estalvi de bateria activa el tema fosc i limita o desactiva l\'activitat en segon pla, alguns efectes visuals, determinades funcions i algunes connexions a la xarxa."</string> - <string name="battery_saver_description" msgid="8518809702138617167">"Estalvi de bateria activa el tema fosc i limita o desactiva l\'activitat en segon pla, alguns efectes visuals, determinades funcions i algunes connexions a la xarxa."</string> + <string name="battery_saver_description_with_learn_more" msgid="5444908404021316250">"Estalvi de bateria activa el tema fosc i limita o desactiva l\'activitat en segon pla, alguns efectes visuals, determinades funcions i algunes connexions de xarxa."</string> + <string name="battery_saver_description" msgid="8518809702138617167">"Estalvi de bateria activa el tema fosc i limita o desactiva l\'activitat en segon pla, alguns efectes visuals, determinades funcions i algunes connexions de xarxa."</string> <string name="data_saver_description" msgid="4995164271550590517">"Per reduir l\'ús de dades, la funció Estalvi de dades evita que determinades aplicacions enviïn o rebin dades en segon pla. L\'aplicació que estiguis fent servir podrà accedir a les dades, però menys sovint. Això vol dir, per exemple, que les imatges no es mostraran fins que no les toquis."</string> <string name="data_saver_enable_title" msgid="7080620065745260137">"Vols activar l\'Estalvi de dades?"</string> <string name="data_saver_enable_button" msgid="4399405762586419726">"Activa"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Obre Missatges"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Com funciona"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pendent..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Torna a configurar Desbloqueig amb empremta digital"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> no funcionava correctament i s\'ha suprimit. Torna a configurar-la per desbloquejar el telèfon amb l\'empremta digital."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> i <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> no funcionaven correctament i s\'han suprimit. Torna a configurar-les per desbloquejar el telèfon amb l\'empremta digital."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Torna a configurar Desbloqueig facial"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"El teu model facial no funcionava correctament i s\'ha suprimit. Torna a configurar-lo per desbloquejar el telèfon amb la cara."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configura"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ara no"</string> </resources> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 5615f79d1013..ec7bb29a2ebe 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -285,6 +285,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Hlas. asistence"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Zamknout"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nové oznámení"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fyzická klávesnice"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Zabezpečení"</string> @@ -2415,22 +2417,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Otevřít Zprávy"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Jak to funguje"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Čeká na vyřízení…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Opětovné nastavení odemknutí otiskem prstu"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> nefungoval správně a byl vymazán. Pokud chcete telefon odemykat otiskem prstu, nastavte jej znovu."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> a <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> nefungovaly správně a byly vymazány. Pokud chcete telefon odemykat otiskem prstu, nastavte je znovu."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Nastavte odemknutí obličejem znovu"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Váš model obličeje nefungoval správně a byl vymazán. Pokud chcete telefon odemykat obličejem, nastavte jej znovu."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Nastavit"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Teď ne"</string> </resources> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index fd04e42c8e1f..ef4126283fa9 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Taleassistent"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Låsning"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Ny notifikation"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fysisk tastatur"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Sikkerhed"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Åbn Beskeder"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Sådan fungerer det"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Afventer…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Konfigurer fingeroplåsning igen"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> virkede ikke optimalt og er derfor slettet. Konfigurer den igen for at bruge fingeroplåsning på din telefon."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> og <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> virkede ikke optimalt og er derfor slettet. Konfigurer dem igen for at bruge dit fingeraftryk til at låse din telefon op."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Konfigurer ansigtsoplåsning igen"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Din ansigtsmodel virkede ikke optimalt og er derfor slettet. Konfigurer den igen for at bruge ansigtsoplåsning på din telefon."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Konfigurer"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ikke nu"</string> </resources> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 630ec7512784..1df8954ef78d 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Sprachassistent"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Sperren"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Neue Benachrichtigung"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Physische Tastatur"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Sicherheit"</string> @@ -1997,7 +1999,7 @@ <string name="work_mode_emergency_call_button" msgid="6818855962881612322">"Notruf"</string> <string name="set_up_screen_lock_title" msgid="8346083801616474030">"Displaysperre einrichten"</string> <string name="set_up_screen_lock_action_label" msgid="2687634803649209367">"Displaysperre einrichten"</string> - <string name="private_space_set_up_screen_lock_message" msgid="1109956797005149814">"Richte zur Nutzung des privaten Bereichs auf dem Gerät die Displaysperre ein"</string> + <string name="private_space_set_up_screen_lock_message" msgid="1109956797005149814">"Richte zur Nutzung des vertraulichen Profils auf dem Gerät die Displaysperre ein"</string> <string name="app_blocked_title" msgid="7353262160455028160">"App ist nicht verfügbar"</string> <string name="app_blocked_message" msgid="542972921087873023">"<xliff:g id="APP_NAME">%1$s</xliff:g> ist derzeit nicht verfügbar."</string> <string name="app_streaming_blocked_title" msgid="6090945835898766139">"<xliff:g id="ACTIVITY">%1$s</xliff:g> nicht verfügbar"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages öffnen"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"So funktionierts"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Ausstehend…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Entsperrung per Fingerabdruck neu einrichten"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> hat nicht einwandfrei funktioniert und wurde gelöscht. Richte ihn noch einmal ein, um dein Smartphone per Fingerabdruck zu entsperren."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> und <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> haben nicht einwandfrei funktioniert und wurden gelöscht. Richte sie noch einmal ein, um dein Smartphone per Fingerabdruck zu entsperren."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Entsperrung per Gesichtserkennung neu einrichten"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Dein Gesichtsmodell hat nicht einwandfrei funktioniert und wurde gelöscht. Richte es noch einmal ein, um dein Smartphone per Gesichtserkennung zu entsperren."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Einrichten"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Nicht jetzt"</string> </resources> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 54901313dad2..3c7d16714849 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Φων.υποβοηθ."</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Κλείδωμα"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Νέα ειδοποίηση"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Κανονικό πληκτρολόγιο"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Ασφάλεια"</string> @@ -2402,7 +2404,7 @@ <string name="profile_label_test" msgid="9168641926186071947">"Δοκιμή"</string> <string name="profile_label_communal" msgid="8743921499944800427">"Κοινόχρηστο"</string> <string name="accessibility_label_managed_profile" msgid="3366526886209832641">"Προφίλ εργασίας"</string> - <string name="accessibility_label_private_profile" msgid="1436459319135548969">"Απόρρητος χώρος"</string> + <string name="accessibility_label_private_profile" msgid="1436459319135548969">"Ιδιωτικός χώρος"</string> <string name="accessibility_label_clone_profile" msgid="7579118375042398784">"Κλώνος"</string> <string name="accessibility_label_communal_profile" msgid="1437173163111334791">"Κοινόχρηστο"</string> <string name="redacted_notification_message" msgid="1520587845842228816">"Έγινε απόκρυψη της ειδοποίησης ευαίσθητου περιεχομένου"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Άνοιγμα Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Πώς λειτουργεί"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Σε εκκρεμότητα…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Επαναρρύθμιση λειτουργίας Ξεκλείδωμα με δακτυλικό αποτύπωμα"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Το δακτυλικό αποτύπωμα <xliff:g id="FINGERPRINT">%s</xliff:g> δεν λειτουργούσε καλά και διαγράφηκε. Ρυθμίστε το ξανά για να ξεκλειδώνετε το τηλέφωνο με το δακτυλικό αποτύπωμά σας."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Τα δακτυλικά αποτυπώματα <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> και <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> δεν λειτουργούσαν καλά και διαγράφηκαν. Ρυθμίστε τα ξανά για να ξεκλειδώνετε το τηλέφωνο με το δακτυλικό αποτύπωμά σας."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Επαναρρύθμιση λειτουργίας Ξεκλείδωμα με το πρόσωπο"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Το μοντέλο προσώπου δεν λειτουργούσε καλά και διαγράφηκε. Ρυθμίστε το ξανά για να ξεκλειδώνετε το τηλέφωνο με το πρόσωπό σας."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Ρύθμιση"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Όχι τώρα"</string> </resources> diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index a32fcca8fc1f..5f7dd656d0ca 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Voice Assist"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Lockdown"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"New notification"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Physical keyboard"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Security"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Open Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"How it works"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pending…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Set up Fingerprint Unlock again"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> wasn\'t working well and was deleted. Set it up again to unlock your phone with your fingerprint."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> and <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> weren\'t working well and were deleted. Set them up again to unlock your phone with your fingerprint."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Set up Face Unlock again"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Your face model wasn\'t working well and was deleted. Set it up again to unlock your phone with your face."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Set up"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Not now"</string> </resources> diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml index 9f06f71c147f..d1894b5e7106 100644 --- a/core/res/res/values-en-rCA/strings.xml +++ b/core/res/res/values-en-rCA/strings.xml @@ -283,6 +283,7 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Voice Assist"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Lockdown"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <string name="notification_compact_heads_up_reply" msgid="2425293958371284340">"Reply"</string> <string name="notification_hidden_text" msgid="2835519769868187223">"New notification"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Physical keyboard"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Security"</string> @@ -2414,8 +2415,10 @@ <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"How it works"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pending..."</string> <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Set up Fingerprint Unlock again"</string> - <string name="fingerprint_dangling_notification_msg_1" msgid="6261149111900787302">"<xliff:g id="FINGERPRINT">%s</xliff:g> wasn\'t working well and was deleted to improve performance"</string> - <string name="fingerprint_dangling_notification_msg_2" msgid="7688302770424064884">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> and <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> weren\'t working well and were deleted to improve performance"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> + <skip /> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> + <skip /> <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> wasn\'t working well and was deleted. Set it up again to unlock your phone with fingerprint."</string> <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> and <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> weren\'t working well and were deleted. Set them up again to unlock your phone with your fingerprint."</string> <string name="face_dangling_notification_title" msgid="947852541060975473">"Set up Face Unlock again"</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index bfcc4be89814..12fd027cdf2d 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Voice Assist"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Lockdown"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"New notification"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Physical keyboard"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Security"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Open Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"How it works"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pending…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Set up Fingerprint Unlock again"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> wasn\'t working well and was deleted. Set it up again to unlock your phone with your fingerprint."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> and <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> weren\'t working well and were deleted. Set them up again to unlock your phone with your fingerprint."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Set up Face Unlock again"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Your face model wasn\'t working well and was deleted. Set it up again to unlock your phone with your face."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Set up"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Not now"</string> </resources> diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index 80007323188c..129310eec160 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Voice Assist"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Lockdown"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"New notification"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Physical keyboard"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Security"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Open Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"How it works"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pending…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Set up Fingerprint Unlock again"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> wasn\'t working well and was deleted. Set it up again to unlock your phone with your fingerprint."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> and <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> weren\'t working well and were deleted. Set them up again to unlock your phone with your fingerprint."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Set up Face Unlock again"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Your face model wasn\'t working well and was deleted. Set it up again to unlock your phone with your face."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Set up"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Not now"</string> </resources> diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml index 0fe2cccd8d58..e08f93466a0e 100644 --- a/core/res/res/values-en-rXC/strings.xml +++ b/core/res/res/values-en-rXC/strings.xml @@ -283,6 +283,7 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Voice Assist"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Lockdown"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <string name="notification_compact_heads_up_reply" msgid="2425293958371284340">"Reply"</string> <string name="notification_hidden_text" msgid="2835519769868187223">"New notification"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Physical keyboard"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Security"</string> @@ -2414,8 +2415,10 @@ <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"How it works"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pending..."</string> <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Set up Fingerprint Unlock again"</string> - <string name="fingerprint_dangling_notification_msg_1" msgid="6261149111900787302">"<xliff:g id="FINGERPRINT">%s</xliff:g> wasn\'t working well and was deleted to improve performance"</string> - <string name="fingerprint_dangling_notification_msg_2" msgid="7688302770424064884">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> and <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> weren\'t working well and were deleted to improve performance"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> + <skip /> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> + <skip /> <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> wasn\'t working well and was deleted. Set it up again to unlock your phone with fingerprint."</string> <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> and <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> weren\'t working well and were deleted. Set them up again to unlock your phone with your fingerprint."</string> <string name="face_dangling_notification_title" msgid="947852541060975473">"Set up Face Unlock again"</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 8717640a6910..30a0457201b4 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Asistente voz"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Bloqueo"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Notificación nueva"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Teclado físico"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Seguridad"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Abrir Mensajes"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Cómo funciona"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pendiente…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Vuelve a configurar el Desbloqueo con huellas dactilares"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Se borró <xliff:g id="FINGERPRINT">%s</xliff:g> porque no funcionaba correctamente. Vuelve a configurarla para desbloquear el teléfono con la huella dactilar."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Se borraron <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> y <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> porque no funcionaban correctamente. Vuelve a configurarlas para desbloquear el teléfono con la huella dactilar."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Vuelve a configurar el Desbloqueo facial"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Se borró tu modelo de rostro porque no funcionaba correctamente. Vuelve a configurarlo para desbloquear el teléfono con el rostro."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configurar"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ahora no"</string> </resources> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 6549da21376f..5079fdf415f9 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Asistente voz"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Bloqueo de seguridad"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"> 999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Notificación nueva"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Teclado físico"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Seguridad"</string> @@ -1402,7 +1404,7 @@ <string name="usb_unsupported_audio_accessory_title" msgid="2335775548086533065">"Se ha detectado un accesorio de audio analógico"</string> <string name="usb_unsupported_audio_accessory_message" msgid="1300168007129796621">"El dispositivo adjunto no es compatible con este teléfono. Toca para obtener más información."</string> <string name="adb_active_notification_title" msgid="408390247354560331">"Depuración por USB activa"</string> - <string name="adb_active_notification_message" msgid="5617264033476778211">"Toca para desactivar la depuración USB"</string> + <string name="adb_active_notification_message" msgid="5617264033476778211">"Toca para desactivar la depuración por USB"</string> <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Seleccionar para inhabilitar la depuración por USB"</string> <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Depuración inalámbrica conectada"</string> <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Toca para desactivar la depuración inalámbrica"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Abre Mensajes"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Cómo funciona"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pendiente..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Configura Desbloqueo con huella digital de nuevo"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> no funcionaba correctamente y se ha eliminado. Configúrala de nuevo para desbloquear el teléfono con la huella digital."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> y <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> no funcionaban correctamente y se han eliminado. Configúralas de nuevo para desbloquear el teléfono con la huella digital."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Configura Desbloqueo facial de nuevo"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Tu modelo facial no funcionaba correctamente y se ha eliminado. Configúralo de nuevo para desbloquear el teléfono con la cara."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configurar"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ahora no"</string> </resources> diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml index 92f89e3ccb99..16b0ea25b158 100644 --- a/core/res/res/values-et/strings.xml +++ b/core/res/res/values-et/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Häälabi"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Lukusta"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Uus märguanne"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Füüsiline klaviatuur"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Turvalisus"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Ava rakendus Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Tööpõhimõtted"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Ootel …"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Seadistage sõrmejäljega avamine uuesti"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ei töötanud hästi ja kustutati. Telefoni sõrmejäljega avamiseks seadistage see uuesti."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> ja <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ei töötanud hästi ning kustutati. Telefoni sõrmejäljega avamiseks seadistage need uuesti."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Seadistage näoga avamine uuesti"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Teie näomudel ei töötanud hästi ja kustutati. Telefoni näoga avamiseks seadistage see uuesti."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Seadista"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Mitte praegu"</string> </resources> diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml index 2d4130e23fc0..4fb4726dce87 100644 --- a/core/res/res/values-eu/strings.xml +++ b/core/res/res/values-eu/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Ahots-laguntza"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Blokeatu"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Jakinarazpen berria"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Teklatu fisikoa"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Segurtasuna"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Ireki Mezuak"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Nola funtzionatzen du?"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Zain…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Konfiguratu berriro hatz-marka bidez desblokeatzeko eginbidea"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ezabatu egin da, ez zuelako ondo funtzionatzen. Telefonoa hatz-markarekin desblokeatzeko, konfigura ezazu berriro."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> eta <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ezabatu egin dira, ez zutelako ondo funtzionatzen. Telefonoa hatz-markarekin desblokeatzeko, konfigura itzazu berriro."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Konfiguratu berriro aurpegi bidez desblokeatzeko eginbidea"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Aurpegi-eredua ezabatu egin da, ez zuelako ondo funtzionatzen. Telefonoa aurpegiarekin desblokeatzeko, konfigura ezazu berriro."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Konfiguratu"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Orain ez"</string> </resources> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index 07b267471157..7272bcfcf8f3 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"دستیار صوتی"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"قفل همه"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"۹۹۹+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"اعلان جدید"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"صفحهکلید فیزیکی"</string> <string name="notification_channel_security" msgid="8516754650348238057">"امنیت"</string> @@ -666,7 +668,7 @@ </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"اثر انگشت تشخیص داده نشد"</string> <string name="fingerprint_udfps_error_not_match" msgid="8236930793223158856">"اثر انگشت تشخیص داده نشد"</string> - <string name="fingerprint_dialog_use_fingerprint_instead" msgid="5590293588784953188">"چهره شناسایی نشد. درعوض از اثر انگشت استفاده کنید."</string> + <string name="fingerprint_dialog_use_fingerprint_instead" msgid="5590293588784953188">"چهره شناسایی نشد، از اثر انگشت استفاده کنید."</string> <string name="fingerprint_authenticated" msgid="2024862866860283100">"اثر انگشت اصالتسنجی شد"</string> <string name="face_authenticated_no_confirmation_required" msgid="8867889115112348167">"چهره اصالتسنجی شد"</string> <string name="face_authenticated_confirmation_required" msgid="6872632732508013755">"چهره اصالتسنجی شد، لطفاً تأیید را فشار دهید"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"باز کردن «پیامها»"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"روش کار"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"درحال تعلیق…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"راهاندازی مجدد «قفلگشایی با اثر انگشت»"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> خوب کار نمیکرد و حذف شد. برای باز کردن قفل تلفن با اثر انگشت، آن را دوباره راهاندازی کنید."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> و <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> خوب کار نمیکرد و حذف شد. برای باز کردن قفل تلفن با اثر انگشت، آنها را دوباره راهاندازی کنید."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"راهاندازی مجدد «قفلگشایی با چهره»"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"مدل چهره شما خوب کار نمیکرد و حذف شد. برای باز کردن قفل تلفن با چهره، دوباره آن را راهاندازی کنید."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"راهاندازی"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"حالا نه"</string> </resources> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index e802443e5acb..7062a8955acb 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Ääniapuri"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Lukitse"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Uusi ilmoitus"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fyysinen näppäimistö"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Turvallisuus"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Avaa Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Näin se toimii"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Odottaa…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Ota sormenjälkiavaus uudelleen käyttöön"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ei toiminut kunnolla, ja se poistettiin. Ota se uudelleen käyttöön, jotta voit avata puhelimen lukituksen sormenjäljellä."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> ja <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> eivät toimineet kunnolla, ja ne poistettiin. Ota ne uudelleen käyttöön, jotta voit avata puhelimen lukituksen sormenjäljellä."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Ota kasvojentunnistusavaus uudelleen käyttöön"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Kasvomallisi ei toiminut kunnolla, ja se poistettiin. Ota se uudelleen käyttöön, jotta voit avata puhelimen lukituksen kasvoilla."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Ota käyttöön"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ei nyt"</string> </resources> diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index bf70c3cd4e97..bc61dead4cdb 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Assist. vocale"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Verrouillage"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">">999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nouvelle notification"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Clavier physique"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Sécurité"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Ouvrir Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Fonctionnement"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"En attente…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Configurer le Déverrouillage par empreinte digitale à nouveau"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ne fonctionnait pas bien et a été supprimée. Configurez-le à nouveau pour déverrouiller votre téléphone avec l\'empreinte digitale."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> et <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ne fonctionnaient pas bien et ont été supprimées. Configurez-les à nouveau pour déverrouiller votre téléphone avec votre empreinte digitale."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Configurer le Déverrouillage par reconnaissance faciale à nouveau"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Votre modèle facial ne fonctionnait pas bien et a été supprimé. Configurez-le à nouveau pour déverrouiller votre téléphone avec votre visage."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configurer"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Plus tard"</string> </resources> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 57272245224f..69d42194a95e 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Assistance vocale"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Verrouiller"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">">999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nouvelle notification"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Clavier physique"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Sécurité"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Ouvrir Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Fonctionnement"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"En attente…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Reconfigurer le déverrouillage par empreinte digitale"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ne fonctionnait pas correctement et a été supprimée. Configurez-la à nouveau pour déverrouiller votre téléphone à l\'aide votre empreinte digitale."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> et <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ne fonctionnaient pas correctement et ont été supprimées. Configurez-les à nouveau pour déverrouiller votre téléphone à l\'aide de votre empreinte digitale."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Reconfigurer le déverrouillage par reconnaissance faciale"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Votre empreinte faciale ne fonctionnait pas correctement et a été supprimée. Configurez-la à nouveau pour déverrouiller votre téléphone à l\'aide votre visage."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configuration"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Pas maintenant"</string> </resources> diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml index 663ef9ace52d..dfa4fe3d75b2 100644 --- a/core/res/res/values-gl/strings.xml +++ b/core/res/res/values-gl/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Asistente voz"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Bloquear"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">">999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Notificación nova"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Teclado físico"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Seguranza"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Abrir Mensaxes"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Como funciona?"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pendente..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Configura de novo o desbloqueo dactilar"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"A <xliff:g id="FINGERPRINT">%s</xliff:g> non funcionaba correctamente, polo que se eliminou. Configúraa de novo para desbloquear o teléfono usando a impresión dixital."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"As impresións dixitais <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> e <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> non funcionaban correctamente, polo que se eliminaron. Configúraas de novo para desbloquear o teléfono usando a impresión dixital."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Configura de novo o desbloqueo facial"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"O teu modelo facial non funcionaba correctamente, polo que se eliminou. Configúrao de novo para desbloquear o teléfono usando a cara."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configurar"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Agora non"</string> </resources> diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml index dc4253750380..8a84d25ee961 100644 --- a/core/res/res/values-gu/strings.xml +++ b/core/res/res/values-gu/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"વૉઇસ સહાય"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"લૉકડાઉન"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"નવું નોટિફિકેશન"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"ભૌતિક કીબોર્ડ"</string> <string name="notification_channel_security" msgid="8516754650348238057">"સુરક્ષા"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages ખોલો"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"તેની કામ કરવાની રીત"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"બાકી..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"ફિંગરપ્રિન્ટ અનલૉક સુવિધાનું ફરી સેટઅપ કરો"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> બરાબર કામ કરતી ન હતી અને તેને ડિલીટ કરવામાં આવી હતી. તમારા ફોનને ફિંગરપ્રિન્ટ વડે અનલૉક કરવા માટે, તેનું ફરીથી સેટઅપ કરો."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> અને <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> બરાબર કામ કરતી ન હતી અને તેને ડિલીટ કરવામાં આવી હતી. તમારા ફોનને તમારી ફિંગરપ્રિન્ટ વડે અનલૉક કરવા માટે, તેનું ફરીથી સેટઅપ કરો."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"ફેસ અનલૉક સુવિધાનું ફરી સેટઅપ કરો"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"તમારા ચહેરાનું મૉડલ બરાબર કામ કરતું ન હતું અને તેને ડિલીટ કરવામાં આવ્યું હતું. તમારા ફોનને ચહેરા વડે અનલૉક કરવા માટે, તેનું ફરીથી સેટઅપ કરો."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"સેટઅપ કરો"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"હમણાં નહીં"</string> </resources> diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index 25f6ca1cc6f6..e43491294ce2 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"आवाज़ से डिवाइस का इस्तेमाल"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"लॉकडाउन"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"नई सूचना"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"सामान्य कीबोर्ड"</string> <string name="notification_channel_security" msgid="8516754650348238057">"सुरक्षा"</string> @@ -666,7 +668,7 @@ </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"फ़िंगरप्रिंट की पहचान नहीं हो पाई"</string> <string name="fingerprint_udfps_error_not_match" msgid="8236930793223158856">"फ़िंगरप्रिंट की पहचान नहीं हो पाई"</string> - <string name="fingerprint_dialog_use_fingerprint_instead" msgid="5590293588784953188">"चेहरा नहीं पहचाना गया. फ़िंगरप्रिंट इस्तेमाल करें."</string> + <string name="fingerprint_dialog_use_fingerprint_instead" msgid="5590293588784953188">"चेहरा की पहचान नहीं हो पाई. फ़िंगरप्रिंट का इस्तेमाल करें."</string> <string name="fingerprint_authenticated" msgid="2024862866860283100">"फ़िंगरप्रिंट की पुष्टि हो गई"</string> <string name="face_authenticated_no_confirmation_required" msgid="8867889115112348167">"चेहरे की पहचान की गई"</string> <string name="face_authenticated_confirmation_required" msgid="6872632732508013755">"चेहरे की पहचान की गई, कृपया पुष्टि बटन दबाएं"</string> @@ -2394,7 +2396,7 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"कीबोर्ड का लेआउट <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… पर सेट कर दिया गया है. इसे बदलने के लिए टैप करें."</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"फ़िज़िकल कीबोर्ड कॉन्फ़िगर किए गए"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"कीबोर्ड देखने के लिए टैप करें"</string> - <string name="profile_label_private" msgid="6463418670715290696">"निजी"</string> + <string name="profile_label_private" msgid="6463418670715290696">"प्राइवेट"</string> <string name="profile_label_clone" msgid="769106052210954285">"क्लोन"</string> <string name="profile_label_work" msgid="3495359133038584618">"ऑफ़िस"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"ऑफ़िस 2"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages ऐप्लिकेशन खोलें"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"यह सेटिंग कैसे काम करती है"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"प्रोसेस जारी है..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"फ़िंगरप्रिंट अनलॉक की सुविधा दोबारा सेट अप करें"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"अच्छे से काम न करने की वजह से <xliff:g id="FINGERPRINT">%s</xliff:g> को मिटा दिया गया. फ़िंगरप्रिंट की मदद से फ़ोन अनलॉक करने के लिए, फ़िंगरप्रिंट अनलॉक की सुविधा को दोबारा सेट अप करें."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"अच्छे से काम न करने की वजह से, <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> और <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> को मिटा दिया गया. फ़िंगरप्रिंट की मदद से फ़ोन अनलॉक करने के लिए, फ़िंगरप्रिंट अनलॉक की सुविधा दोबारा सेट अप करें."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"फ़ेस अनलॉक की सुविधा को दोबारा सेट अप करें"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"अच्छे से काम न करने की वजह से, चेहरे का मॉडल मिटा दिया गया. फ़ेस अनलॉक की सुविधा की मदद से फ़ोन अनलॉक करने के लिए, इस सुविधा को दोबारा सेट अप करें."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"सेट अप करें"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"अभी नहीं"</string> </resources> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index 117d4e5632c6..0bd8be3b4472 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Glasovna pomoć"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Zaključaj"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nova obavijest"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fizička tipkovnica"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Sigurnost"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Otvori Poruke"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Kako to funkcionira"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Na čekanju..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Ponovno postavite otključavanje otiskom prsta"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Otisak prsta <xliff:g id="FINGERPRINT">%s</xliff:g> nije dobro funkcionirao i izbrisan je. Ponovno ga postavite da biste otključali telefon otiskom prsta."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Otisci prstiju <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> i <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> nisu dobro funkcionirali i izbrisani su. Ponovno ih postavite da biste otključali telefon otiskom prsta."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Ponovno postavite otključavanje licem"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Model vašeg lica nije dobro funkcionirao i izbrisan je. Ponovno ga postavite da biste otključali telefon licem."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Postavi"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ne sad"</string> </resources> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index de8fa848edd6..aeebbdc22aac 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Hangsegéd"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Zárolás"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Új értesítés"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fizikai billentyűzet"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Biztonság"</string> @@ -1997,7 +1999,7 @@ <string name="work_mode_emergency_call_button" msgid="6818855962881612322">"Vészhelyzet"</string> <string name="set_up_screen_lock_title" msgid="8346083801616474030">"Állítson be képernyőzárat"</string> <string name="set_up_screen_lock_action_label" msgid="2687634803649209367">"Képernyőzár beállítása"</string> - <string name="private_space_set_up_screen_lock_message" msgid="1109956797005149814">"A magánterület használatához állítson be képernyőzárat"</string> + <string name="private_space_set_up_screen_lock_message" msgid="1109956797005149814">"A privát terület használatához állítson be képernyőzárat"</string> <string name="app_blocked_title" msgid="7353262160455028160">"Az alkalmazás nem hozzáférhető"</string> <string name="app_blocked_message" msgid="542972921087873023">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> jelenleg nem hozzáférhető."</string> <string name="app_streaming_blocked_title" msgid="6090945835898766139">"A(z) <xliff:g id="ACTIVITY">%1$s</xliff:g> nem áll rendelkezése"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"A Messages megnyitása"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Hogyan működik?"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Függőben…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"A Feloldás ujjlenyomattal funkció újbóli beállítása"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"A(z) <xliff:g id="FINGERPRINT">%s</xliff:g> nem működött megfelelően, ezért törölve lett. Állítsa be újra, hogy feloldhassa a telefonját az ujjlenyomata segítségével."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"A(z) <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> és a(z) <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> nem működtek megfelelően, ezért törölve lettek. Állítsa be őket újra, hogy feloldhassa a telefonját az ujjlenyomata segítségével."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Állítsa be újra az Arcalapú feloldást"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Az arcmodellje nem működött megfelelően, ezért törölve lett. Állítsa be újra, hogy feloldhassa a telefonját az arca segítségével."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Beállítás"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Most nem"</string> </resources> diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml index d37993442bcf..a0e0bd218a18 100644 --- a/core/res/res/values-hy/strings.xml +++ b/core/res/res/values-hy/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Ձայնային օգնութ"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Արգելափակում"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Նոր ծանուցում"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Ֆիզիկական ստեղնաշար"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Անվտանգություն"</string> @@ -2394,7 +2396,7 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Ստեղնաշարի համար կարգավորված են <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> դասավորությունները։ Հպեք փոխելու համար։"</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Ֆիզիկական ստեղնաշարերը կարգավորված են"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Հպեք՝ ստեղնաշարերը դիտելու համար"</string> - <string name="profile_label_private" msgid="6463418670715290696">"Անձնական"</string> + <string name="profile_label_private" msgid="6463418670715290696">"Մասնավոր"</string> <string name="profile_label_clone" msgid="769106052210954285">"Կլոն"</string> <string name="profile_label_work" msgid="3495359133038584618">"Աշխատանքային"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"Աշխատանքային 2"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Բացել Messages-ը"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Ինչպես է դա աշխատում"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Առկախ է…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Նորից կարգավորեք մատնահետքով ապակողպումը"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"«<xliff:g id="FINGERPRINT">%s</xliff:g>» մատնահետքը հեռացվել է, քանի որ լավ չէր աշխատում։ Նորից կարգավորեք այն՝ ձեր հեռախոսը մատնահետքով ապակողպելու համար։"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"«<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>» և «<xliff:g id="FINGERPRINT_1">%2$s</xliff:g>» մատնահետքերը հեռացվել են, քանի որ լավ չէին աշխատում։ Նորից կարգավորեք դրանք՝ ձեր հեռախոսը մատնահետքով ապակողպելու համար։"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Նորից կարգավորեք դեմքով ապակողպումը"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Ձեր դեմքի նմուշը հեռացվել է, քանի որ լավ չէր աշխատում։ Նորից կարգավորեք այն՝ ձեր հեռախոսը դեմքով ապակողպելու համար։"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Կարգավորել"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ոչ հիմա"</string> </resources> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index e6634d23fd62..fb6180b0d126 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Bantuan Suara"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Kunci total"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Notifikasi baru"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Keyboard fisik"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Keamanan"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Buka Message"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Cara kerjanya"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Tertunda..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Siapkan Buka dengan Sidik Jari lagi"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> tidak berfungsi dengan baik dan telah dihapus. Siapkan lagi untuk membuka kunci ponsel Anda dengan sidik jari."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> dan <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> tidak berfungsi dengan baik dan telah dihapus. Siapkan lagi untuk membuka kunci ponsel Anda dengan sidik jari."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Siapkan Buka dengan Wajah lagi"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Model wajah Anda tidak berfungsi dengan baik dan telah dihapus. Siapkan lagi untuk membuka kunci ponsel Anda dengan wajah."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Penyiapan"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Lain kali"</string> </resources> diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml index f77a18a3911b..3f96dae37c8d 100644 --- a/core/res/res/values-is/strings.xml +++ b/core/res/res/values-is/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Raddaðstoð"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Læsing"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Ný tilkynning"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Vélbúnaðarlyklaborð"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Öryggi"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Opna Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Svona virkar þetta"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Í bið…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Setja upp fingrafarskenni aftur"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> virkaði illa og var eytt. Settu það upp aftur til að taka símann úr lás með fingrafari."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> og <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> virkuðu illa og var eytt. Settu þau upp aftur til að taka símann úr lás með fingrafarinu þínu."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Setja upp andlitskenni aftur"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Andlitslíkanið þitt virkaði illa og var eytt. Settu það upp aftur til að taka símann úr lás með andlitinu."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Setja upp"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ekki núna"</string> </resources> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 95ccad54d63f..f22b6531c66e 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Voice Assist"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Blocco"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nuova notifica"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Tastiera fisica"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Sicurezza"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Apri Messaggi"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Come funziona"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"In attesa…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Riconfigura lo Sblocco con l\'Impronta"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> non funzionava bene ed è stata eliminata. Riconfigurala per sbloccare lo smartphone con l\'impronta."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> e <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> non funzionavano bene e sono state eliminate. Riconfigurale per sbloccare lo smartphone con l\'impronta."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Riconfigura lo Sblocco con il Volto"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Il tuo modello del volto non funzionava bene ed è stato eliminato. Riconfiguralo per sbloccare lo smartphone con il volto."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configura"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Non ora"</string> </resources> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index fee437af96cf..3a924e1916c0 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"האסיסטנט"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"נעילה"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"התראה חדשה"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"מקלדת פיזית"</string> <string name="notification_channel_security" msgid="8516754650348238057">"אבטחה"</string> @@ -2395,7 +2397,7 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"פריסת המקלדת מוגדרת ל<xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… אפשר להקיש כדי לשנות את ההגדרה הזו."</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"הוגדרו מקלדות פיזיות"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"יש להקיש כדי להציג את המקלדות"</string> - <string name="profile_label_private" msgid="6463418670715290696">"פרטי"</string> + <string name="profile_label_private" msgid="6463418670715290696">"פרופיל פרטי"</string> <string name="profile_label_clone" msgid="769106052210954285">"שכפול"</string> <string name="profile_label_work" msgid="3495359133038584618">"פרופיל עבודה"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"פרופיל עבודה 2"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"לפתיחת Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"איך זה עובד"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"בהמתנה..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"הגדרה חוזרת של \'ביטול הנעילה בטביעת אצבע\'"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> לא פעלה היטב ולכן היא נמחקה. עליך להגדיר אותה שוב כדי שתהיה לך אפשרות לבטל את הנעילה של הטלפון באמצעות טביעת אצבע."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> ו<xliff:g id="FINGERPRINT_1">%2$s</xliff:g> לא פעלו היטב ולכן הן נמחקו. עליך להגדיר אותן שוב כדי שתהיה לך אפשרות לבטל את הנעילה של הטלפון באמצעות טביעת אצבע."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"הגדרה חוזרת של \'פתיחה ע\"י זיהוי הפנים\'"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"התבנית לזיהוי הפנים לא פעלה היטב ולכן היא נמחקה. עליך להגדיר אותה שוב כדי שתהיה לך אפשרות לבטל את הנעילה של הטלפון באמצעות זיהוי הפנים."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"הגדרה"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"לא עכשיו"</string> </resources> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index 726db1c4ea89..e31d79574841 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"音声アシスト"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"ロックダウン"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"新しい通知"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"物理キーボード"</string> <string name="notification_channel_security" msgid="8516754650348238057">"セキュリティ"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"メッセージ アプリを開く"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"仕組み"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"保留中..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"指紋認証をもう一度設定してください"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> が正常に機能せず、削除されました。指紋認証でスマートフォンのロックを解除するには、設定し直してください。"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> と <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> が正常に機能せず、削除されました。指紋認証でスマートフォンのロックを解除するには、設定し直してください。"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"顔認証をもう一度設定してください"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"顔モデルが正常に機能せず、削除されました。顔認証でスマートフォンのロックを解除するには、設定し直してください。"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"設定"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"後で"</string> </resources> diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml index bdf6c489326b..a28471995d96 100644 --- a/core/res/res/values-ka/strings.xml +++ b/core/res/res/values-ka/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"ხმოვანი ასისტ."</string> <string name="global_action_lockdown" msgid="2475471405907902963">"დაბლოკვა"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"ახალი შეტყობინება"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"ფიზიკური კლავიატურა"</string> <string name="notification_channel_security" msgid="8516754650348238057">"უსაფრთხოება"</string> @@ -2394,7 +2396,7 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"დაყენდა კლავიატურის განლაგება: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… შეეხეთ შესაცვლელად."</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ფიზიკური კლავიატურები კონფიგურირებულია"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"შეეხეთ კლავიატურების სანახავად"</string> - <string name="profile_label_private" msgid="6463418670715290696">"პირადი"</string> + <string name="profile_label_private" msgid="6463418670715290696">"კერძო"</string> <string name="profile_label_clone" msgid="769106052210954285">"კლონი"</string> <string name="profile_label_work" msgid="3495359133038584618">"სამსახური"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"სამსახური 2"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages-ის გახსნა"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"მუშაობის პრინციპი"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"მომლოდინე..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"ანაბეჭდით განბლოკვის ხელახლა დაყენება"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> კარგად არ მუშაობდა და წაიშალა. თავიდან დააყენეთ, რათა თქვენი ტელეფონი თითის ანაბეჭდის საშუალებით განბლოკოთ."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> და <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> კარგად არ მუშაობდნენ და წაიშალა. თავიდან დააყენეთ, რათა თქვენი ტელეფონი თითის ანაბეჭდის საშუალებით განბლოკოთ."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"დააყენეთ სახით განბლოკვა ხელახლა"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"თქვენი სახის მოდელი კარგად არ მუშაობდა და წაიშალა. თავიდან დააყენეთ, რათა თქვენი ტელეფონი სახის საშუალებით განბლოკოთ."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"დაყენება"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ახლა არა"</string> </resources> diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml index 55cf92bb3280..e407c09b5a4e 100644 --- a/core/res/res/values-kk/strings.xml +++ b/core/res/res/values-kk/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Дауыс көмекшісі"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Құлыптау"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Жаңа хабарландыру"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Физикалық пернетақта"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Қауіпсіздік"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages қолданбасын ашу"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Бұл қалай орындалады?"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Дайын емес…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Саусақ ізімен ашу функциясын қайта реттеу"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> саусақ ізі дұрыс істемегендіктен жойылды. Телефонды саусақ ізімен ашу үшін оны қайта реттеңіз."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Саусақ іздері (<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> және <xliff:g id="FINGERPRINT_1">%2$s</xliff:g>) дұрыс істемегендіктен жойылды. Телефонды саусақ ізімен ашу үшін оларды қайта реттеңіз."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Бет тану функциясын қайта реттеу"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Бет үлгісі дұрыс істемегендіктен жойылды. Телефонды бетпен ашу үшін оны қайта реттеңіз."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Реттеу"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Қазір емес"</string> </resources> diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml index 6a826db47006..4fe436890a22 100644 --- a/core/res/res/values-km/strings.xml +++ b/core/res/res/values-km/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"ជំនួយសម្លេង"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"ការចាក់សោ"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"ការជូនដំណឹងថ្មី"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"ក្ដារចុចរូបវន្ត"</string> <string name="notification_channel_security" msgid="8516754650348238057">"សុវត្ថិភាព"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"បើកកម្មវិធី Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"របៀបដែលវាដំណើរការ"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"កំពុងរង់ចាំ..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"រៀបចំការដោះសោដោយស្កេនស្នាមម្រាមដៃម្ដងទៀត"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> មិនដំណើរការល្អទេ ហើយត្រូវបានលុបចេញហើយ។ រៀបចំវាម្ដងទៀត ដើម្បីដោះសោទូរសព្ទរបស់អ្នកដោយប្រើស្នាមម្រាមដៃ។"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> និង <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> មិនដំណើរការល្អទេ ហើយត្រូវបានលុបចេញហើយ។ រៀបចំវាម្ដងទៀត ដើម្បីដោះសោទូរសព្ទរបស់អ្នកដោយប្រើស្នាមម្រាមដៃ។"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"រៀបចំការដោះសោដោយស្កេនមុខម្ដងទៀត"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"គំរូមុខរបស់អ្នកមិនដំណើរការល្អទេ ហើយត្រូវបានលុបចេញហើយ។ រៀបចំវាម្ដងទៀត ដើម្បីដោះសោទូរសព្ទរបស់អ្នកដោយប្រើមុខ។"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"រៀបចំ"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"កុំទាន់"</string> </resources> diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml index 40d513893dda..3223c4089d68 100644 --- a/core/res/res/values-kn/strings.xml +++ b/core/res/res/values-kn/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"ಧ್ವನಿ ಸಹಾಯಕ"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"ಲಾಕ್ಡೌನ್"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"ಹೊಸ ನೋಟಿಫಿಕೇಶನ್"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್"</string> <string name="notification_channel_security" msgid="8516754650348238057">"ಭದ್ರತೆ"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages ಅನ್ನು ತೆರೆಯಿರಿ"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"ಬಾಕಿ ಉಳಿದಿದೆ..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ಲಾಕ್ ಅನ್ನು ಮತ್ತೊಮ್ಮೆ ಸೆಟಪ್ ಮಾಡಿ"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ ಹಾಗೂ ಅದನ್ನು ಅಳಿಸಲಾಗಿದೆ. ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಮೂಲಕ ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಅದನ್ನು ಪುನಃ ಸೆಟಪ್ ಮಾಡಿ."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> ಮತ್ತು <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ ಹಾಗೂ ಅವುಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ. ನಿಮ್ಮ ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಮೂಲಕ ನಿಮ್ಮ ಫೋನ್ ಅನ್ಲಾಕ್ ಮಾಡಲು ಅವುಗಳನ್ನು ಪುನಃ ಸೆಟಪ್ ಮಾಡಿ."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"ಫೇಸ್ ಅನ್ಲಾಕ್ ಅನ್ನು ಮತ್ತೊಮ್ಮೆ ಸೆಟಪ್ ಮಾಡಿ"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"ನಿಮ್ಮ ಫೇಸ್ ಮಾಡೆಲ್ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ ಹಾಗೂ ಅದನ್ನು ಅಳಿಸಲಾಗಿದೆ. ಫೇಸ್ ಮೂಲಕ ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಅದನ್ನು ಪುನಃ ಸೆಟಪ್ ಮಾಡಿ."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"ಸೆಟಪ್ ಮಾಡಿ"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ಈಗ ಬೇಡ"</string> </resources> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index dd476281eec9..7a8d324f0950 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"음성 지원"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"잠금"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"새 알림"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"물리적 키보드"</string> <string name="notification_channel_security" msgid="8516754650348238057">"보안"</string> @@ -1388,7 +1390,7 @@ <string name="no_permissions" msgid="5729199278862516390">"권한 필요 없음"</string> <string name="perm_costs_money" msgid="749054595022779685">"비용이 부과될 수 있습니다."</string> <string name="dlg_ok" msgid="5103447663504839312">"확인"</string> - <string name="usb_charging_notification_title" msgid="1674124518282666955">"이 기기를 USB로 충전 중."</string> + <string name="usb_charging_notification_title" msgid="1674124518282666955">"이 기기를 USB로 충전 중"</string> <string name="usb_supplying_notification_title" msgid="5378546632408101811">"USB를 통해 연결된 기기 충전"</string> <string name="usb_mtp_notification_title" msgid="1065989144124499810">"USB 파일 전송 사용 설정됨"</string> <string name="usb_ptp_notification_title" msgid="5043437571863443281">"USB를 통해 PTP 사용 설정됨"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"메시지 열기"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"작동 방식"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"대기 중…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"지문 잠금 해제 다시 설정"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g>이(가) 제대로 작동하지 않아 삭제되었습니다. 지문으로 휴대전화를 잠금 해제하려면 다시 설정하세요."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> 및 <xliff:g id="FINGERPRINT_1">%2$s</xliff:g>이(가) 제대로 작동하지 않아 삭제되었습니다. 지문으로 휴대전화를 잠금 해제하려면 다시 설정하세요."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"얼굴 인식 잠금 해제 다시 설정"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"얼굴 모델이 제대로 작동하지 않아 삭제되었습니다. 얼굴로 휴대전화를 잠금 해제하려면 다시 설정하세요."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"설정"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"나중에"</string> </resources> diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml index bb29c36a0410..8a233a3108a4 100644 --- a/core/res/res/values-ky/strings.xml +++ b/core/res/res/values-ky/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Үн жардамчысы"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Бекем кулпулоо"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Жаңы эскертме"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Аппараттык баскычтоп"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Коопсуздук"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Жазышуулар колдонмосун ачуу"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Ал кантип иштейт"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Кезекте турат..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Манжа изи менен ачуу функциясын кайра тууралаңыз"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ойдогудай иштебегендиктен, жок кылынды. Телефондо Манжа изи менен ачуу функциясын колдонуу үчүн аны кайра тууралаңыз."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> жана <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ойдогудай иштебегендиктен, жок кылынды. Телефонду манжа изи менен ачуу үчүн аларды кайра тууралаңыз."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Жүзүнөн таанып ачуу функциясын кайрадан тууралаңыз"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Жүзүңүздүн үлгүсү ойдогудай иштебегендиктен, жок кылынды. Телефондо Жүзүнөн таанып ачуу функциясын колдонуу үчүн аны кайра тууралаңыз."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Тууралоо"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Азыр эмес"</string> </resources> diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml index 5fa0fc135612..3e06b3da8ddc 100644 --- a/core/res/res/values-lo/strings.xml +++ b/core/res/res/values-lo/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"ຊ່ວຍເຫຼືອທາງສຽງ"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"ລັອກໄວ້"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"ການແຈ້ງເຕືອນໃໝ່"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"ແປ້ນພິມພາຍນອກ"</string> <string name="notification_channel_security" msgid="8516754650348238057">"ຄວາມປອດໄພ"</string> @@ -2394,7 +2396,7 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"ຕັ້ງໂຄງຮ່າງແປ້ນພິມເປັນ <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… ແຕະເພື່ອປ່ຽນແປງ."</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"ຕັ້ງຄ່າແປ້ນພິມແທ້ແລ້ວ"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"ແຕະເພື່ອເບິ່ງແປ້ນພິມ"</string> - <string name="profile_label_private" msgid="6463418670715290696">"ສ່ວນຕົວ"</string> + <string name="profile_label_private" msgid="6463418670715290696">"ສ່ວນບຸກຄົນ"</string> <string name="profile_label_clone" msgid="769106052210954285">"ໂຄລນ"</string> <string name="profile_label_work" msgid="3495359133038584618">"ວຽກ"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"ວຽກ 2"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"ເປີດ Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"ມັນເຮັດວຽກແນວໃດ"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"ລໍຖ້າດຳເນີນການ..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"ຕັ້ງຄ່າການປົດລັອກດ້ວຍລາຍນິ້ວມືຄືນໃໝ່"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ເຮັດວຽກໄດ້ບໍ່ດີ ແລະ ຖືກລຶບອອກແລ້ວ. ໃຫ້ຕັ້ງຄ່າມັນຄືນໃໝ່ເພື່ອປົດລັອກໂທລະສັບຂອງທ່ານດ້ວຍລາຍນິ້ວມື."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> ແລະ <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ເຮັດວຽກໄດ້ບໍ່ດີ ແລະ ຖືກລຶບອອກແລ້ວ. ໃຫ້ຕັ້ງຄ່າພວກມັນຄືນໃໝ່ເພື່ອປົດລັອກໂທລະສັບຂອງທ່ານດ້ວຍລາຍນິ້ວມື."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"ຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າຄືນໃໝ່"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"ຮູບແບບໃບໜ້າຂອງທ່ານເຮັດວຽກໄດ້ບໍ່ດີ ແລະ ຖືກລຶບອອກແລ້ວ. ໃຫ້ຕັ້ງຄ່າມັນຄືນໃໝ່ເພື່ອປົດລັອກໂທລະສັບຂອງທ່ານດ້ວຍໃບໜ້າ."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"ຕັ້ງຄ່າ"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ບໍ່ຟ້າວເທື່ອ"</string> </resources> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index e06c2efe31b8..50572f80e723 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -285,6 +285,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Voice Assist"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Užrakinimas"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Naujas pranešimas"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fizinė klaviatūra"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Sauga"</string> @@ -2415,22 +2417,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Atidaryti programą „Messages“"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Kaip tai veikia"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Laukiama..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Atrakinimo piršto atspaudu nustatymas dar kartą"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> neveikė tinkamai ir buvo ištrintas. Nustatykite jį dar kartą, kad atrakintumėte telefoną piršto atspaudu."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> ir <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> neveikė tinkamai ir buvo ištrinti. Nustatykite juos dar kartą, kad atrakintumėte telefoną piršto atspaudu."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Atrakinimo pagal veidą nustatymas iš naujo"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Jūsų veido modelis neveikė tinkamai ir buvo ištrintas. Nustatykite jį dar kartą, kad atrakintumėte telefoną pagal veidą."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Nustatyti"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ne dabar"</string> </resources> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index d2a6cd9af5a6..8be327da1aeb 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Balss palīgs"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Bloķēšana"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"Pārsniedz"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Jauns paziņojums"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fiziskā tastatūra"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Drošība"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Atvērt lietotni Ziņojumi"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Darbības principi"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Gaida…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Vēlreiz iestatiet autorizāciju ar pirksta nospiedumu"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> nedarbojās pareizi un tika izdzēsts. Iestatiet to atkal, lai varētu atbloķēt tālruni ar pirksta nospiedumu."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> un <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> nedarbojās pareizi un tika izdzēsti. Iestatiet tos atkal, lai varētu atbloķētu tālruni ar pirksta nospiedumu."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Vēlreiz iestatiet autorizāciju pēc sejas"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Jūsu sejas modelis nedarbojās pareizi un tika izdzēsts. Iestatiet to atkal, lai varētu atbloķēt tālruni ar seju."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Iestatīt"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ne tagad"</string> </resources> diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml index 796f9efe1bbc..680ff0a4b1b1 100644 --- a/core/res/res/values-mk/strings.xml +++ b/core/res/res/values-mk/strings.xml @@ -153,7 +153,7 @@ <string name="cfTemplateForwardedTime" msgid="735042369233323609">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> по <xliff:g id="TIME_DELAY">{2}</xliff:g> секунди"</string> <string name="cfTemplateRegistered" msgid="5619930473441550596">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: не е препратено"</string> <string name="cfTemplateRegisteredTime" msgid="5222794399642525045">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: не е проследен"</string> - <string name="scCellularNetworkSecurityTitle" msgid="7752521808690294384">"Безбедност на мобилна мрежа"</string> + <string name="scCellularNetworkSecurityTitle" msgid="7752521808690294384">"Безбедност на мобилната мрежа"</string> <string name="scCellularNetworkSecuritySummary" msgid="7042036754550545005">"Шифрирање, известувања за нешифрирани мрежи"</string> <string name="scIdentifierDisclosureIssueTitle" msgid="2898888825129970328">"Пристапено е до ID на уредот"</string> <string name="scIdentifierDisclosureIssueSummaryNotification" msgid="3699930821270580416">"Во <xliff:g id="DISCLOSURE_TIME">%1$s</xliff:g>, мрежа во близина го сними уникатниот ID (IMSI или IMEI) на вашиот телефон со користење на вашата SIM-картичка на <xliff:g id="DISCLOSURE_NETWORK">%2$s</xliff:g>"</string> @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Гласовна помош"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Заклучување"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Ново известување"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Физичка тастатура"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Безбедност"</string> @@ -2394,9 +2396,9 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Распоредот на тастатурата е поставен на <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Допрете за да промените."</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Физичките тастатури се конфигурирани"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Допрете за да ги видите тастатурите"</string> - <string name="profile_label_private" msgid="6463418670715290696">"Приватен профил"</string> + <string name="profile_label_private" msgid="6463418670715290696">"Приватно"</string> <string name="profile_label_clone" msgid="769106052210954285">"Клониран профил"</string> - <string name="profile_label_work" msgid="3495359133038584618">"Работен профил"</string> + <string name="profile_label_work" msgid="3495359133038584618">"Работно"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"Работен профил 2"</string> <string name="profile_label_work_3" msgid="4834572253956798917">"Работен профил 3"</string> <string name="profile_label_test" msgid="9168641926186071947">"Профил за тестирање"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Отворете ја Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Дознајте како функционира"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Во фаза на чекање…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Поставете „Отклучување со отпечаток“ повторно"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> не функционираше добро, па се избриша. Поставете го повторно за да го отклучувате телефонот со отпечаток."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> и <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> не функционираа добро, па се избришаа. Поставете ги повторно за да го отклучувате телефонот со отпечаток."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Поставете „Отклучување со лик“ повторно"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Вашиот модел на лик не функционираше добро, па се избриша. Поставете го повторно за да го отклучите телефонот со лик."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Поставете"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Не сега"</string> </resources> diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml index a0b4c8d80e96..eca7f28651e8 100644 --- a/core/res/res/values-ml/strings.xml +++ b/core/res/res/values-ml/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"വോയ്സ് സഹായം"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"ലോക്ക്ഡൗൺ"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"പുതിയ അറിയിപ്പ്"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"ഫിസിക്കൽ കീബോഡ്"</string> <string name="notification_channel_security" msgid="8516754650348238057">"സുരക്ഷ"</string> @@ -1904,8 +1906,8 @@ <string name="package_updated_device_owner" msgid="7560272363805506941">"നിങ്ങളുടെ അഡ്മിൻ അപ്ഡേറ്റ് ചെയ്യുന്നത്"</string> <string name="package_deleted_device_owner" msgid="2292335928930293023">"നിങ്ങളുടെ അഡ്മിൻ ഇല്ലാതാക്കുന്നത്"</string> <string name="confirm_battery_saver" msgid="5247976246208245754">"ശരി"</string> - <string name="battery_saver_description_with_learn_more" msgid="5444908404021316250">"\'ബാറ്ററി ലാഭിക്കൽ\' ഡാർക്ക് തീം ഓണാക്കുന്നു, ഒപ്പം പശ്ചാത്തല ആക്റ്റിവിറ്റിയും ചില വിഷ്വൽ ഇഫക്റ്റുകളും ചില ഫീച്ചറുകളും ചില നെറ്റ്വർക്ക് കണക്ഷനുകളും പരിമിതപ്പെടുത്തുകയോ ഓഫാക്കുകയോ ചെയ്യുന്നു."</string> - <string name="battery_saver_description" msgid="8518809702138617167">"ബാറ്ററി ലാഭിക്കൽ ഡാർക്ക് തീം ഓണാക്കുന്നു, പശ്ചാത്തല ആക്റ്റിവിറ്റിയും ചില വിഷ്വൽ ഇഫക്റ്റുകളും ചില ഫീച്ചറുകളും ചില നെറ്റ്വർക്ക് കണക്ഷനുകളും അത് പരിമിതപ്പെടുത്തുകയോ ഓഫാക്കുകയോ ചെയ്യുന്നു."</string> + <string name="battery_saver_description_with_learn_more" msgid="5444908404021316250">"\'ബാറ്ററി സേവർ\' ഡാർക്ക് തീം ഓണാക്കുന്നു, ഒപ്പം പശ്ചാത്തല ആക്റ്റിവിറ്റിയും ചില വിഷ്വൽ ഇഫക്റ്റുകളും ചില ഫീച്ചറുകളും ചില നെറ്റ്വർക്ക് കണക്ഷനുകളും പരിമിതപ്പെടുത്തുകയോ ഓഫാക്കുകയോ ചെയ്യുന്നു."</string> + <string name="battery_saver_description" msgid="8518809702138617167">"ബാറ്ററി സേവർ ഡാർക്ക് തീം ഓണാക്കുന്നു, പശ്ചാത്തല ആക്റ്റിവിറ്റിയും ചില വിഷ്വൽ ഇഫക്റ്റുകളും ചില ഫീച്ചറുകളും ചില നെറ്റ്വർക്ക് കണക്ഷനുകളും അത് പരിമിതപ്പെടുത്തുകയോ ഓഫാക്കുകയോ ചെയ്യുന്നു."</string> <string name="data_saver_description" msgid="4995164271550590517">"ഡാറ്റാ ഉപയോഗം കുറയ്ക്കാൻ സഹായിക്കുന്നതിനായി പശ്ചാത്തലത്തിൽ ഡാറ്റ അയയ്ക്കുകയോ സ്വീകരിക്കുകയോ ചെയ്യുന്നതിൽ നിന്ന് ചില ആപ്പുകളെ ഡാറ്റാ സേവർ തടയുന്നു. നിങ്ങൾ നിലവിൽ ഉപയോഗിക്കുന്ന ഒരു ആപ്പിന് ഡാറ്റ ആക്സസ് ചെയ്യാനാകും, എന്നാൽ വല്ലപ്പോഴും മാത്രമെ സംഭവിക്കുന്നുള്ളു. ഇതിനർത്ഥം, ഉദാഹരണമായി നിങ്ങൾ ടാപ്പ് ചെയ്യുന്നത് വരെ ചിത്രങ്ങൾ പ്രദർശിപ്പിക്കുകയില്ല എന്നാണ്."</string> <string name="data_saver_enable_title" msgid="7080620065745260137">"ഡാറ്റാ സേവർ ഓണാക്കണോ?"</string> <string name="data_saver_enable_button" msgid="4399405762586419726">"ഓണാക്കുക"</string> @@ -2384,7 +2386,7 @@ <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"ഉപകരണത്തിന് ചൂട് കൂടുതലാണ്"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"നിങ്ങളുടെ ഫോൺ വളരെയധികം ചൂടാകുന്നതിനാൽ ഡ്യുവൽ സ്ക്രീൻ ലഭ്യമല്ല"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"ഡ്യുവൽ സ്ക്രീൻ ലഭ്യമല്ല"</string> - <string name="concurrent_display_notification_power_save_content" msgid="2198116070583851493">"ബാറ്ററി ലാഭിക്കൽ ഓണായതിനാൽ ഡ്യുവൽ സ്ക്രീൻ ലഭ്യമല്ല. നിങ്ങൾക്ക് ഇത് ക്രമീകരണത്തിൽ ഓഫാക്കാം."</string> + <string name="concurrent_display_notification_power_save_content" msgid="2198116070583851493">"ബാറ്ററി സേവർ ഓണായതിനാൽ ഡ്യുവൽ സ്ക്രീൻ ലഭ്യമല്ല. നിങ്ങൾക്ക് ഇത് ക്രമീകരണത്തിൽ ഓഫാക്കാം."</string> <string name="device_state_notification_settings_button" msgid="691937505741872749">"ക്രമീകരണത്തിലേക്ക് പോകുക"</string> <string name="device_state_notification_turn_off_button" msgid="6327161707661689232">"ഓഫാക്കുക"</string> <string name="keyboard_layout_notification_selected_title" msgid="1202560174252421219">"<xliff:g id="DEVICE_NAME">%s</xliff:g> കോൺഫിഗർ ചെയ്തു"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages തുറക്കുക"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"ഇത് പ്രവർത്തിക്കുന്നത് എങ്ങനെയാണ്"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"തീർപ്പാക്കിയിട്ടില്ല..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"ഫിംഗർപ്രിന്റ് അൺലോക്ക് വീണ്ടും സജ്ജീകരിക്കുക"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ശരിയായി പ്രവർത്തിക്കാത്തതിനാൽ അത് ഇല്ലാതാക്കി. നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഉപയോഗിച്ച് ഫോൺ അൺലോക്ക് ചെയ്യുന്നതിനായി വീണ്ടും സജ്ജീകരിക്കുക."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>, <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> എന്നിവ ശരിയായി പ്രവർത്തിക്കാത്തതിനാൽ അവ ഇല്ലാതാക്കി. നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഉപയോഗിച്ച് ഫോൺ അൺലോക്ക് ചെയ്യുന്നതിനായി അവ വീണ്ടും സജ്ജീകരിക്കുക."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"ഫെയ്സ് അൺലോക്ക് വീണ്ടും സജ്ജീകരിക്കുക"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"നിങ്ങളുടെ മുഖ മോഡൽ ശരിയായി പ്രവർത്തിക്കാത്തതിനാൽ അത് ഇല്ലാതാക്കി. നിങ്ങളുടെ മുഖം ഉപയോഗിച്ച് ഫോൺ അൺലോക്ക് ചെയ്യുന്നതിനായി വീണ്ടും സജ്ജീകരിക്കുക."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"സജ്ജീകരിക്കുക"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ഇപ്പോൾ വേണ്ട"</string> </resources> diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml index 5ba16fe87ffd..8d430eedc396 100644 --- a/core/res/res/values-mn/strings.xml +++ b/core/res/res/values-mn/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Дуут туслах"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Түгжих"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Шинэ мэдэгдэл"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Биет гар"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Аюулгүй байдал"</string> @@ -2394,7 +2396,7 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Гарын бүдүүвчийг <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> болгож тохируулсан… Өөрчлөхийн тулд товшино уу."</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Биет гарыг тохируулсан"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Гарыг харахын тулд товшино уу"</string> - <string name="profile_label_private" msgid="6463418670715290696">"Хувийн"</string> + <string name="profile_label_private" msgid="6463418670715290696">"Хаалттай"</string> <string name="profile_label_clone" msgid="769106052210954285">"Клон"</string> <string name="profile_label_work" msgid="3495359133038584618">"Ажил"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"Ажил 2"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Мессежийг нээх"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Энэ хэрхэн ажилладаг вэ?"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Хүлээгдэж буй..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Хурууны хээгээр түгжээ тайлахыг дахин тохируулна уу"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> сайн ажиллахгүй байсан тул үүнийг устгасан. Утасныхаа түгжээг хурууны хээгээр тайлахын тулд хурууны хээг дахин тохируулна уу."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>, <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> сайн ажиллахгүй байсан тул эдгээрийг устгасан. Утасныхаа түгжээг хурууныхаа хээгээр тайлахын тулд хоёр хурууны хээг дахин тохируулна уу."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Царайгаар түгжээ тайлахыг дахин тохируулна уу"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Таны нүүрний загвар сайн ажиллахгүй байсан бөгөөд үүнийг устгасан. Утасныхаа түгжээг царайгаар тайлахын тулд нүүрний загварыг дахин тохируулна уу."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Тохируулах"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Одоо биш"</string> </resources> diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml index 6c19cc592880..d5f2bae87f0d 100644 --- a/core/res/res/values-mr/strings.xml +++ b/core/res/res/values-mr/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"व्हॉइस सहाय्य"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"लॉकडाउन"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"नवीन सूचना"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"वास्तविक कीबोर्ड"</string> <string name="notification_channel_security" msgid="8516754650348238057">"सुरक्षा"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages उघडा"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"ते कसे काम करते"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"प्रलंबित आहे..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"फिंगरप्रिंट अनलॉक पुन्हा सेट करा"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"योग्यरीत्या काम करत नसल्यामुळे <xliff:g id="FINGERPRINT">%s</xliff:g> हटवले गेले आहे. तुमचे फिंगरप्रिंट वापरून फोन अनलॉक करण्यासाठी ते पुन्हा सेट करा."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"परफॉर्मन्समध्ये सुधारणा करण्यासाठी आणि योग्यरीत्या काम करत नसल्यामुळे <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> व <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> हटवली गेली आहेत. तुमचे फिंगरप्रिंट वापरून फोन अनलॉक करण्यासाठी ते पुन्हा सेट करा."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"फेस अनलॉक पुन्हा सेट करा"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"तुमचे फेस मॉडेल योग्यरीत्या काम करत नसल्यामुळे ते हटवले गेले आहे. तुमचा चेहरा वापरून फोन अनलॉक करण्यासाठी ते पुन्हा सेट करा."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"सेट करा"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"आताच नको"</string> </resources> diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index 82c1a5974c62..8018cb36741f 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Bantuan Suara"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Kunci semua"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Pemberitahuan baharu"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Papan kekunci fizikal"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Keselamatan"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Buka Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Cara ciri ini berfungsi"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Belum selesai..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Sediakan Buka Kunci Cap Jari sekali lagi"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> tidak berfungsi dengan baik dan telah dipadamkan. Sediakan cap jari sekali lagi untuk membuka kunci telefon anda menggunakan cap jari."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> dan <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> tidak berfungsi dengan baik dan telah dipadamkan. Sediakan kedua-dua cap jari tersebut sekali lagi untuk membuka kunci telefon anda menggunakan cap jari anda."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Sediakan semula Buka Kunci Wajah"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Model wajah anda tidak berfungsi dengan baik dan telah dipadamkan. Sediakan model wajah sekali lagi untuk membuka kunci telefon anda menggunakan wajah."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Sediakan"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Bukan sekarang"</string> </resources> diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml index 43b7ffafd093..488bdb082f08 100644 --- a/core/res/res/values-my/strings.xml +++ b/core/res/res/values-my/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"အသံ အကူအညီ"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"လော့ခ်ဒေါင်း"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"၉၉၉+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"အကြောင်းကြားချက်အသစ်"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"စက်၏ ကီးဘုတ်"</string> <string name="notification_channel_security" msgid="8516754650348238057">"လုံခြုံရေး"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages ဖွင့်ရန်"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"အလုပ်လုပ်ပုံ"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"ဆိုင်းငံ့ထားသည်…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို စနစ်ထပ်မံထည့်သွင်းပါ"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> သိပ်အဆင်မပြေသဖြင့် ဖျက်ထားသည်။ သင့်ဖုန်းကို လက်ဗွေဖြင့်လော့ခ်ဖွင့်ရန် ၎င်းကို စနစ်ထပ်မံထည့်သွင်းပါ။"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> နှင့် <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> တို့ သိပ်အဆင်မပြေသဖြင့် ဖျက်ထားသည်။ သင့်ဖုန်းကို လက်ဗွေဖြင့်လော့ခ်ဖွင့်ရန် ၎င်းတို့ကို စနစ်ထပ်မံထည့်သွင်းပါ။"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို စနစ်ထပ်မံထည့်သွင်းပါ"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"သင့်မျက်နှာနမူနာ သိပ်အဆင်မပြေသဖြင့် ဖျက်ထားသည်။ သင့်ဖုန်းကို မျက်နှာဖြင့်လော့ခ်ဖွင့်ရန် ၎င်းကို စနစ်ထပ်မံထည့်သွင်းပါ။"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"စနစ်ထည့်သွင်းရန်"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ယခုမလုပ်ပါ"</string> </resources> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index ad4ffc202466..3939f48b9265 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Talehjelp"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Låsing"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nytt varsel"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fysisk tastatur"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Sikkerhet"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Åpne Meldinger"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Slik fungerer det"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Venter …"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Konfigurer opplåsingen med fingeravtrykk på nytt"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> fungerte ikke skikkelig og ble slettet. Du kan konfigurere det på nytt for å låse opp telefonen med fingeravtrykket."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> og <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> fungerte ikke skikkelig og ble slettet. Du kan konfigurere dem på nytt for å låse opp telefonen med fingeravtrykket."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Konfigurer ansiktslåsen på nytt"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Ansiktsmodellen din fungerte ikke skikkelig og ble slettet. Du kan konfigurere den på nytt for å låse opp telefonen med ansiktet."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Konfigurer"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ikke nå"</string> </resources> diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml index 1cde247403c3..c16a02cb1278 100644 --- a/core/res/res/values-ne/strings.xml +++ b/core/res/res/values-ne/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"आवाज सहायता"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"लकडाउन गर्नु…"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"९९९+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"नयाँ सूचना"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"फिजिकल किबोर्ड"</string> <string name="notification_channel_security" msgid="8516754650348238057">"सुरक्षा"</string> @@ -873,30 +875,30 @@ <item msgid="4537253139152229577">"घरको फ्याक्स"</item> <item msgid="6751245029698664340">"पेजर"</item> <item msgid="1692790665884224905">"अन्य"</item> - <item msgid="6216981255272016212">"आफू अनुकूल"</item> + <item msgid="6216981255272016212">" कस्टम"</item> </string-array> <string-array name="emailAddressTypes"> <item msgid="7786349763648997741">"गृह"</item> <item msgid="435564470865989199">"काम"</item> <item msgid="4199433197875490373">"अन्य"</item> - <item msgid="3233938986670468328">"आफू अनुकूल"</item> + <item msgid="3233938986670468328">" कस्टम"</item> </string-array> <string-array name="postalAddressTypes"> <item msgid="3861463339764243038">"गृह"</item> <item msgid="5472578890164979109">"काम"</item> <item msgid="5718921296646594739">"अन्य"</item> - <item msgid="5523122236731783179">"आफू अनुकूल"</item> + <item msgid="5523122236731783179">" कस्टम"</item> </string-array> <string-array name="imAddressTypes"> <item msgid="588088543406993772">"गृह"</item> <item msgid="5503060422020476757">"काम"</item> <item msgid="2530391194653760297">"अन्य"</item> - <item msgid="7640927178025203330">"आफू अनुकूल"</item> + <item msgid="7640927178025203330">" कस्टम"</item> </string-array> <string-array name="organizationTypes"> <item msgid="6144047813304847762">"काम गर्नुहोस्"</item> <item msgid="7402720230065674193">"अन्य"</item> - <item msgid="808230403067569648">"आफू अनुकूल"</item> + <item msgid="808230403067569648">" कस्टम"</item> </string-array> <string-array name="imProtocols"> <item msgid="7535761744432206400">"AIM"</item> @@ -908,7 +910,7 @@ <item msgid="4717545739447438044">"ICQ"</item> <item msgid="8293711853624033835">"Jabber"</item> </string-array> - <string name="phoneTypeCustom" msgid="5120365721260686814">"आफू अनुकूल"</string> + <string name="phoneTypeCustom" msgid="5120365721260686814">" कस्टम"</string> <string name="phoneTypeHome" msgid="3880132427643623588">"गृह"</string> <string name="phoneTypeMobile" msgid="1178852541462086735">"मोबाइल"</string> <string name="phoneTypeWork" msgid="6604967163358864607">"काम"</string> @@ -929,24 +931,24 @@ <string name="phoneTypeWorkPager" msgid="3748332310638505234">"कार्य पेजर"</string> <string name="phoneTypeAssistant" msgid="757550783842231039">"सहायक"</string> <string name="phoneTypeMms" msgid="1799747455131365989">"MMS"</string> - <string name="eventTypeCustom" msgid="3257367158986466481">"आफू अनुकूल"</string> + <string name="eventTypeCustom" msgid="3257367158986466481">" कस्टम"</string> <string name="eventTypeBirthday" msgid="7770026752793912283">"जन्मदिन"</string> <string name="eventTypeAnniversary" msgid="4684702412407916888">"वार्षिक समारोह"</string> <string name="eventTypeOther" msgid="530671238533887997">"अन्य"</string> - <string name="emailTypeCustom" msgid="1809435350482181786">"आफू अनुकूल"</string> + <string name="emailTypeCustom" msgid="1809435350482181786">" कस्टम"</string> <string name="emailTypeHome" msgid="1597116303154775999">"गृह"</string> <string name="emailTypeWork" msgid="2020095414401882111">"काम"</string> <string name="emailTypeOther" msgid="5131130857030897465">"अन्य"</string> <string name="emailTypeMobile" msgid="787155077375364230">"मोबाइल"</string> - <string name="postalTypeCustom" msgid="5645590470242939129">"आफू अनुकूल"</string> + <string name="postalTypeCustom" msgid="5645590470242939129">" कस्टम"</string> <string name="postalTypeHome" msgid="7562272480949727912">"गृह"</string> <string name="postalTypeWork" msgid="8553425424652012826">"काम"</string> <string name="postalTypeOther" msgid="7094245413678857420">"अन्य"</string> - <string name="imTypeCustom" msgid="5653384545085765570">"आफू अनुकूल"</string> + <string name="imTypeCustom" msgid="5653384545085765570">" कस्टम"</string> <string name="imTypeHome" msgid="6996507981044278216">"गृह"</string> <string name="imTypeWork" msgid="2099668940169903123">"काम"</string> <string name="imTypeOther" msgid="8068447383276219810">"अन्य"</string> - <string name="imProtocolCustom" msgid="4437878287653764692">"आफू अनुकूल"</string> + <string name="imProtocolCustom" msgid="4437878287653764692">" कस्टम"</string> <string name="imProtocolAim" msgid="4050198236506604378">"AIM"</string> <string name="imProtocolMsn" msgid="2257148557766499232">"Windows Live"</string> <string name="imProtocolYahoo" msgid="5373338758093392231">"Yahoo"</string> @@ -958,8 +960,8 @@ <string name="imProtocolNetMeeting" msgid="4985002408136148256">"NetMeeting"</string> <string name="orgTypeWork" msgid="8684458700669564172">"काम"</string> <string name="orgTypeOther" msgid="5450675258408005553">"अन्य"</string> - <string name="orgTypeCustom" msgid="1126322047677329218">"आफू अनुकूल"</string> - <string name="relationTypeCustom" msgid="282938315217441351">"आफू अनुकूल"</string> + <string name="orgTypeCustom" msgid="1126322047677329218">" कस्टम"</string> + <string name="relationTypeCustom" msgid="282938315217441351">" कस्टम"</string> <string name="relationTypeAssistant" msgid="4057605157116589315">"सहायक"</string> <string name="relationTypeBrother" msgid="7141662427379247820">"भाइ"</string> <string name="relationTypeChild" msgid="9076258911292693601">"सन्तान"</string> @@ -974,7 +976,7 @@ <string name="relationTypeRelative" msgid="3396498519818009134">"आफन्त"</string> <string name="relationTypeSister" msgid="3721676005094140671">"बहिनी"</string> <string name="relationTypeSpouse" msgid="6916682664436031703">"पति-पत्नी"</string> - <string name="sipAddressTypeCustom" msgid="6283889809842649336">"आफू अनुकूल"</string> + <string name="sipAddressTypeCustom" msgid="6283889809842649336">" कस्टम"</string> <string name="sipAddressTypeHome" msgid="5918441930656878367">"गृह"</string> <string name="sipAddressTypeWork" msgid="7873967986701216770">"काम गर्नुहोस्"</string> <string name="sipAddressTypeOther" msgid="6317012577345187275">"अन्य"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages खोल्नुहोस्"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"यसले काम गर्ने तरिका"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"विचाराधीन..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"फिंगरप्रिन्ट अनलक फेरि सेटअप गर्नुहोस्"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ले काम गरिरहेको थिएन र त्यसलाई मेटाइयो। फिंगरप्रिन्ट प्रयोग गरी आफ्नो फोन अनलक गर्न त्यसलाई फेरि सेट अप गर्नुहोस्।"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> र <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ले राम्ररी काम गरिरहेका थिएनन् र तिनलाई मेटाइयो। फिंगरप्रिन्ट प्रयोग गरी आफ्नो फोन अनलक गर्न तिनलाई फेरि सेट अप गर्नुहोस्।"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"फेस अनलक फेरि सेटअप गर्नुहोस्"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"तपाईंको फेस मोडेलले राम्ररी काम गरिरहेको थिएन र त्यसलाई मेटाइयो। अनुहार प्रयोग गरी आफ्नो फोन अनलक गर्न फेस मोडेल फेरि सेट अप गर्नुहोस्।"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"सेटअप गर्नुहोस्"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"अहिले होइन"</string> </resources> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 7bae96e6ab88..f8b0f9e12c36 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Spraakassistent"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Lockdown"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999 +"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nieuwe melding"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fysiek toetsenbord"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Beveiliging"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Berichten openen"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Hoe het werkt"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"In behandeling…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Ontgrendelen met vingerafdruk weer instellen"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> werkte niet goed en is verwijderd. Stel deze opnieuw in om de telefoon met je vingerafdruk te ontgrendelen."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> en <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> werkten niet goed en zijn verwijderd. Stel ze opnieuw in om de telefoon met je vingerafdruk te ontgrendelen."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Ontgrendelen via gezichtsherkenning weer instellen"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Je gezichtsmodel werkte niet goed en is verwijderd. Stel het opnieuw in om de telefoon met je gezicht te ontgrendelen."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Instellen"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Niet nu"</string> </resources> diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml index c00998acbe16..9abed2b264f4 100644 --- a/core/res/res/values-or/strings.xml +++ b/core/res/res/values-or/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"ଭଏସ୍ ସହାୟକ"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"ଲକ୍ କରନ୍ତୁ"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"ନୂଆ ବିଜ୍ଞପ୍ତି"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"ଫିଜିକଲ୍ କୀ’ବୋର୍ଡ"</string> <string name="notification_channel_security" msgid="8516754650348238057">"ସୁରକ୍ଷା"</string> @@ -2144,7 +2146,7 @@ <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ନିୟମିତ ମୋଡ୍ ସୂଚନା ବିଜ୍ଞପ୍ତି"</string> <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"ବେଟେରୀ ସେଭର ଚାଲୁ କରାଯାଇଛି"</string> <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"ବ୍ୟାଟେରୀ ଲାଇଫ ବଢ଼ାଇବା ପାଇଁ ବ୍ୟାଟେରୀ ବ୍ୟବହାର କମ୍ କରିବା"</string> - <string name="dynamic_mode_notification_title_v2" msgid="5072385242078021152">"ବ୍ୟାଟେରୀ ସେଭର୍ ଚାଲୁ ଅଛି"</string> + <string name="dynamic_mode_notification_title_v2" msgid="5072385242078021152">"ବେଟେରୀ ସେଭର ଚାଲୁ ଅଛି"</string> <string name="dynamic_mode_notification_summary_v2" msgid="2142444344663147938">"ବେଟେରୀ ଲାଇଫକୁ ବଢ଼ାଇବା ପାଇଁ ବେଟେରୀ ସେଭରକୁ ଚାଲୁ କରାଯାଇଛି"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ବେଟେରୀ ସେଭର"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ବ୍ୟାଟେରୀ ସେଭର୍ ବନ୍ଦ ଅଛି"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages ଖୋଲନ୍ତୁ"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"ଏହା କିପରି କାମ କରେ"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"ବାକି ଅଛି…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ପୁଣି ସେଟ ଅପ କରନ୍ତୁ"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ସଠିକ ଭାବେ କାମ କରୁନାହିଁ ଏବଂ ଏହାକୁ ଡିଲିଟ କରାଯାଇଛି। ଟିପଚିହ୍ନ ମାଧ୍ୟମରେ ଆପଣଙ୍କ ଫୋନକୁ ଅନଲକ କରିବାକୁ ଏହାକୁ ପୁଣି ସେଟ ଅପ କରନ୍ତୁ।"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> ଏବଂ <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ସଠିକ ଭାବେ କାମ କରୁନାହିଁ ଏବଂ ଏଗୁଡ଼ିକୁ ଡିଲିଟ କରାଯାଇଛି। ଆପଣଙ୍କ ଟିପଚିହ୍ନ ମାଧ୍ୟମରେ ଆପଣଙ୍କ ଫୋନକୁ ଅନଲକ କରିବାକୁ ଏଗୁଡ଼ିକୁ ପୁଣି ସେଟ ଅପ କରନ୍ତୁ।"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"ଫେସ୍ ଅନଲକ୍ ପୁଣି ସେଟ୍ ଅପ୍ କରନ୍ତୁ"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"ଆପଣଙ୍କ ଫେସ ମଡେଲ ସଠିକ ଭାବେ କାମ କରୁନାହିଁ ଏବଂ ଏହାକୁ ଡିଲିଟ କରାଯାଇଛି। ଫେସ ମାଧ୍ୟମରେ ଆପଣଙ୍କ ଫୋନକୁ ଅନଲକ କରିବାକୁ ଏହାକୁ ପୁଣି ସେଟ ଅପ କରନ୍ତୁ।"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"ସେଟ ଅପ କରନ୍ତୁ"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ବର୍ତ୍ତମାନ ନୁହେଁ"</string> </resources> diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml index 77020acff650..64b326c9f227 100644 --- a/core/res/res/values-pa/strings.xml +++ b/core/res/res/values-pa/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"ਅਵਾਜ਼ੀ ਸਹਾਇਕ"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"ਲਾਕਡਾਊਨ"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"ਨਵੀਂ ਸੂਚਨਾ"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ"</string> <string name="notification_channel_security" msgid="8516754650348238057">"ਸੁਰੱਖਿਆ"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages ਐਪ ਖੋਲ੍ਹੋ"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"ਵਿਚਾਰ-ਅਧੀਨ..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਦੁਬਾਰਾ ਸੈੱਟਅੱਪ ਕਰੋ"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ਚੰਗੀ ਤਰ੍ਹਾਂ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ ਅਤੇ ਉਸਨੂੰ ਮਿਟਾਇਆ ਗਿਆ ਸੀ। ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਫਿੰਗਰਪ੍ਰਿੰਟ ਨਾਲ ਅਣਲਾਕ ਕਰਨ ਲਈ ਇਸਦਾ ਦੁਬਾਰਾ ਸੈੱਟਅੱਪ ਕਰੋ।"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> ਅਤੇ <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ਚੰਗੀ ਤਰ੍ਹਾਂ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੇ ਸੀ ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਮਿਟਾਇਆ ਗਿਆ ਸੀ। ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਨਾਲ ਅਣਲਾਕ ਕਰਨ ਲਈ ਇਨ੍ਹਾਂ ਦਾ ਦੁਬਾਰਾ ਸੈੱਟਅੱਪ ਕਰੋ।"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਦੁਬਾਰਾ ਸੈੱਟਅੱਪ ਕਰੋ"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"ਤੁਹਾਡਾ ਚਿਹਰੇ ਦਾ ਮਾਡਲ ਚੰਗੀ ਤਰ੍ਹਾਂ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ ਅਤੇ ਉਸਨੂੰ ਮਿਟਾਇਆ ਗਿਆ ਸੀ। ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਚਿਹਰੇ ਨਾਲ ਅਣਲਾਕ ਕਰਨ ਲਈ ਇਸਦਾ ਦੁਬਾਰਾ ਸੈੱਟਅੱਪ ਕਰੋ।"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"ਸੈੱਟਅੱਪ ਕਰੋ"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ਹੁਣੇ ਨਹੀਂ"</string> </resources> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 0971ae40d500..9cc99166d98f 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -285,6 +285,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Asystent głosowy"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Blokada"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">">999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nowe powiadomienie"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Klawiatura fizyczna"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Bezpieczeństwo"</string> @@ -2415,22 +2417,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Otwórz Wiadomości"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Jak to działa"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Oczekiwanie…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Skonfiguruj ponownie odblokowywanie odciskiem palca"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Odcisk palca <xliff:g id="FINGERPRINT">%s</xliff:g> nie sprawdzał się dobrze i został usunięty. Skonfiguruj go ponownie, aby odblokowywać telefon odciskiem palca."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Odciski palca <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> i <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> nie sprawdzały się dobrze i zostały usunięte. Skonfiguruj je ponownie, aby odblokowywać telefon odciskiem palca."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Skonfiguruj ponownie rozpoznawanie twarzy"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Twój model twarzy nie sprawdzał się dobrze i został usunięty. Skonfiguruj go ponownie, aby odblokowywać telefon za pomocą skanu twarzy."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Skonfiguruj"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Nie teraz"</string> </resources> diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml index b04cd4c6ed98..e3b49a0b399b 100644 --- a/core/res/res/values-pt-rBR/strings.xml +++ b/core/res/res/values-pt-rBR/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Ajuda de voz"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Bloqueio total"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">">999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nova notificação"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Teclado físico"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Segurança"</string> @@ -2395,7 +2397,7 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Layout do teclado definido como <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Toque para mudar."</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Teclados físicos configurados"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Toque para conferir os teclados"</string> - <string name="profile_label_private" msgid="6463418670715290696">"Particular"</string> + <string name="profile_label_private" msgid="6463418670715290696">"Privado"</string> <string name="profile_label_clone" msgid="769106052210954285">"Clone"</string> <string name="profile_label_work" msgid="3495359133038584618">"Trabalho"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"Trabalho 2"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Abrir o app Mensagens"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Como funciona"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pendente…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Configurar o Desbloqueio por impressão digital de novo"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"A impressão digital <xliff:g id="FINGERPRINT">%s</xliff:g> não estava funcionando bem e foi excluída. Configure de novo para desbloquear o smartphone com a impressão digital."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"As impressões digitais <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> e <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> não estavam funcionando bem e foram excluídas. Configure de novo para desbloquear o smartphone com a impressão digital."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Configure o Desbloqueio facial de novo"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Seu modelo de rosto não estava funcionando bem e foi excluído. Configure de novo para desbloquear o smartphone com o rosto."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configuração"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Agora não"</string> </resources> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 90f9eda9c32e..d8c1f72fecb5 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Assist. de voz"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Bloquear"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nova notificação"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Teclado físico"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Segurança"</string> @@ -327,7 +329,7 @@ <string name="permgroupdesc_storage" msgid="5378659041354582769">"aceder aos ficheiros no seu dispositivo"</string> <string name="permgrouplab_readMediaAural" msgid="1858331312624942053">"Música e áudio"</string> <string name="permgroupdesc_readMediaAural" msgid="7565467343667089595">"aceder a música e áudio no seu dispositivo"</string> - <string name="permgrouplab_readMediaVisual" msgid="4724874717811908660">"fotos e vídeos"</string> + <string name="permgrouplab_readMediaVisual" msgid="4724874717811908660">"Fotos e vídeos"</string> <string name="permgroupdesc_readMediaVisual" msgid="4080463241903508688">"aceder a fotos e vídeos no seu dispositivo"</string> <string name="permgrouplab_microphone" msgid="2480597427667420076">"Microfone"</string> <string name="permgroupdesc_microphone" msgid="1047786732792487722">"gravar áudio"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Abre a app Mensagens"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Como funciona"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pendente…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Configure o Desbloqueio por impressão digital novamente"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"A <xliff:g id="FINGERPRINT">%s</xliff:g> não estava a funcionar bem e foi eliminada. Configure-a novamente para desbloquear o telemóvel com a impressão digital."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"A <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> e a <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> não estavam a funcionar bem e foram eliminadas. Configure-as novamente para desbloquear o telemóvel com a sua impressão digital."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Configure o Desbloqueio facial novamente"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"O seu modelo de rosto não estava a funcionar bem e foi eliminado. Configure-o novamente para desbloquear o telemóvel com o rosto."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configurar"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Agora não"</string> </resources> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index b04cd4c6ed98..e3b49a0b399b 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Ajuda de voz"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Bloqueio total"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">">999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nova notificação"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Teclado físico"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Segurança"</string> @@ -2395,7 +2397,7 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Layout do teclado definido como <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g>… Toque para mudar."</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Teclados físicos configurados"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Toque para conferir os teclados"</string> - <string name="profile_label_private" msgid="6463418670715290696">"Particular"</string> + <string name="profile_label_private" msgid="6463418670715290696">"Privado"</string> <string name="profile_label_clone" msgid="769106052210954285">"Clone"</string> <string name="profile_label_work" msgid="3495359133038584618">"Trabalho"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"Trabalho 2"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Abrir o app Mensagens"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Como funciona"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Pendente…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Configurar o Desbloqueio por impressão digital de novo"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"A impressão digital <xliff:g id="FINGERPRINT">%s</xliff:g> não estava funcionando bem e foi excluída. Configure de novo para desbloquear o smartphone com a impressão digital."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"As impressões digitais <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> e <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> não estavam funcionando bem e foram excluídas. Configure de novo para desbloquear o smartphone com a impressão digital."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Configure o Desbloqueio facial de novo"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Seu modelo de rosto não estava funcionando bem e foi excluído. Configure de novo para desbloquear o smartphone com o rosto."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configuração"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Agora não"</string> </resources> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index c43df4fa6e41..7de995219497 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Asistent vocal"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Blocare strictă"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"˃999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Notificare nouă"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Tastatură fizică"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Securitate"</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Deschide Mesaje"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Cum funcționează"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"În așteptare..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Configurează din nou Deblocarea cu amprenta"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> nu funcționa bine și s-a șters. Configureaz-o din nou pentru a-ți debloca telefonul cu amprenta."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> și <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> nu funcționau bine și s-au șters. Configurează-le din nou pentru a-ți debloca telefonul cu amprenta."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Reconfigurează Deblocarea facială"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Modelul tău facial nu funcționa bine și s-a șters. Configurează-l din nou pentru a-ți debloca telefonul folosindu-ți chipul."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Configurează"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Nu acum"</string> </resources> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 32a2338b284d..d999bf5b2050 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -285,6 +285,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Аудиоподсказки"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Блокировка входа"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">">999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Новое уведомление"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Физическая клавиатура"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Безопасность"</string> @@ -668,7 +670,7 @@ </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Отпечаток не распознан."</string> <string name="fingerprint_udfps_error_not_match" msgid="8236930793223158856">"Отпечаток не распознан."</string> - <string name="fingerprint_dialog_use_fingerprint_instead" msgid="5590293588784953188">"Лицо не распознано. Используйте отпечаток."</string> + <string name="fingerprint_dialog_use_fingerprint_instead" msgid="5590293588784953188">"Лицо не распознано. Сканируйте отпечаток пальца."</string> <string name="fingerprint_authenticated" msgid="2024862866860283100">"Отпечаток пальца проверен"</string> <string name="face_authenticated_no_confirmation_required" msgid="8867889115112348167">"Лицо распознано"</string> <string name="face_authenticated_confirmation_required" msgid="6872632732508013755">"Лицо распознано, нажмите кнопку \"Подтвердить\""</string> @@ -2396,7 +2398,7 @@ <string name="keyboard_layout_notification_more_than_three_selected_message" msgid="1581834181578206937">"Настроены раскладки клавиатуры для яз.: <xliff:g id="LAYOUT_1">%1$s</xliff:g>, <xliff:g id="LAYOUT_2">%2$s</xliff:g>, <xliff:g id="LAYOUT_3">%3$s</xliff:g> и др. Нажмите, чтобы изменить."</string> <string name="keyboard_layout_notification_multiple_selected_title" msgid="5242444914367024499">"Физические клавиатуры настроены"</string> <string name="keyboard_layout_notification_multiple_selected_message" msgid="6576533454124419202">"Нажмите, чтобы посмотреть подключенные клавиатуры."</string> - <string name="profile_label_private" msgid="6463418670715290696">"Личный"</string> + <string name="profile_label_private" msgid="6463418670715290696">"Частный"</string> <string name="profile_label_clone" msgid="769106052210954285">"Клон"</string> <string name="profile_label_work" msgid="3495359133038584618">"Рабочий"</string> <string name="profile_label_work_2" msgid="4691533661598632135">"Рабочий 2"</string> @@ -2415,22 +2417,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Открыть Сообщения"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Узнать принцип работы"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Обработка…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Настройте разблокировку по отпечатку пальца заново"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Отпечаток пальца \"<xliff:g id="FINGERPRINT">%s</xliff:g>\" оказался неудачным и был удален. Чтобы использовать разблокировку с помощью отпечатка пальца, настройте ее заново."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Отпечатки пальцев \"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>\" и \"<xliff:g id="FINGERPRINT_1">%2$s</xliff:g>\" оказались неудачными и были удалены. Чтобы использовать разблокировку с помощью отпечатка пальца, настройте ее заново."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Настройте фейсконтроль заново"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Модель лица оказалась неудачной и была удалена. Чтобы пользоваться фейсконтролем, настройте его заново."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Настроить"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Не сейчас"</string> </resources> diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml index 9539cef0f26c..a8eda4f65c7e 100644 --- a/core/res/res/values-si/strings.xml +++ b/core/res/res/values-si/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"හඬ සහායක"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"අගුලු දැමීම"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"නව දැනුම්දීම"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"භෞතික යතුරු පුවරුව"</string> <string name="notification_channel_security" msgid="8516754650348238057">"ආරක්ෂාව"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages විවෘත කරන්න"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"එය ක්රියා කරන ආකාරය"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"පොරොත්තුයි..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"ඇඟිලි සලකුණු අගුලු හැරීම නැවත සකසන්න"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> හොඳින් ක්රියා නොකළේය, එය මකන ලදි ඇඟිලි සලකුණ මගින් ඔබේ දුරකථනය අගුලු හැරීමට එය නැවත සකසන්න."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> සහ <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> හොඳින් ක්රියා නොකළේය, කාර්යසාධනය දියුණූ කිරීමට ඒවා මකන ලදි. ඔබේ ඇඟිලි සලකුණ මගින් ඔබේ දුරකථනය අගුලු හැරීමට ඒවා නැවත සකසන්න."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"මුහුණෙන් අගුලු හැරීම නැවත සකසන්න"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"ඔබේ මුහුණු මාදිලිය හොඳින් ක්රියා නොකරයි, එය මකන ලදි. මුහුණ මගින් ඔබේ දුරකථනය අගුලු හැරීමට එය නැවත සකසන්න."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"සකසන්න"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"දැන් නොවේ"</string> </resources> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index c72a426d0436..46897cbbf7cb 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -285,6 +285,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Hlasový asistent"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Uzamknúť"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Nové upozornenie"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fyzická klávesnica"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Zabezpečenie"</string> @@ -2415,22 +2417,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Otvoriť Správy"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Ako to funguje"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Nespracovaná…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Znova nastavte odomknutie odtlačkom prsta"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Odtlačok <xliff:g id="FINGERPRINT">%s</xliff:g> nefungoval správne a bol odstránený. Ak chcete odomykať telefón odtlačkom prsta, nastavte ho znova."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Odtlačky <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> a <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> nefungovali správne a boli odstránené. Ak chcete odomykať telefón odtlačkom prsta, nastavte ich znova."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Znova nastavte odomknutie tvárou"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Váš model tváre nefungoval správne a bol odstránený. Ak chcete odomykať telefón tvárou, nastavte ho znova."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Nastaviť"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Teraz nie"</string> </resources> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index e1be803cce1b..2f10d584fed9 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -285,6 +285,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Glas. pomočnik"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Zakleni"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999 +"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Novo obvestilo"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fizična tipkovnica"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Varnost"</string> @@ -1733,7 +1735,7 @@ <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ogledovanje in upravljanje zaslona"</string> <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Bere lahko vso vsebino na zaslonu ter prikaže vsebino prek drugih aplikacij."</string> <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Ogledovanje in izvajanje dejanj"</string> - <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Spremlja lahko vaše interakcije z aplikacijo ali tipalom strojne opreme ter komunicira z aplikacijami v vašem imenu."</string> + <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Spremlja lahko vaše interakcije z aplikacijo ali tipalom ter komunicira z aplikacijami v vašem imenu."</string> <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Dovoli"</string> <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Zavrni"</string> <string name="accessibility_dialog_button_uninstall" msgid="2952465517671708108">"Odmesti"</string> @@ -2415,22 +2417,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Odpri Sporočila"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Kako deluje"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"V teku …"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Vnovična nastavitev odklepanja s prstnim odtisom"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> ni deloval pravilno in je bil izbrisan. Znova ga nastavite, če želite telefon odklepati s prstnim odtisom."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> in <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> nista delovala pravilno in sta bila izbrisana. Znova ju nastavite, če želite telefon odklepati s prstnim odtisom."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Vnovična nastavitev odklepanja z obrazom"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Model obraza ni deloval pravilno in je bil izbrisan. Znova ga nastavite, če želite telefon odklepati z obrazom."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Nastavi"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Ne zdaj"</string> </resources> diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml index 4d79ce707787..70980b61e972 100644 --- a/core/res/res/values-sq/strings.xml +++ b/core/res/res/values-sq/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Ndihma zanore"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Blloko"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Njoftim i ri"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Tastiera fizike"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Siguria"</string> @@ -2415,9 +2417,9 @@ <string name="unarchival_session_app_label" msgid="6811856981546348205">"Në pritje..."</string> <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> <skip /> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 95ccead79ce2..86387c95f727 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -284,6 +284,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Гласовна помоћ"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Закључавање"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Ново обавештење"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Физичка тастатура"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Безбедност"</string> @@ -835,11 +837,11 @@ <string name="policylab_watchLogin" msgid="7599669460083719504">"Надзор покушаја откључавања екрана"</string> <string name="policydesc_watchLogin" product="tablet" msgid="2388436408621909298">"Прати број нетачно унетих лозинки приликом откључавања екрана и закључава таблет или брише податке са таблета ако је нетачна лозинка унета превише пута."</string> <string name="policydesc_watchLogin" product="tv" msgid="2140588224468517507">"Надгледа број нетачних лозинки унетих при откључавању екрана и закључава Android TV уређај или брише све податке са Android TV уређаја ако се унесе превише нетачних лозинки."</string> - <string name="policydesc_watchLogin" product="automotive" msgid="7011438994051251521">"Прати број нетачно унетих лозинки при откључавању екрана и закључава систем за инфо-забаву или брише све податке са система за инфо-забаву ако је нетачна лозинка унета превише пута."</string> + <string name="policydesc_watchLogin" product="automotive" msgid="7011438994051251521">"Прати број нетачно унетих лозинки при откључавању екрана и закључава систем за информације и забаву или брише све податке са система за информације и забаву ако је нетачна лозинка унета превише пута."</string> <string name="policydesc_watchLogin" product="default" msgid="4885030206253600299">"Прати број нетачно унетих лозинки при откључавању екрана и закључава телефон или брише све податке са телефона ако је нетачна лозинка унета превише пута."</string> <string name="policydesc_watchLogin_secondaryUser" product="tablet" msgid="2049038943004297474">"Надгледа број нетачних лозинки унетих при откључавању екрана и закључава таблет или брише све податке овог корисника ако се унесе превише нетачних лозинки."</string> <string name="policydesc_watchLogin_secondaryUser" product="tv" msgid="8965224107449407052">"Надгледа број нетачних лозинки унетих при откључавању екрана и закључава Android TV уређај или брише све податке овог корисника ако се унесе превише нетачних лозинки."</string> - <string name="policydesc_watchLogin_secondaryUser" product="automotive" msgid="7180857406058327941">"Надгледа број нетачних лозинки унетих при откључавању екрана и закључава систем за инфо-забаву или брише све податке овог профила ако се унесе превише нетачних лозинки."</string> + <string name="policydesc_watchLogin_secondaryUser" product="automotive" msgid="7180857406058327941">"Надгледа број нетачних лозинки унетих при откључавању екрана и закључава систем за информације и забаву или брише све податке овог профила ако се унесе превише нетачних лозинки."</string> <string name="policydesc_watchLogin_secondaryUser" product="default" msgid="9177645136475155924">"Надгледа број нетачних лозинки унетих при откључавању екрана и закључава телефон или брише све податке овог корисника ако се унесе превише нетачних лозинки."</string> <string name="policylab_resetPassword" msgid="214556238645096520">"Промена закључавања екрана"</string> <string name="policydesc_resetPassword" msgid="4626419138439341851">"Мења откључавање екрана."</string> @@ -848,13 +850,13 @@ <string name="policylab_wipeData" msgid="1359485247727537311">"Брисање свих података"</string> <string name="policydesc_wipeData" product="tablet" msgid="7245372676261947507">"Брисање података на таблету без упозорења ресетовањем на фабричка подешавања."</string> <string name="policydesc_wipeData" product="tv" msgid="513862488950801261">"Брише податке Android TV уређаја без упозорења помоћу ресетовања на фабричка подешавања."</string> - <string name="policydesc_wipeData" product="automotive" msgid="660804547737323300">"Брише податке на систему за инфо-забаву без упозорења ресетовањем на фабричка подешавања."</string> + <string name="policydesc_wipeData" product="automotive" msgid="660804547737323300">"Брише податке на систему за информације и забаву без упозорења ресетовањем на фабричка подешавања."</string> <string name="policydesc_wipeData" product="default" msgid="8036084184768379022">"Брисање података на телефону без упозорења ресетовањем на фабричка подешавања."</string> <string name="policylab_wipeData_secondaryUser" product="automotive" msgid="115034358520328373">"Брисање података профила"</string> <string name="policylab_wipeData_secondaryUser" product="default" msgid="413813645323433166">"Обриши податке корисника"</string> <string name="policydesc_wipeData_secondaryUser" product="tablet" msgid="2336676480090926470">"Брише податке овог корисника на овом таблету без упозорења."</string> <string name="policydesc_wipeData_secondaryUser" product="tv" msgid="2293713284515865200">"Брише податке овог корисника на овом Android TV уређају без упозорења."</string> - <string name="policydesc_wipeData_secondaryUser" product="automotive" msgid="4658832487305780879">"Брише податке овог профила на овом систему за инфо-забаву без упозорења."</string> + <string name="policydesc_wipeData_secondaryUser" product="automotive" msgid="4658832487305780879">"Брише податке овог профила на овом систему за информације и забаву без упозорења."</string> <string name="policydesc_wipeData_secondaryUser" product="default" msgid="2788325512167208654">"Брише податке овог корисника на овом телефону без упозорења."</string> <string name="policylab_setGlobalProxy" msgid="215332221188670221">"Подесите глобални прокси сервер уређаја"</string> <string name="policydesc_setGlobalProxy" msgid="7149665222705519604">"Подешава глобални прокси уређаја који ће се користити док су смернице омогућене. Само власник уређаја може да подеси глобални прокси."</string> @@ -2414,22 +2416,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Отвори Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Принцип рада"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"На чекању..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Поново подесите откључавање отиском прста"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> није функционисао и избрисали смо га. Поново га подесите да бисте телефон откључавали отиском прста."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> и <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> нису функционисали и избрисали смо их. Поново их подесите да бисте телефон откључавали отиском прста."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Поново подесите откључавање лицем"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Ваш модел лица није функционисао и избрисали смо га. Поново га подесите да бисте телефон откључавали лицем."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Подеси"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Не сада"</string> </resources> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index 0cbdda1a4c27..6c15ad8ff76f 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Voice Assist"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Låsning"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Ny avisering"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fysiskt tangentbord"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Säkerhet"</string> @@ -623,12 +625,12 @@ <string name="permdesc_postNotification" msgid="5974977162462877075">"Tillåter att appen visar aviseringar"</string> <string name="permlab_turnScreenOn" msgid="219344053664171492">"Slå på skärmen"</string> <string name="permdesc_turnScreenOn" msgid="4394606875897601559">"Tillåter att appen slår på skärmen."</string> - <string name="permlab_useBiometric" msgid="6314741124749633786">"använd biometrisk maskinvara"</string> - <string name="permdesc_useBiometric" msgid="7502858732677143410">"Tillåter att appen använder biometrisk maskinvara vid autentisering"</string> - <string name="permlab_manageFingerprint" msgid="7432667156322821178">"hantera maskinvara för fingeravtryck"</string> + <string name="permlab_useBiometric" msgid="6314741124749633786">"använd biometrisk hårdvara"</string> + <string name="permdesc_useBiometric" msgid="7502858732677143410">"Tillåter att appen använder biometrisk hårdvara vid autentisering"</string> + <string name="permlab_manageFingerprint" msgid="7432667156322821178">"hantera hårdvara för fingeravtryck"</string> <string name="permdesc_manageFingerprint" msgid="2025616816437339865">"Tillåter att appen anropar metoder för att lägga till och radera fingeravtrycksmallar."</string> - <string name="permlab_useFingerprint" msgid="1001421069766751922">"använda maskinvara för fingeravtryck"</string> - <string name="permdesc_useFingerprint" msgid="412463055059323742">"Tillåter att appen använder maskinvara för fingeravtryck vid autentisering"</string> + <string name="permlab_useFingerprint" msgid="1001421069766751922">"använda hårdvara för fingeravtryck"</string> + <string name="permdesc_useFingerprint" msgid="412463055059323742">"Tillåter att appen använder hårdvara för fingeravtryck vid autentisering"</string> <string name="permlab_audioWrite" msgid="8501705294265669405">"göra ändringar i din musiksamling"</string> <string name="permdesc_audioWrite" msgid="8057399517013412431">"Tillåter att appen gör ändringar i din musiksamling."</string> <string name="permlab_videoWrite" msgid="5940738769586451318">"göra ändringar i din videosamling"</string> @@ -642,7 +644,7 @@ <string name="biometric_dialog_default_title" msgid="55026799173208210">"Verifiera din identitet"</string> <string name="biometric_dialog_default_subtitle" msgid="8457232339298571992">"Fortsätt med hjälp av din biometriska data"</string> <string name="biometric_or_screen_lock_dialog_default_subtitle" msgid="159539678371552009">"Fortsätt med hjälp av din biometriska data eller skärmlåset"</string> - <string name="biometric_error_hw_unavailable" msgid="2494077380540615216">"Biometrisk maskinvara är inte tillgänglig"</string> + <string name="biometric_error_hw_unavailable" msgid="2494077380540615216">"Biometrisk hårdvara är inte tillgänglig"</string> <string name="biometric_error_user_canceled" msgid="6732303949695293730">"Autentiseringen avbröts"</string> <string name="biometric_not_recognized" msgid="5106687642694635888">"Identifierades inte"</string> <string name="biometric_face_not_recognized" msgid="5535599455744525200">"Ansiktet känns inte igen"</string> @@ -670,7 +672,7 @@ <string name="fingerprint_authenticated" msgid="2024862866860283100">"Fingeravtrycket har autentiserats"</string> <string name="face_authenticated_no_confirmation_required" msgid="8867889115112348167">"Ansiktet har autentiserats"</string> <string name="face_authenticated_confirmation_required" msgid="6872632732508013755">"Ansiktet har autentiserats. Tryck på Bekräfta"</string> - <string name="fingerprint_error_hw_not_available" msgid="7755729484334001137">"Det finns ingen maskinvara för fingeravtryck"</string> + <string name="fingerprint_error_hw_not_available" msgid="7755729484334001137">"Det finns ingen hårdvara för fingeravtryck"</string> <string name="fingerprint_error_no_space" msgid="7285481581905967580">"Det gick inte att konfigurera fingeravtryck"</string> <string name="fingerprint_error_timeout" msgid="7361192266621252164">"Tiden för fingeravtrycksinställning gick ut. Försök igen."</string> <string name="fingerprint_error_canceled" msgid="5541771463159727513">"Fingeravtrycksåtgärden avbröts"</string> @@ -732,7 +734,7 @@ <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Något täcker ansiktet. Hela ansiktet måste synas."</string> <string-array name="face_acquired_vendor"> </string-array> - <string name="face_error_hw_not_available" msgid="5085202213036026288">"Ansiktsverifiering går ej. Otillgänglig maskinvara."</string> + <string name="face_error_hw_not_available" msgid="5085202213036026288">"Ansiktsverifiering går ej. Otillgänglig hårdvara."</string> <string name="face_error_timeout" msgid="2598544068593889762">"Försök att använda ansiktslåset igen"</string> <string name="face_error_no_space" msgid="5649264057026021723">"Kan inte lagra ny ansiktsdata. Radera först gammal data."</string> <string name="face_error_canceled" msgid="2164434737103802131">"Ansiktsåtgärden har avbrutits."</string> @@ -1731,7 +1733,7 @@ <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Visa och styra skärmen"</string> <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Den kan läsa allt innehåll på skärmen och visa innehåll över andra appar."</string> <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Visa och vidta åtgärder"</string> - <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Den kan registrera din användning av en app eller maskinvarusensor och interagera med appar åt dig."</string> + <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Den kan registrera din användning av en app eller hårdvarusensor och interagera med appar åt dig."</string> <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Tillåt"</string> <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Neka"</string> <string name="accessibility_dialog_button_uninstall" msgid="2952465517671708108">"Avinstallera"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Öppna Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Så fungerar det"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Väntar …"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Konfigurera fingeravtryckslås igen"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> fungerade inte bra och har raderats. Konfigurera det igen för att låsa upp telefonen med fingeravtryck."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> och <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> fungerade inte bra och har raderats. Konfigurera dem igen för att låsa upp telefonen med fingeravtryck."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Konfigurera ansiktslås igen"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Ansiktsmodellen fungerade inte bra och har raderats. Konfigurera den igen för att låsa upp telefonen med ansiktet."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Ställ in"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Inte nu"</string> </resources> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index 10f55af3dc47..1437a3830d44 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Usaidizi wa Sauti"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Funga"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Arifa mpya"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Kibodi halisi"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Usalama"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Fungua Programu ya Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Utaratibu wake"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Inashughulikiwa..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Weka tena mipangilio ya Kufungua kwa Alama ya Kidole"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Alama ya <xliff:g id="FINGERPRINT">%s</xliff:g> ilikuwa na hitilafu na imefutwa. Iweke tena ili ufungue simu yako kwa alama ya kidole."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Alama za <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> na <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> zilikuwa na hitilafu na zimefutwa. Ziweke tena ili ufungue simu yako kwa alama ya kidole."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Weka tena mipangilio ya Kufungua kwa Uso"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Muundo wako wa uso ulikuwa na hitilafu na umefutwa. Uweke tena ili ufungue simu yako kwa uso."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Weka mipangilio"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Si sasa"</string> </resources> diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml index 466e29a7e9b1..231b14c6a94d 100644 --- a/core/res/res/values-ta/strings.xml +++ b/core/res/res/values-ta/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"குரல் உதவி"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"பூட்டு"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"புதிய அறிவிப்பு"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"கைமுறை கீபோர்டு"</string> <string name="notification_channel_security" msgid="8516754650348238057">"பாதுகாப்பு"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messages ஆப்ஸைத் திறக்கவும்"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"இது செயல்படும் விதம்"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"நிலுவையிலுள்ளது..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"கைரேகை அன்லாக் அம்சத்தை மீண்டும் அமையுங்கள்"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> சரியாகச் செயல்படவில்லை என்பதால் அது நீக்கபட்டது. கைரேகை மூலம் உங்கள் மொபைலை அன்லாக் செய்ய அதை மீண்டும் அமையுங்கள்."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> மற்றும் <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> சரியாகச் செயல்படவில்லை என்பதால் அவை நீக்கப்பட்டன. கைரேகை மூலம் உங்கள் மொபைலை அன்லாக் செய்ய அவற்றை மீண்டும் அமையுங்கள்."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"\'முகம் காட்டித் திறத்தல்\' அம்சத்தை மீண்டும் அமையுங்கள்"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"உங்கள் முகத் தோற்றப் பதிவு சரியாகச் செயல்படவில்லை என்பதால் அது நீக்கப்பட்டது. உங்கள் முகத்தைப் பயன்படுத்தி மொபைலை அன்லாக் செய்ய அதை மீண்டும் அமையுங்கள்."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"அமை"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"இப்போது வேண்டாம்"</string> </resources> diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml index db75aac8b027..cf4e19408909 100644 --- a/core/res/res/values-te/strings.xml +++ b/core/res/res/values-te/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"వాయిస్ అసిస్టెంట్"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"లాక్ చేయండి"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"కొత్త నోటిఫికేషన్"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"భౌతిక కీబోర్డ్"</string> <string name="notification_channel_security" msgid="8516754650348238057">"సెక్యూరిటీ"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Messagesను తెరవండి"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"ఇది ఎలా పని చేస్తుంది"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"పెండింగ్లో ఉంది..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"వేలిముద్ర అన్లాక్ను మళ్లీ సెటప్ చేయండి"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> సరిగ్గా పని చేయడం లేదు, తొలగించబడింది. వేలిముద్రతో మీ ఫోన్ను అన్లాక్ చేయడానికి దాన్ని మళ్లీ సెటప్ చేయండి."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>, <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> బాగా పని చేయడం లేదు, తొలగించబడ్డాయి. మీ వేలిముద్రతో మీ ఫోన్ను అన్లాక్ చేయడానికి వాటిని మళ్లీ సెటప్ చేయండి."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"ఫేస్ అన్లాక్ను మళ్లీ సెటప్ చేయండి"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"మీ ఫేస్ మోడల్ సరిగ్గా పని చేయడం లేదు, తొలగించబడింది. ఫేస్తో మీ ఫోన్ను అన్లాక్ చేయడానికి దాన్ని మళ్లీ సెటప్ చేయండి."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"సెటప్ చేయండి"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ఇప్పుడు కాదు"</string> </resources> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 284a5f273f22..59809c92ed96 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"ตัวช่วยเสียง"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"ปิดล็อก"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"การแจ้งเตือนใหม่"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"แป้นพิมพ์จริง"</string> <string name="notification_channel_security" msgid="8516754650348238057">"ความปลอดภัย"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"เปิด Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"วิธีการทำงาน"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"รอดำเนินการ..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"ตั้งค่าการปลดล็อกด้วยลายนิ้วมืออีกครั้ง"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g>ทำงานได้ไม่ดีและถูกลบออกไปแล้ว ตั้งค่าอีกครั้งเพื่อปลดล็อกโทรศัพท์ด้วยลายนิ้วมือ"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> และ <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ทำงานได้ไม่ดีและถูกลบออกไปแล้ว ตั้งค่าอีกครั้งเพื่อปลดล็อกโทรศัพท์ด้วยลายนิ้วมือ"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"ตั้งค่าการปลดล็อกด้วยใบหน้าอีกครั้ง"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"รูปแบบใบหน้าของคุณทำงานได้ไม่ดีและถูกลบออกไปแล้ว ตั้งค่าอีกครั้งเพื่อปลดล็อกโทรศัพท์ด้วยใบหน้า"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"ตั้งค่า"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ไว้ทีหลัง"</string> </resources> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 4dd488681f5b..7ba81ad9b55e 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Voice Assist"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"I-lockdown"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Bagong notification"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Pisikal na keyboard"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Seguridad"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Buksan ang Messages"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Paano ito gumagana"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Nakabinbin..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"I-set up ulit ang Pag-unlock Gamit ang Fingerprint"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Hindi gumagana nang maayos ang <xliff:g id="FINGERPRINT">%s</xliff:g> at na-delete na ito. I-set up ulit ito para ma-unlock ang iyong telepono sa pamamagitan ng fingerprint."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Hindi gumagana nang maayos ang <xliff:g id="FINGERPRINT_0">%1$s</xliff:g> at <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> at na-delete na ang mga ito. I-set up ulit ang mga ito para ma-unlock ang iyong telepono gamit ang fingerprint mo."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"I-set up ulit ang Pag-unlock Gamit ang Mukha"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Hindi gumagana nang maayos ang iyong face model at na-delete na ito. I-set up ulit ito para ma-unlock ang iyong telepono sa pamamagitan ng mukha."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"I-set up"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Huwag muna"</string> </resources> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 2b616defdaa6..64498b524b24 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Sesli Yardım"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Tam kilitleme"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Yeni bildirim"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fiziksel klavye"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Güvenlik"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Mesajlar\'ı aç"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"İşleyiş şekli"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Bekliyor..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Parmak İzi Kilidi\'ni tekrar kurun"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> iyi çalışmadığı için silindi. Telefonunuzun kilidini parmak iziyle açmak için tekrar kurun."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> ve <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> iyi çalışmadığı için silindi. Telefonunuzun kilidini parmak izinizle açmak için tekrar kurun."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Yüz Tanıma Kilidi\'ni tekrar kurun"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Yüz modeliniz iyi çalışmadığı için silindi. Telefonunuzun kilidini yüzünüzle açmak için tekrar kurun."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Ayarla"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Şimdi değil"</string> </resources> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 850e21b15ef9..fcea7bb43e01 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -285,6 +285,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Голос. підказки"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Блокування"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Нове сповіщення"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Фізична клавіатура"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Безпека"</string> @@ -2415,22 +2417,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Відкрийте Повідомлення"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Як це працює"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Обробка…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Налаштуйте розблокування відбитком пальця повторно"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"Відбиток \"<xliff:g id="FINGERPRINT">%s</xliff:g>\" працював неналежним чином, і його видалено. Налаштуйте його ще раз, щоб розблоковувати телефон за допомогою відбитка пальця."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"Відбитки \"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>\" і \"<xliff:g id="FINGERPRINT_1">%2$s</xliff:g>\" працювали неналежним чином, і їх видалено. Налаштуйте їх ще раз, щоб розблоковувати телефон за допомогою відбитка пальця."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Налаштуйте фейс-контроль повторно"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Модель обличчя працювала неналежним чином, і її видалено. Налаштуйте її ще раз, щоб розблоковувати телефон за допомогою фейс-контролю."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Налаштувати"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Не зараз"</string> </resources> diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml index d3fde3c4f455..fc23d99d03d8 100644 --- a/core/res/res/values-ur/strings.xml +++ b/core/res/res/values-ur/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Voice Assist"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"مقفل"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"نئی اطلاع"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"فزیکل کی بورڈ"</string> <string name="notification_channel_security" msgid="8516754650348238057">"سیکیورٹی"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"پیغامات ایپ کو کھولیں"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"اس کے کام کرنے کا طریقہ"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"زیر التواء..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"فنگر پرنٹ اَن لاک کو دوبارہ سیٹ اپ کریں"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> اچھی طرح کام نہیں کر رہا تھا اور حذف کر دیا گیا تھا۔ اپنے فون کو فنگر پرنٹ سے غیر مقفل کرنے کے لیے، اسے دوبارہ سیٹ اپ کریں۔"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> اور <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> اچھی طرح کام نہیں کر رہے تھے اور انہیں حذف کر دیا گیا تھا۔ اپنے فون کو اپنے فنگر پرنٹ سے غیر مقفل کرنے کے لیے انہیں دوبارہ سیٹ اپ کریں۔"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"فیس اَن لاک کو دوبارہ سیٹ اپ کریں"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"آپ کے چہرے کا ماڈل اچھی طرح کام نہیں کر رہا تھا اور حذف کر دیا گیا تھا۔ اپنے فون کو چہرے سے غیر مقفل کرنے کے لیے، اسے دوبارہ سیٹ اپ کریں۔"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"سیٹ اپ کریں"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"ابھی نہیں"</string> </resources> diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml index c143244db230..0ef4ddc4cc0b 100644 --- a/core/res/res/values-uz/strings.xml +++ b/core/res/res/values-uz/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Ovozli yordam"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Qulflash"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Yangi bildirishnoma"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Tashqi klaviatura"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Xavfsizlik"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Xabarlar ilovasini ochish"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Ishlash tartibi"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Kutilmoqda..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Barmoq izi bilan ochish funksiyasini qayta sozlang"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> yaxshi ishlamadi va oʻchirib tashlandi. Telefonni barmoq izi bilan ochish uchun uni qayta sozlang."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> va <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> yaxshi ishlamadi va oʻchirib tashlandi. Telefonni barmoq izi bilan ochish uchun ularni qayta sozlang."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Yuz bilan ochishni qayta sozlash"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Yuzingiz mobeli yaxshi ishlamadi va oʻchirib tashlandi. Telefonni yuz bilan ochish uchun uni qayta sozlang."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Sozlash"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Hozir emas"</string> </resources> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index a0775d400d5d..6ff6528878e3 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Trợ lý thoại"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Khóa"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Thông báo mới"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Bàn phím vật lý"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Bảo mật"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Mở ứng dụng Tin nhắn"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Cách hoạt động"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Đang chờ xử lý..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Thiết lập lại tính năng Mở khoá bằng vân tay"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"<xliff:g id="FINGERPRINT">%s</xliff:g> không dùng được và đã bị xoá. Hãy thiết lập lại để mở khoá điện thoại bằng vân tay."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> và <xliff:g id="FINGERPRINT_1">%2$s</xliff:g> không dùng được và đã bị xoá. Hãy thiết lập lại để mở khoá điện thoại bằng vân tay."</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Thiết lập lại tính năng Mở khoá bằng khuôn mặt"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Mẫu khuôn mặt của bạn không dùng được và đã bị xoá. Hãy thiết lập lại để mở khoá điện thoại bằng khuôn mặt."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Thiết lập"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Để sau"</string> </resources> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index 00dd3db2b35a..10243220d600 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"语音助理"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"锁定"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"新通知"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"实体键盘"</string> <string name="notification_channel_security" msgid="8516754650348238057">"安全性"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"打开“信息”应用"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"运作方式"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"待归档…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"重新设置指纹解锁功能"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"“<xliff:g id="FINGERPRINT">%s</xliff:g>”无法正常使用,系统已将其删除。如要通过指纹解锁功能来解锁手机,请重新设置。"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"“<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>”和“<xliff:g id="FINGERPRINT_1">%2$s</xliff:g>”无法正常使用,系统已将它们删除。如要通过指纹解锁功能来解锁手机,请重新设置。"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"重新设置“人脸解锁”功能"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"您的脸部模型无法正常使用,系统已将其删除。如要通过人脸解锁功能来解锁手机,请重新设置。"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"设置"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"以后再说"</string> </resources> diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index 142940a86ebb..b1157f7df6d5 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"語音助手"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"鎖定"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"新通知"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"實體鍵盤"</string> <string name="notification_channel_security" msgid="8516754650348238057">"安全性"</string> @@ -651,11 +653,11 @@ <string name="biometric_error_generic" msgid="6784371929985434439">"驗證時發生錯誤"</string> <string name="screen_lock_app_setting_name" msgid="6054944352976789228">"使用螢幕鎖定"</string> <string name="screen_lock_dialog_default_subtitle" msgid="120359538048533695">"如要繼續操作,請輸入螢幕鎖定解鎖憑證"</string> - <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"請用力按住感應器"</string> + <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"請按住感應器"</string> <string name="fingerprint_acquired_insufficient" msgid="2410176550915730974">"無法辨識指紋,請再試一次。"</string> <string name="fingerprint_acquired_imager_dirty" msgid="1770676120848224250">"請清潔指紋感應器,然後再試一次"</string> <string name="fingerprint_acquired_imager_dirty_alt" msgid="9169582140486372897">"請清潔感應器,然後再試一次"</string> - <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"請用力按住感應器"</string> + <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"請按住感應器"</string> <string name="fingerprint_acquired_too_slow" msgid="6683510291554497580">"手指移動太慢,請重試。"</string> <string name="fingerprint_acquired_already_enrolled" msgid="2285166003936206785">"改用其他指紋"</string> <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"太亮"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"開啟「訊息」"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"運作方式"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"待處理…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"重新設定「指紋解鎖」功能"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"由於「<xliff:g id="FINGERPRINT">%s</xliff:g>」無法正常運作,因此系統已將其刪除。請重新設定,才能使用指紋解鎖手機。"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"由於「<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>」和「<xliff:g id="FINGERPRINT_1">%2$s</xliff:g>」無法正常運作,因此系統已將其刪除。請重新設定,才能使用指紋解鎖手機。"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"重新設定「面孔解鎖」功能"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"由於面部模型無法正常運作,因此系統已將其刪除。請重新設定,才能使用面孔解鎖手機。"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"設定"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"暫時不要"</string> </resources> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index b7ee23c23f21..da43a12f8fe1 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"語音小幫手"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"鎖定"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"超過 999"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"新通知"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"實體鍵盤"</string> <string name="notification_channel_security" msgid="8516754650348238057">"安全性"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"開啟「訊息」應用程式"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"運作方式"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"待處理…"</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"重新設定指紋解鎖"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"「<xliff:g id="FINGERPRINT">%s</xliff:g>」無法正常運作,因此系統已將其刪除。請重新設定,才能用指紋解鎖手機。"</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"「<xliff:g id="FINGERPRINT_0">%1$s</xliff:g>」和「<xliff:g id="FINGERPRINT_1">%2$s</xliff:g>」無法正常運作,因此系統已將其刪除。請重新設定,才能用指紋解鎖手機。"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"重新設定人臉解鎖"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"臉部模型無法正常運作,因此系統已將其刪除。請重新設定,才能用臉解鎖手機。"</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"設定"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"暫時不要"</string> </resources> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index a967fb6f1ad1..7749b1b6f04c 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -283,6 +283,8 @@ <string name="global_action_voice_assist" msgid="6655788068555086695">"Isisekeli sezwi"</string> <string name="global_action_lockdown" msgid="2475471405907902963">"Khiya"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> + <!-- no translation found for notification_compact_heads_up_reply (2425293958371284340) --> + <skip /> <string name="notification_hidden_text" msgid="2835519769868187223">"Isaziso esisha"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Ikhibhodi ephathekayo"</string> <string name="notification_channel_security" msgid="8516754650348238057">"Ukuphepha"</string> @@ -2413,22 +2415,15 @@ <string name="satellite_notification_open_message" msgid="4149234979688273729">"Vula Imilayezo"</string> <string name="satellite_notification_how_it_works" msgid="3132069321977520519">"Indlela esebenza ngayo"</string> <string name="unarchival_session_app_label" msgid="6811856981546348205">"Ilindile..."</string> - <!-- no translation found for fingerprint_dangling_notification_title (7362075195588639989) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_1 (6261149111900787302) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_2 (7688302770424064884) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_1 (2927018569542316055) --> - <skip /> - <!-- no translation found for fingerprint_dangling_notification_msg_all_deleted_2 (6897989352716156176) --> - <skip /> - <!-- no translation found for face_dangling_notification_title (947852541060975473) --> - <skip /> - <!-- no translation found for face_dangling_notification_msg (8806849376915541655) --> - <skip /> - <!-- no translation found for biometric_dangling_notification_action_set_up (8246885009807817961) --> + <string name="fingerprint_dangling_notification_title" msgid="7362075195588639989">"Setha Ukuvula ngesigxivizo somunwe futhi"</string> + <!-- no translation found for fingerprint_dangling_notification_msg_1 (8517140433796229725) --> <skip /> - <!-- no translation found for biometric_dangling_notification_action_not_now (8095249216864443491) --> + <!-- no translation found for fingerprint_dangling_notification_msg_2 (7578829498452127613) --> <skip /> + <string name="fingerprint_dangling_notification_msg_all_deleted_1" msgid="2927018569542316055">"I-<xliff:g id="FINGERPRINT">%s</xliff:g> ibingasebenzi kahle futhi isuliwe. Phinde uyisethe ukuze uvule ifoni yakho ngesigxivizo somunwe."</string> + <string name="fingerprint_dangling_notification_msg_all_deleted_2" msgid="6897989352716156176">"I-<xliff:g id="FINGERPRINT_0">%1$s</xliff:g> kanye ne-<xliff:g id="FINGERPRINT_1">%2$s</xliff:g> ibingasebenzi kahle futhi isuliwe. Phinde uyisethe ukuze uvule ifoni yakho ngesigxivizo somunwe wakho"</string> + <string name="face_dangling_notification_title" msgid="947852541060975473">"Setha Ukuvula Ngobuso futhi"</string> + <string name="face_dangling_notification_msg" msgid="8806849376915541655">"Imodeli yobuso yakho ibingasebenzi kahle futhi isuliwe. Phinde uyisethe ukuze uvule ifoni yakho ngobuso."</string> + <string name="biometric_dangling_notification_action_set_up" msgid="8246885009807817961">"Setha"</string> + <string name="biometric_dangling_notification_action_not_now" msgid="8095249216864443491">"Hhayi manje"</string> </resources> diff --git a/libs/WindowManager/Shell/aconfig/multitasking.aconfig b/libs/WindowManager/Shell/aconfig/multitasking.aconfig index 8977d5cad780..66d48799204c 100644 --- a/libs/WindowManager/Shell/aconfig/multitasking.aconfig +++ b/libs/WindowManager/Shell/aconfig/multitasking.aconfig @@ -78,3 +78,10 @@ flag { description: "Allow opening bubbles overflow UI without bubbles being visible" bug: "340337839" } + +flag { + name: "enable_bubble_stashing" + namespace: "multitasking" + description: "Allow the floating bubble stack to stash on the edge of the screen" + bug: "341361249" +} diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubblePositionerTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubblePositionerTest.kt index 8487e3792993..9e1440d5716b 100644 --- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubblePositionerTest.kt +++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/BubblePositionerTest.kt @@ -218,11 +218,10 @@ class BubblePositionerTest { insets = Insets.of(10, 20, 5, 15), windowBounds = Rect(0, 0, 1800, 2600) ) - val bubbleBarBounds = Rect(1700, 2500, 1780, 2600) positioner.setShowingInBubbleBar(true) positioner.update(deviceConfig) - positioner.bubbleBarBounds = bubbleBarBounds + positioner.bubbleBarTopOnScreen = 2500 val spaceBetweenTopInsetAndBubbleBarInLandscape = 1680 val expandedViewVerticalSpacing = @@ -246,10 +245,9 @@ class BubblePositionerTest { insets = Insets.of(10, 20, 5, 15), windowBounds = Rect(0, 0, screenWidth, 2600) ) - val bubbleBarBounds = Rect(100, 2500, 280, 2550) positioner.setShowingInBubbleBar(true) positioner.update(deviceConfig) - positioner.bubbleBarBounds = bubbleBarBounds + positioner.bubbleBarTopOnScreen = 2500 val spaceBetweenTopInsetAndBubbleBarInLandscape = 180 val expandedViewSpacing = @@ -597,16 +595,19 @@ class BubblePositionerTest { private fun testGetBubbleBarExpandedViewBounds(onLeft: Boolean, isOverflow: Boolean) { positioner.setShowingInBubbleBar(true) + val windowBounds = Rect(0, 0, 2000, 2600) + val insets = Insets.of(10, 20, 5, 15) val deviceConfig = defaultDeviceConfig.copy( isLargeScreen = true, isLandscape = true, - insets = Insets.of(10, 20, 5, 15), - windowBounds = Rect(0, 0, 2000, 2600) + insets = insets, + windowBounds = windowBounds ) positioner.update(deviceConfig) - positioner.bubbleBarBounds = getBubbleBarBounds(onLeft, deviceConfig) + val bubbleBarHeight = 100 + positioner.bubbleBarTopOnScreen = windowBounds.bottom - insets.bottom - bubbleBarHeight val expandedViewPadding = context.resources.getDimensionPixelSize(R.dimen.bubble_expanded_view_padding) @@ -624,7 +625,7 @@ class BubblePositionerTest { left = right - positioner.getExpandedViewWidthForBubbleBar(isOverflow) } // Above the bubble bar - val bottom = positioner.bubbleBarBounds.top - expandedViewPadding + val bottom = positioner.bubbleBarTopOnScreen - expandedViewPadding // Calculate right and top based on size val top = bottom - positioner.getExpandedViewHeightForBubbleBar(isOverflow) val expectedBounds = Rect(left, top, right, bottom) @@ -666,21 +667,4 @@ class BubblePositionerTest { positioner.getAllowableStackPositionRegion(1 /* bubbleCount */) return allowableStackRegion.top + allowableStackRegion.height() * offsetPercent } - - private fun getBubbleBarBounds(onLeft: Boolean, deviceConfig: DeviceConfig): Rect { - val width = 200 - val height = 100 - val bottom = deviceConfig.windowBounds.bottom - deviceConfig.insets.bottom - val top = bottom - height - val left: Int - val right: Int - if (onLeft) { - left = deviceConfig.insets.left - right = left + width - } else { - right = deviceConfig.windowBounds.right - deviceConfig.insets.right - left = right - width - } - return Rect(left, top, right, bottom) - } } diff --git a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleExpandedViewPinControllerTest.kt b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleExpandedViewPinControllerTest.kt index 076414132e27..12d19279111a 100644 --- a/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleExpandedViewPinControllerTest.kt +++ b/libs/WindowManager/Shell/multivalentTests/src/com/android/wm/shell/bubbles/bar/BubbleExpandedViewPinControllerTest.kt @@ -53,7 +53,6 @@ class BubbleExpandedViewPinControllerTest { const val SCREEN_WIDTH = 2000 const val SCREEN_HEIGHT = 1000 - const val BUBBLE_BAR_WIDTH = 100 const val BUBBLE_BAR_HEIGHT = 50 } @@ -84,14 +83,8 @@ class BubbleExpandedViewPinControllerTest { insets = Insets.of(10, 20, 30, 40) ) positioner.update(deviceConfig) - positioner.bubbleBarBounds = - Rect( - SCREEN_WIDTH - deviceConfig.insets.right - BUBBLE_BAR_WIDTH, - SCREEN_HEIGHT - deviceConfig.insets.bottom - BUBBLE_BAR_HEIGHT, - SCREEN_WIDTH - deviceConfig.insets.right, - SCREEN_HEIGHT - deviceConfig.insets.bottom - ) - + positioner.bubbleBarTopOnScreen = + SCREEN_HEIGHT - deviceConfig.insets.bottom - BUBBLE_BAR_HEIGHT controller = BubbleExpandedViewPinController(context, container, positioner) testListener = TestLocationChangeListener() controller.setListener(testListener) @@ -247,9 +240,10 @@ class BubbleExpandedViewPinControllerTest { private val dropTargetView: View? get() = container.findViewById(R.id.bubble_bar_drop_target) - private fun getExpectedDropTargetBounds(onLeft: Boolean): Rect = Rect().also { - positioner.getBubbleBarExpandedViewBounds(onLeft, false /* isOveflowExpanded */, it) - } + private fun getExpectedDropTargetBounds(onLeft: Boolean): Rect = + Rect().also { + positioner.getBubbleBarExpandedViewBounds(onLeft, false /* isOveflowExpanded */, it) + } private fun runOnMainSync(runnable: Runnable) { InstrumentationRegistry.getInstrumentation().runOnMainSync(runnable) diff --git a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/DesktopModeStatus.java b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/DesktopModeStatus.java index bdd89c0e1ac9..8d8655addc65 100644 --- a/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/DesktopModeStatus.java +++ b/libs/WindowManager/Shell/shared/src/com/android/wm/shell/shared/DesktopModeStatus.java @@ -67,6 +67,16 @@ public class DesktopModeStatus { private static final boolean ENFORCE_DEVICE_RESTRICTIONS = SystemProperties.getBoolean( "persist.wm.debug.desktop_mode_enforce_device_restrictions", true); + /** Override density for tasks when they're inside the desktop. */ + public static final int DESKTOP_DENSITY_OVERRIDE = + SystemProperties.getInt("persist.wm.debug.desktop_mode_density", 284); + + /** The minimum override density allowed for tasks inside the desktop. */ + private static final int DESKTOP_DENSITY_MIN = 100; + + /** The maximum override density allowed for tasks inside the desktop. */ + private static final int DESKTOP_DENSITY_MAX = 1000; + /** * Default value for {@code MAX_TASK_LIMIT}. */ @@ -145,4 +155,12 @@ public class DesktopModeStatus { public static boolean canEnterDesktopMode(@NonNull Context context) { return (!enforceDeviceRestrictions() || isDesktopModeSupported(context)) && isEnabled(); } + + /** + * Return {@code true} if the override desktop density is set. + */ + public static boolean isDesktopDensityOverrideSet() { + return DESKTOP_DENSITY_OVERRIDE >= DESKTOP_DENSITY_MIN + && DESKTOP_DENSITY_OVERRIDE <= DESKTOP_DENSITY_MAX; + } } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java index 38c344322a30..42a4ab2e352d 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java @@ -1189,10 +1189,12 @@ public class BubbleController implements ConfigurationChangeListener, * A bubble is no longer being dragged in Launcher. And was released in given location. * Will be called only when bubble bar is expanded. * - * @param location location where bubble was released + * @param location location where bubble was released + * @param topOnScreen top coordinate of the bubble bar on the screen after release */ - public void stopBubbleDrag(BubbleBarLocation location) { + public void stopBubbleDrag(BubbleBarLocation location, int topOnScreen) { mBubblePositioner.setBubbleBarLocation(location); + mBubblePositioner.setBubbleBarTopOnScreen(topOnScreen); if (mBubbleData.getSelectedBubble() != null) { mBubbleBarViewCallback.expansionChanged(/* isExpanded = */ true); } @@ -1248,8 +1250,8 @@ public class BubbleController implements ConfigurationChangeListener, * <p>This is used by external callers (launcher). */ @VisibleForTesting - public void expandStackAndSelectBubbleFromLauncher(String key, Rect bubbleBarBounds) { - mBubblePositioner.setBubbleBarBounds(bubbleBarBounds); + public void expandStackAndSelectBubbleFromLauncher(String key, int topOnScreen) { + mBubblePositioner.setBubbleBarTopOnScreen(topOnScreen); if (BubbleOverflow.KEY.equals(key)) { mBubbleData.setSelectedBubbleFromLauncher(mBubbleData.getOverflow()); @@ -2364,10 +2366,9 @@ public class BubbleController implements ConfigurationChangeListener, } @Override - public void showBubble(String key, Rect bubbleBarBounds) { + public void showBubble(String key, int topOnScreen) { mMainExecutor.execute( - () -> mController.expandStackAndSelectBubbleFromLauncher( - key, bubbleBarBounds)); + () -> mController.expandStackAndSelectBubbleFromLauncher(key, topOnScreen)); } @Override @@ -2386,8 +2387,8 @@ public class BubbleController implements ConfigurationChangeListener, } @Override - public void stopBubbleDrag(BubbleBarLocation location) { - mMainExecutor.execute(() -> mController.stopBubbleDrag(location)); + public void stopBubbleDrag(BubbleBarLocation location, int topOnScreen) { + mMainExecutor.execute(() -> mController.stopBubbleDrag(location, topOnScreen)); } @Override @@ -2408,9 +2409,9 @@ public class BubbleController implements ConfigurationChangeListener, } @Override - public void setBubbleBarBounds(Rect bubbleBarBounds) { + public void updateBubbleBarTopOnScreen(int topOnScreen) { mMainExecutor.execute(() -> { - mBubblePositioner.setBubbleBarBounds(bubbleBarBounds); + mBubblePositioner.setBubbleBarTopOnScreen(topOnScreen); if (mLayerView != null) mLayerView.updateExpandedView(); }); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java index a35a004cdace..1e482cac0b46 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java @@ -98,7 +98,7 @@ public class BubblePositioner { private boolean mShowingInBubbleBar; private BubbleBarLocation mBubbleBarLocation = BubbleBarLocation.DEFAULT; - private final Rect mBubbleBarBounds = new Rect(); + private int mBubbleBarTopOnScreen; public BubblePositioner(Context context, WindowManager windowManager) { mContext = context; @@ -846,17 +846,17 @@ public class BubblePositioner { } /** - * Sets the position of the bubble bar in display coordinates. + * Set top coordinate of bubble bar on screen */ - public void setBubbleBarBounds(Rect bubbleBarBounds) { - mBubbleBarBounds.set(bubbleBarBounds); + public void setBubbleBarTopOnScreen(int topOnScreen) { + mBubbleBarTopOnScreen = topOnScreen; } /** - * Returns the display coordinates of the bubble bar. + * Returns the top coordinate of bubble bar on screen */ - public Rect getBubbleBarBounds() { - return mBubbleBarBounds; + public int getBubbleBarTopOnScreen() { + return mBubbleBarTopOnScreen; } /** @@ -908,7 +908,7 @@ public class BubblePositioner { /** The bottom position of the expanded view when showing above the bubble bar. */ public int getExpandedViewBottomForBubbleBar() { - return mBubbleBarBounds.top - mExpandedViewPadding; + return mBubbleBarTopOnScreen - mExpandedViewPadding; } /** diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/IBubbles.aidl b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/IBubbles.aidl index 1eff149f2e91..1db556c04180 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/IBubbles.aidl +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/IBubbles.aidl @@ -31,7 +31,7 @@ interface IBubbles { oneway void unregisterBubbleListener(in IBubblesListener listener) = 2; - oneway void showBubble(in String key, in Rect bubbleBarBounds) = 3; + oneway void showBubble(in String key, in int topOnScreen) = 3; oneway void dragBubbleToDismiss(in String key) = 4; @@ -45,7 +45,7 @@ interface IBubbles { oneway void setBubbleBarLocation(in BubbleBarLocation location) = 9; - oneway void setBubbleBarBounds(in Rect bubbleBarBounds) = 10; + oneway void updateBubbleBarTopOnScreen(in int topOnScreen) = 10; - oneway void stopBubbleDrag(in BubbleBarLocation location) = 11; + oneway void stopBubbleDrag(in BubbleBarLocation location, in int topOnScreen) = 11; }
\ No newline at end of file diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarAnimationHelper.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarAnimationHelper.java index 45ad6319bbf8..8e58db198b13 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarAnimationHelper.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/bar/BubbleBarAnimationHelper.java @@ -237,12 +237,10 @@ public class BubbleBarAnimationHelper { private void setScaleFromBubbleBar(AnimatableScaleMatrix matrix, float scale) { // Set the pivot point for the scale, so the view animates out from the bubble bar. - Rect bubbleBarBounds = mPositioner.getBubbleBarBounds(); - matrix.setScale( - scale, - scale, - bubbleBarBounds.centerX(), - bubbleBarBounds.top); + Rect availableRect = mPositioner.getAvailableRect(); + float pivotX = mPositioner.isBubbleBarOnLeft() ? availableRect.left : availableRect.right; + float pivotY = mPositioner.getBubbleBarTopOnScreen(); + matrix.setScale(scale, scale, pivotX, pivotY); } /** diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt index 79a209016f59..e5bf53a4afdb 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt @@ -73,6 +73,8 @@ import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE import com.android.wm.shell.recents.RecentsTransitionHandler import com.android.wm.shell.recents.RecentsTransitionStateListener import com.android.wm.shell.shared.DesktopModeStatus +import com.android.wm.shell.shared.DesktopModeStatus.DESKTOP_DENSITY_OVERRIDE +import com.android.wm.shell.shared.DesktopModeStatus.isDesktopDensityOverrideSet import com.android.wm.shell.shared.annotations.ExternalThread import com.android.wm.shell.shared.annotations.ShellMainThread import com.android.wm.shell.splitscreen.SplitScreenController @@ -910,15 +912,18 @@ class DesktopTasksController( wct.reorder(task.token, true) } } + val wct = WindowContainerTransaction() + if (isDesktopDensityOverrideSet()) { + wct.setDensityDpi(task.token, DESKTOP_DENSITY_OVERRIDE) + } // Desktop Mode is showing and we're launching a new Task - we might need to minimize // a Task. - val wct = WindowContainerTransaction() val taskToMinimize = addAndGetMinimizeChangesIfNeeded(task.displayId, wct, task) if (taskToMinimize != null) { addPendingMinimizeTransition(transition, taskToMinimize) return wct } - return null + return if (wct.isEmpty) null else wct } private fun handleFullscreenTaskLaunch( @@ -986,7 +991,7 @@ class DesktopTasksController( wct.setWindowingMode(taskInfo.token, targetWindowingMode) wct.reorder(taskInfo.token, true /* onTop */) if (isDesktopDensityOverrideSet()) { - wct.setDensityDpi(taskInfo.token, getDesktopDensityDpi()) + wct.setDensityDpi(taskInfo.token, DESKTOP_DENSITY_OVERRIDE) } } @@ -1090,10 +1095,6 @@ class DesktopTasksController( return context.resources.displayMetrics.densityDpi } - private fun getDesktopDensityDpi(): Int { - return DESKTOP_DENSITY_OVERRIDE - } - /** Creates a new instance of the external interface to pass to another process. */ private fun createExternalInterface(): ExternalInterfaceBinder { return IDesktopModeImpl(this) @@ -1467,21 +1468,9 @@ class DesktopTasksController( } companion object { - private val DESKTOP_DENSITY_OVERRIDE = - SystemProperties.getInt("persist.wm.debug.desktop_mode_density", 284) - private val DESKTOP_DENSITY_ALLOWED_RANGE = (100..1000) - @JvmField val DESKTOP_MODE_INITIAL_BOUNDS_SCALE = SystemProperties .getInt("persist.wm.debug.desktop_mode_initial_bounds_scale", 75) / 100f - - /** - * Check if desktop density override is enabled - */ - @JvmStatic - fun isDesktopDensityOverrideSet(): Boolean { - return DESKTOP_DENSITY_OVERRIDE in DESKTOP_DENSITY_ALLOWED_RANGE - } } /** The positions on a screen that a task can snap to. */ diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java index 6e5b7673e206..0541a0287179 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenTransitions.java @@ -501,10 +501,11 @@ class SplitScreenTransitions { mAnimatingTransition = null; mOnFinish.run(); - if (mFinishCallback != null) { - mFinishCallback.onTransitionFinished(wct /* wct */); - mFinishCallback = null; - } + if (mFinishCallback != null) { + Transitions.TransitionFinishCallback currentFinishCallback = mFinishCallback; + mFinishCallback = null; + currentFinishCallback.onTransitionFinished(wct /* wct */); + } } private void startFadeAnimation(@NonNull SurfaceControl leash, boolean show) { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java index 18c31139575c..bb89adfeac1b 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java @@ -67,7 +67,6 @@ import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.SyncTransactionQueue; -import com.android.wm.shell.desktopmode.DesktopTasksController; import com.android.wm.shell.shared.DesktopModeStatus; import com.android.wm.shell.windowdecor.extension.TaskInfoKt; import com.android.wm.shell.windowdecor.viewholder.DesktopModeAppControlsWindowDecorationViewHolder; @@ -405,7 +404,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin // Should match the density of the task. The task may have had its density overridden // to be different that SysUI's. windowDecorConfig.setTo(taskInfo.configuration); - } else if (DesktopTasksController.isDesktopDensityOverrideSet()) { + } else if (DesktopModeStatus.isDesktopDensityOverrideSet()) { // The task has had its density overridden, but keep using the system's density to // layout the header. windowDecorConfig.setTo(context.getResources().getConfiguration()); @@ -966,7 +965,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, ResizeHandleSizeRepository resizeHandleSizeRepository) { final Configuration windowDecorConfig = - DesktopTasksController.isDesktopDensityOverrideSet() + DesktopModeStatus.isDesktopDensityOverrideSet() ? context.getResources().getConfiguration() // Use system context : taskInfo.configuration; // Use task configuration return new DesktopModeWindowDecoration( diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt index 14f57bd41e23..d8d534bec6ea 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt @@ -25,6 +25,7 @@ import android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED import android.content.Intent import android.content.pm.ActivityInfo +import android.content.pm.ActivityInfo.CONFIG_DENSITY import android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE import android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT import android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED @@ -115,6 +116,8 @@ import org.mockito.kotlin.atLeastOnce import org.mockito.kotlin.capture import org.mockito.quality.Strictness import java.util.Optional +import junit.framework.Assert.assertFalse +import junit.framework.Assert.assertTrue import org.mockito.Mockito.`when` as whenever /** @@ -1045,17 +1048,6 @@ class DesktopTasksControllerTest : ShellTestCase() { } @Test - fun handleRequest_freeformTask_freeformVisible_returnNull() { - assumeTrue(ENABLE_SHELL_TRANSITIONS) - - val freeformTask1 = setUpFreeformTask() - markTaskVisible(freeformTask1) - - val freeformTask2 = createFreeformTask() - assertThat(controller.handleRequest(Binder(), createTransition(freeformTask2))).isNull() - } - - @Test fun handleRequest_freeformTask_freeformVisible_aboveTaskLimit_minimize() { assumeTrue(ENABLE_SHELL_TRANSITIONS) @@ -1113,6 +1105,34 @@ class DesktopTasksControllerTest : ShellTestCase() { } @Test + fun handleRequest_freeformTask_alreadyInDesktop_noOverrideDensity_noConfigDensityChange() { + assumeTrue(ENABLE_SHELL_TRANSITIONS) + whenever(DesktopModeStatus.isDesktopDensityOverrideSet()).thenReturn(false) + + val freeformTask1 = setUpFreeformTask() + markTaskVisible(freeformTask1) + + val freeformTask2 = createFreeformTask() + val result = controller.handleRequest(freeformTask2.token.asBinder(), + createTransition(freeformTask2)) + assertFalse(result.anyDensityConfigChange(freeformTask2.token)) + } + + @Test + fun handleRequest_freeformTask_alreadyInDesktop_overrideDensity_hasConfigDensityChange() { + assumeTrue(ENABLE_SHELL_TRANSITIONS) + whenever(DesktopModeStatus.isDesktopDensityOverrideSet()).thenReturn(true) + + val freeformTask1 = setUpFreeformTask() + markTaskVisible(freeformTask1) + + val freeformTask2 = createFreeformTask() + val result = controller.handleRequest(freeformTask2.token.asBinder(), + createTransition(freeformTask2)) + assertTrue(result.anyDensityConfigChange(freeformTask2.token)) + } + + @Test fun handleRequest_notOpenOrToFrontTransition_returnNull() { assumeTrue(ENABLE_SHELL_TRANSITIONS) @@ -1813,3 +1833,11 @@ private fun WindowContainerTransaction.assertPendingIntentAt(index: Int, intent: assertThat(op.type).isEqualTo(HIERARCHY_OP_TYPE_PENDING_INTENT) assertThat(op.pendingIntent?.intent?.component).isEqualTo(intent.component) } + +private fun WindowContainerTransaction?.anyDensityConfigChange( + token: WindowContainerToken +): Boolean { + return this?.changes?.any { change -> + change.key == token.asBinder() && ((change.value.configSetMask and CONFIG_DENSITY) != 0) + } ?: false +} diff --git a/media/java/android/media/IMediaRouter2.aidl b/media/java/android/media/IMediaRouter2.aidl index e2dddad274e1..85bc8efe2750 100644 --- a/media/java/android/media/IMediaRouter2.aidl +++ b/media/java/android/media/IMediaRouter2.aidl @@ -36,6 +36,5 @@ oneway interface IMediaRouter2 { * Call MediaRouterService#requestCreateSessionWithRouter2 to pass the result. */ void requestCreateSessionByManager(long uniqueRequestId, in RoutingSessionInfo oldSession, - in MediaRoute2Info route, in UserHandle transferInitiatorUserHandle, - in String transferInitiatorPackageName); + in MediaRoute2Info route); } diff --git a/media/java/android/media/IMediaRouterService.aidl b/media/java/android/media/IMediaRouterService.aidl index 63cb94516739..efbf8da6d17c 100644 --- a/media/java/android/media/IMediaRouterService.aidl +++ b/media/java/android/media/IMediaRouterService.aidl @@ -64,8 +64,7 @@ interface IMediaRouterService { void requestCreateSessionWithRouter2(IMediaRouter2 router, int requestId, long managerRequestId, in RoutingSessionInfo oldSession, in MediaRoute2Info route, - in @nullable Bundle sessionHints, in UserHandle transferInitiatorUserHandle, - in String transferInitiatorPackageName); + in @nullable Bundle sessionHints); void selectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void deselectRouteWithRouter2(IMediaRouter2 router, String sessionId, in MediaRoute2Info route); void transferToRouteWithRouter2(IMediaRouter2 router, String sessionId, diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java index 7ddf11e41a41..679e8a1b95e6 100644 --- a/media/java/android/media/MediaRouter2.java +++ b/media/java/android/media/MediaRouter2.java @@ -991,9 +991,7 @@ public final class MediaRouter2 { void requestCreateController( @NonNull RoutingController controller, @NonNull MediaRoute2Info route, - long managerRequestId, - @NonNull UserHandle transferInitiatorUserHandle, - @NonNull String transferInitiatorPackageName) { + long managerRequestId) { final int requestId = mNextRequestId.getAndIncrement(); @@ -1022,9 +1020,7 @@ public final class MediaRouter2 { managerRequestId, controller.getRoutingSessionInfo(), route, - controllerHints, - transferInitiatorUserHandle, - transferInitiatorPackageName); + controllerHints); } catch (RemoteException ex) { Log.e(TAG, "createControllerForTransfer: " + "Failed to request for creating a controller.", ex); @@ -1366,11 +1362,7 @@ public final class MediaRouter2 { } void onRequestCreateControllerByManagerOnHandler( - RoutingSessionInfo oldSession, - MediaRoute2Info route, - long managerRequestId, - @NonNull UserHandle transferInitiatorUserHandle, - @NonNull String transferInitiatorPackageName) { + RoutingSessionInfo oldSession, MediaRoute2Info route, long managerRequestId) { Log.i( TAG, TextUtils.formatSimple( @@ -1387,8 +1379,7 @@ public final class MediaRouter2 { if (controller == null) { return; } - requestCreateController(controller, route, managerRequestId, transferInitiatorUserHandle, - transferInitiatorPackageName); + requestCreateController(controller, route, managerRequestId); } private List<MediaRoute2Info> getSortedRoutes( @@ -2423,20 +2414,14 @@ public final class MediaRouter2 { @Override public void requestCreateSessionByManager( - long managerRequestId, - RoutingSessionInfo oldSession, - MediaRoute2Info route, - UserHandle transferInitiatorUserHandle, - String transferInitiatorPackageName) { + long managerRequestId, RoutingSessionInfo oldSession, MediaRoute2Info route) { mHandler.sendMessage( obtainMessage( MediaRouter2::onRequestCreateControllerByManagerOnHandler, MediaRouter2.this, oldSession, route, - managerRequestId, - transferInitiatorUserHandle, - transferInitiatorPackageName)); + managerRequestId)); } } @@ -3581,12 +3566,7 @@ public final class MediaRouter2 { RoutingController controller = getCurrentController(); if (!controller.tryTransferWithinProvider(route)) { - requestCreateController( - controller, - route, - MANAGER_REQUEST_ID_NONE, - Process.myUserHandle(), - mContext.getPackageName()); + requestCreateController(controller, route, MANAGER_REQUEST_ID_NONE); } } diff --git a/packages/CredentialManager/res/values-fr-rCA/strings.xml b/packages/CredentialManager/res/values-fr-rCA/strings.xml index 7b8093e416f0..d9715eefa955 100644 --- a/packages/CredentialManager/res/values-fr-rCA/strings.xml +++ b/packages/CredentialManager/res/values-fr-rCA/strings.xml @@ -48,7 +48,7 @@ <string name="passwords" msgid="5419394230391253816">"mots de passe"</string> <string name="sign_ins" msgid="4710739369149469208">"connexions"</string> <string name="sign_in_info" msgid="2627704710674232328">"renseignements de connexion"</string> - <string name="save_credential_to_title" msgid="3172811692275634301">"Enregistrer la <xliff:g id="CREDENTIALTYPES">%1$s</xliff:g> dans"</string> + <string name="save_credential_to_title" msgid="3172811692275634301">"Enregistrer le <xliff:g id="CREDENTIALTYPES">%1$s</xliff:g> dans"</string> <string name="create_passkey_in_other_device_title" msgid="2360053098931886245">"Créer une clé d\'accès sur un autre appareil?"</string> <string name="save_password_on_other_device_title" msgid="5829084591948321207">"Enregistrer le mot de passe sur un autre appareil?"</string> <string name="save_sign_in_on_other_device_title" msgid="2827990118560134692">"Enregistrer l\'authentifiant de connexion sur un autre appareil?"</string> @@ -57,9 +57,9 @@ <string name="set_as_default" msgid="4415328591568654603">"Définir par défaut"</string> <string name="settings" msgid="6536394145760913145">"Paramètres"</string> <string name="use_once" msgid="9027366575315399714">"Utiliser une fois"</string> - <string name="more_options_usage_passwords_passkeys" msgid="3470113942332934279">"<xliff:g id="PASSWORDSNUMBER">%1$s</xliff:g> mots de passe • <xliff:g id="PASSKEYSNUMBER">%2$s</xliff:g> clés d\'accès"</string> - <string name="more_options_usage_passwords" msgid="1632047277723187813">"<xliff:g id="PASSWORDSNUMBER">%1$s</xliff:g> mots de passe"</string> - <string name="more_options_usage_passkeys" msgid="5390320437243042237">"<xliff:g id="PASSKEYSNUMBER">%1$s</xliff:g> clés d\'accès"</string> + <string name="more_options_usage_passwords_passkeys" msgid="3470113942332934279">"<xliff:g id="PASSWORDSNUMBER">%1$s</xliff:g> mot(s) de passe • <xliff:g id="PASSKEYSNUMBER">%2$s</xliff:g> clé(s) d\'accès"</string> + <string name="more_options_usage_passwords" msgid="1632047277723187813">"<xliff:g id="PASSWORDSNUMBER">%1$s</xliff:g> mot(s) de passe"</string> + <string name="more_options_usage_passkeys" msgid="5390320437243042237">"<xliff:g id="PASSKEYSNUMBER">%1$s</xliff:g> clé(s) d\'accès"</string> <string name="more_options_usage_credentials" msgid="1785697001787193984">"<xliff:g id="TOTALCREDENTIALSNUMBER">%1$s</xliff:g> authentifiants"</string> <string name="passkey_before_subtitle" msgid="2448119456208647444">"Clé d\'accès"</string> <string name="another_device" msgid="5147276802037801217">"Un autre appareil"</string> diff --git a/packages/CredentialManager/res/values-hy/strings.xml b/packages/CredentialManager/res/values-hy/strings.xml index 3ec7da3721e8..630a08a7e903 100644 --- a/packages/CredentialManager/res/values-hy/strings.xml +++ b/packages/CredentialManager/res/values-hy/strings.xml @@ -24,15 +24,15 @@ <string name="string_learn_more" msgid="4541600451688392447">"Իմանալ ավելին"</string> <string name="content_description_show_password" msgid="3283502010388521607">"Ցուցադրել գաղտնաբառը"</string> <string name="content_description_hide_password" msgid="6841375971631767996">"Թաքցնել գաղտնաբառը"</string> - <string name="passkey_creation_intro_title" msgid="4251037543787718844">"Անցաբառերի հետ ավելի ապահով է"</string> - <string name="passkey_creation_intro_body_password" msgid="8825872426579958200">"Անցաբառերի շնորհիվ դուք բարդ գաղտնաբառեր ստեղծելու կամ հիշելու անհրաժեշտություն չեք ունենա"</string> - <string name="passkey_creation_intro_body_fingerprint" msgid="7331338631826254055">"Անցաբառերը գաղտնագրված թվային բանալիներ են, որոնք ստեղծվում են մատնահետքի, դեմքով ապակողպման կամ էկրանի կողպման օգտագործմամբ"</string> + <string name="passkey_creation_intro_title" msgid="4251037543787718844">"Մուտքի բանալիների հետ ավելի ապահով է"</string> + <string name="passkey_creation_intro_body_password" msgid="8825872426579958200">"Մուտքի բանալիների շնորհիվ դուք բարդ գաղտնաբառեր ստեղծելու կամ հիշելու անհրաժեշտություն չեք ունենա"</string> + <string name="passkey_creation_intro_body_fingerprint" msgid="7331338631826254055">"Մուտքի բանալիները գաղտնագրված թվային բանալիներ են, որոնք ստեղծվում են մատնահետքի, դեմքով ապակողպման կամ էկրանի կողպման օգտագործմամբ"</string> <string name="passkey_creation_intro_body_device" msgid="1203796455762131631">"Դուք կարող եք մուտք գործել այլ սարքերում, քանի որ մուտքի բանալիները պահվում են գաղտնաբառերի կառավարիչում"</string> <string name="more_about_passkeys_title" msgid="7797903098728837795">"Ավելին՝ մուտքի բանալիների մասին"</string> <string name="passwordless_technology_title" msgid="2497513482056606668">"Գաղտնաբառեր չպահանջող տեխնոլոգիա"</string> <string name="passwordless_technology_detail" msgid="6853928846532955882">"Մուտքի բանալիները ձեզ թույլ են տալիս մուտք գործել առանց գաղտնաբառերի։ Ձեզ պարզապես հարկավոր է օգտագործել ձեր մատնահետքը, դիմաճանաչումը, PIN կոդը կամ նախշը՝ ձեր ինքնությունը հաստատելու և մուտքի բանալի ստեղծելու համար։"</string> <string name="public_key_cryptography_title" msgid="6751970819265298039">"Բաց բանալու կրիպտոգրաֆիա"</string> - <string name="public_key_cryptography_detail" msgid="6937631710280562213">"Ըստ FIDO դաշինքի (որը ներառում է Google-ը, Apple-ը, Microsoft-ը և այլ ընկերություններ) և W3C ստանդարտների՝ անցաբառերն օգտագործում են կրիպտոգրաֆիկ բանալիների զույգ։ Օգտանվան և գաղտնաբառի փոխարեն հավելվածի կամ կայքի համար մենք ստեղծում ենք բաց-փակ բանալիների զույգ։ Փակ բանալին ապահով պահվում է ձեր սարքում կամ գաղտնաբառերի կառավարիչում և հաստատում է ձեր ինքնությունը։ Բաց բանալին փոխանցվում է հավելվածի կամ կայքի սերվերին։ Համապատասխան բանալիների միջոցով կարող եք ակնթարթորեն գրանցվել և մուտք գործել։"</string> + <string name="public_key_cryptography_detail" msgid="6937631710280562213">"Ըստ FIDO դաշինքի (որը ներառում է Google-ը, Apple-ը, Microsoft-ը և այլ ընկերություններ) և W3C ստանդարտների՝ մուտքի բանալիներն օգտագործում են կրիպտոգրաֆիկ բանալիների զույգ։ Օգտանվան և գաղտնաբառի փոխարեն հավելվածի կամ կայքի համար մենք ստեղծում ենք բաց-փակ բանալիների զույգ։ Փակ բանալին ապահով պահվում է ձեր սարքում կամ գաղտնաբառերի կառավարիչում և հաստատում է ձեր ինքնությունը։ Բաց բանալին փոխանցվում է հավելվածի կամ կայքի սերվերին։ Համապատասխան բանալիների միջոցով կարող եք ակնթարթորեն գրանցվել և մուտք գործել։"</string> <string name="improved_account_security_title" msgid="1069841917893513424">"Հաշվի բարելավված անվտանգություն"</string> <string name="improved_account_security_detail" msgid="9123750251551844860">"Յուրաքանչյուր բանալի բացառապես կապված է հավելվածի կամ կայքի հետ, որի համար այն ստեղծվել է, ուստի դուք երբեք չեք կարող սխալմամբ մուտք գործել կեղծ հավելված կամ կայք։ Բացի այդ՝ սերվերներում պահվում են միայն բաց բանալիներ, ինչը զգալիորեն դժվարացնում է կոտրումը։"</string> <string name="seamless_transition_title" msgid="5335622196351371961">"Սահուն անցում"</string> @@ -61,7 +61,7 @@ <string name="more_options_usage_passwords" msgid="1632047277723187813">"<xliff:g id="PASSWORDSNUMBER">%1$s</xliff:g> գաղտնաբառ"</string> <string name="more_options_usage_passkeys" msgid="5390320437243042237">"<xliff:g id="PASSKEYSNUMBER">%1$s</xliff:g> մուտքի բանալի"</string> <string name="more_options_usage_credentials" msgid="1785697001787193984">"Մուտքի տվյալներ (<xliff:g id="TOTALCREDENTIALSNUMBER">%1$s</xliff:g>)"</string> - <string name="passkey_before_subtitle" msgid="2448119456208647444">"Անցաբառ"</string> + <string name="passkey_before_subtitle" msgid="2448119456208647444">"Մուտքի բանալի"</string> <string name="another_device" msgid="5147276802037801217">"Այլ սարք"</string> <string name="other_password_manager" msgid="565790221427004141">"Գաղտնաբառերի այլ կառավարիչներ"</string> <string name="close_sheet" msgid="1393792015338908262">"Փակել թերթը"</string> diff --git a/packages/CredentialManager/res/values-ka/strings.xml b/packages/CredentialManager/res/values-ka/strings.xml index 4224da6e70a4..452565cb95a9 100644 --- a/packages/CredentialManager/res/values-ka/strings.xml +++ b/packages/CredentialManager/res/values-ka/strings.xml @@ -74,7 +74,7 @@ <string name="get_dialog_description_single_tap" msgid="2797059565126030879">"გამოიყენეთ თქვენი ეკრანის დაბლოკვის ფუნქცია <xliff:g id="APP_NAME">%1$s</xliff:g>-ში <xliff:g id="USERNAME">%2$s</xliff:g>-ით შესასვლელად"</string> <string name="get_dialog_title_unlock_options_for" msgid="7096423827682163270">"შესვლის ვარიანტების განბლოკვა <xliff:g id="APP_NAME">%1$s</xliff:g>-ისთვის"</string> <string name="get_dialog_title_choose_passkey_for" msgid="9175997688078538490">"აირჩიეთ შენახული წვდომის გასაღები <xliff:g id="APP_NAME">%1$s</xliff:g>-სთვის"</string> - <string name="get_dialog_title_choose_password_for" msgid="1724435823820819221">"აირჩიეთ შენახული პაროლი <xliff:g id="APP_NAME">%1$s</xliff:g>-სთვის"</string> + <string name="get_dialog_title_choose_password_for" msgid="1724435823820819221">"აირჩიეთ შენახული პაროლი <xliff:g id="APP_NAME">%1$s</xliff:g>-ისთვის"</string> <string name="get_dialog_title_choose_saved_sign_in_for" msgid="2420298653461652728">"აირჩიეთ სისტემაში შესვლის ინფორმაცია <xliff:g id="APP_NAME">%1$s</xliff:g>-სთვის"</string> <string name="get_dialog_title_choose_sign_in_for" msgid="645728947702442421">"აირჩიეთ ანგარიში <xliff:g id="APP_NAME">%1$s</xliff:g>-ისთვის"</string> <string name="get_dialog_title_choose_option_for" msgid="4976380044745029107">"გსურთ აირჩიოთ ვარიანტი <xliff:g id="APP_NAME">%1$s</xliff:g>-ისთვის?"</string> diff --git a/packages/CredentialManager/res/values-kk/strings.xml b/packages/CredentialManager/res/values-kk/strings.xml index 2fd31ee90cdd..c3bfc4f09c59 100644 --- a/packages/CredentialManager/res/values-kk/strings.xml +++ b/packages/CredentialManager/res/values-kk/strings.xml @@ -90,7 +90,7 @@ <string name="locked_credential_entry_label_subtext_no_sign_in" msgid="8131725029983174901">"Кіру ақпараты жоқ."</string> <string name="no_sign_in_info_in" msgid="2641118151920288356">"<xliff:g id="SOURCE">%1$s</xliff:g> аккаунтында кіру туралы ешқандай ақпарат жоқ."</string> <string name="get_dialog_heading_manage_sign_ins" msgid="3522556476480676782">"Кіру әрекеттерін басқару"</string> - <string name="get_dialog_heading_from_another_device" msgid="1166697017046724072">"Басқа құрылғыдан жасау"</string> + <string name="get_dialog_heading_from_another_device" msgid="1166697017046724072">"Басқа құрылғыдан"</string> <string name="get_dialog_option_headline_use_a_different_device" msgid="8201578814988047549">"Басқа құрылғыны пайдалану"</string> <string name="request_cancelled_by" msgid="3735222326886267820">"<xliff:g id="APP_NAME">%1$s</xliff:g> қолданбасы сұрауды тоқтатты."</string> <string name="dropdown_presentation_more_sign_in_options_text" msgid="1693727354272417902">"Кіру опциялары"</string> diff --git a/packages/CredentialManager/res/values-ne/strings.xml b/packages/CredentialManager/res/values-ne/strings.xml index 07775e007835..7ac1d1ac4d94 100644 --- a/packages/CredentialManager/res/values-ne/strings.xml +++ b/packages/CredentialManager/res/values-ne/strings.xml @@ -91,7 +91,7 @@ <string name="no_sign_in_info_in" msgid="2641118151920288356">"<xliff:g id="SOURCE">%1$s</xliff:g> मा साइन इन गर्नेसम्बन्धी कुनै पनि जानकारी छैन"</string> <string name="get_dialog_heading_manage_sign_ins" msgid="3522556476480676782">"साइन इनसम्बन्धी विकल्पहरू व्यवस्थापन गर्नुहोस्"</string> <string name="get_dialog_heading_from_another_device" msgid="1166697017046724072">"अर्को डिभाइसका लागि"</string> - <string name="get_dialog_option_headline_use_a_different_device" msgid="8201578814988047549">"अर्कै डिभाइस प्रयोग गरी हेर्नुहोस्"</string> + <string name="get_dialog_option_headline_use_a_different_device" msgid="8201578814988047549">"अर्कै डिभाइस प्रयोग गर्नुहोस्"</string> <string name="request_cancelled_by" msgid="3735222326886267820">"<xliff:g id="APP_NAME">%1$s</xliff:g> ले अनुरोध रद्द गरेको छ"</string> <string name="dropdown_presentation_more_sign_in_options_text" msgid="1693727354272417902">"साइन इनसम्बन्धी विकल्पहरू"</string> <string name="more_options_content_description" msgid="1323427365788198808">"थप"</string> diff --git a/packages/CredentialManager/res/values-pt-rPT/strings.xml b/packages/CredentialManager/res/values-pt-rPT/strings.xml index a3476d927da7..9186c59caaee 100644 --- a/packages/CredentialManager/res/values-pt-rPT/strings.xml +++ b/packages/CredentialManager/res/values-pt-rPT/strings.xml @@ -91,7 +91,7 @@ <string name="no_sign_in_info_in" msgid="2641118151920288356">"Sem informações de início de sessão em <xliff:g id="SOURCE">%1$s</xliff:g>"</string> <string name="get_dialog_heading_manage_sign_ins" msgid="3522556476480676782">"Faça a gestão dos inícios de sessão"</string> <string name="get_dialog_heading_from_another_device" msgid="1166697017046724072">"De outro dispositivo"</string> - <string name="get_dialog_option_headline_use_a_different_device" msgid="8201578814988047549">"Use um dispositivo diferente"</string> + <string name="get_dialog_option_headline_use_a_different_device" msgid="8201578814988047549">"Use outro diferente"</string> <string name="request_cancelled_by" msgid="3735222326886267820">"Pedido cancelado pela app <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="dropdown_presentation_more_sign_in_options_text" msgid="1693727354272417902">"Opções de início de sessão"</string> <string name="more_options_content_description" msgid="1323427365788198808">"Mais"</string> diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt index d1099883c5e5..54a98ddaa01a 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt @@ -69,7 +69,7 @@ object QuickSettings { private fun SceneScope.stateForQuickSettingsContent( isSplitShade: Boolean, - squishiness: Float = QuickSettings.SharedValues.SquishinessValues.Default + squishiness: () -> Float = { QuickSettings.SharedValues.SquishinessValues.Default } ): QSSceneAdapter.State { return when (val transitionState = layoutState.transitionState) { is TransitionState.Idle -> { @@ -125,9 +125,9 @@ fun SceneScope.QuickSettings( heightProvider: () -> Int, isSplitShade: Boolean, modifier: Modifier = Modifier, - squishiness: Float = QuickSettings.SharedValues.SquishinessValues.Default, + squishiness: () -> Float = { QuickSettings.SharedValues.SquishinessValues.Default }, ) { - val contentState = stateForQuickSettingsContent(isSplitShade, squishiness) + val contentState = { stateForQuickSettingsContent(isSplitShade, squishiness) } val transitionState = layoutState.transitionState val isClosing = transitionState is TransitionState.Transition && @@ -161,7 +161,7 @@ fun SceneScope.QuickSettings( @Composable private fun QuickSettingsContent( qsSceneAdapter: QSSceneAdapter, - state: QSSceneAdapter.State, + state: () -> QSSceneAdapter.State, modifier: Modifier = Modifier, ) { val qsView by qsSceneAdapter.qsView.collectAsStateWithLifecycle(null) @@ -185,10 +185,10 @@ private fun QuickSettingsContent( AndroidView( modifier = Modifier.fillMaxWidth(), factory = { _ -> - qsSceneAdapter.setState(state) + qsSceneAdapter.setState(state()) view }, - update = { qsSceneAdapter.setState(state) } + update = { qsSceneAdapter.setState(state()) } ) } } diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt index a0278a616857..9d689fc25b23 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt @@ -279,7 +279,7 @@ private fun SceneScope.SingleShade( viewModel.qsSceneAdapter, { viewModel.qsSceneAdapter.qqsHeight }, isSplitShade = false, - squishiness = tileSquishiness, + squishiness = { tileSquishiness }, ) } @@ -468,7 +468,7 @@ private fun SceneScope.SplitShade( heightProvider = { viewModel.qsSceneAdapter.qsHeight }, isSplitShade = true, modifier = Modifier.fillMaxWidth(), - squishiness = tileSquishiness, + squishiness = { tileSquishiness }, ) } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterImplTest.kt index c660ff3a7297..afe7b8f8d50b 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterImplTest.kt @@ -257,7 +257,7 @@ class QSSceneAdapterImplTest : SysuiTestCase() { runCurrent() clearInvocations(qsImpl!!) - underTest.setState(QSSceneAdapter.State.UnsquishingQQS(squishiness)) + underTest.setState(QSSceneAdapter.State.UnsquishingQQS { squishiness }) with(qsImpl!!) { verify(this).setQsVisible(true) verify(this) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterTest.kt index ebd65fdcd538..63ce67c5eb28 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/ui/adapter/QSSceneAdapterTest.kt @@ -32,7 +32,7 @@ class QSSceneAdapterTest : SysuiTestCase() { @Test fun expanding_squishiness1() { - assertThat(QSSceneAdapter.State.Expanding(0.3f).squishiness).isEqualTo(1f) + assertThat(QSSceneAdapter.State.Expanding(0.3f).squishiness()).isEqualTo(1f) } @Test @@ -51,14 +51,14 @@ class QSSceneAdapterTest : SysuiTestCase() { @Test fun unsquishingQQS_expansionSameAsQQS() { val squishiness = 0.6f - assertThat(QSSceneAdapter.State.UnsquishingQQS(squishiness).expansion) + assertThat(QSSceneAdapter.State.UnsquishingQQS { squishiness }.expansion) .isEqualTo(QSSceneAdapter.State.QQS.expansion) } @Test fun unsquishingQS_expansionSameAsQS() { val squishiness = 0.6f - assertThat(QSSceneAdapter.State.UnsquishingQS(squishiness).expansion) + assertThat(QSSceneAdapter.State.UnsquishingQS { squishiness }.expansion) .isEqualTo(QSSceneAdapter.State.QS.expansion) } } diff --git a/packages/SystemUI/res/drawable/qs_tile_background_flagged.xml b/packages/SystemUI/res/drawable/qs_tile_background_flagged.xml index a30a12221105..c32acf2fdea2 100644 --- a/packages/SystemUI/res/drawable/qs_tile_background_flagged.xml +++ b/packages/SystemUI/res/drawable/qs_tile_background_flagged.xml @@ -15,16 +15,10 @@ --> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/qs_tile_ripple_color"> - <!-- We don't really use the ripple effect here, but changing it to LayerDrawable causes - performance regression, see: b/339412453. - Since this ripple has just one layer inside, we can try to remove that extra "background" - layer. However this should only be done when the flag - com.android.systemui.qs_tile_focus_state has completed all its stages and this drawable - fully replaces the previous one to ensure consistency with code sections searching for - specific ids in drawable hierarchy - --> <item - android:id="@id/background"> + android:id="@android:id/mask" + android:drawable="@drawable/qs_tile_background_shape" /> + <item android:id="@id/background"> <layer-list> <item android:id="@+id/qs_tile_background_base" @@ -32,22 +26,8 @@ <item android:id="@+id/qs_tile_background_overlay"> <selector> <item - android:state_hovered="true" - android:drawable="@drawable/qs_tile_background_shape" /> - </selector> - </item> - <!-- In the layer below we have negative insets because we need the focus outline - to draw outside the bounds, around the main background. We use 5dp because - the outline stroke is 3dp and the required padding is 2dp.--> - <item - android:top="-5dp" - android:right="-5dp" - android:left="-5dp" - android:bottom="-5dp"> - <selector> - <item - android:state_focused="true" - android:drawable="@drawable/qs_tile_focused_background"/> + android:drawable="@drawable/qs_tile_background_shape" + android:state_hovered="true" /> </selector> </item> </layer-list> diff --git a/packages/SystemUI/res/drawable/qs_tile_focused_background.xml b/packages/SystemUI/res/drawable/qs_tile_focused_background.xml index fd456df2c9d8..33f0d02efb2a 100644 --- a/packages/SystemUI/res/drawable/qs_tile_focused_background.xml +++ b/packages/SystemUI/res/drawable/qs_tile_focused_background.xml @@ -13,10 +13,14 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License. --> -<shape - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" - android:shape="rectangle"> - <corners android:radius="30dp"/> - <stroke android:width="3dp" android:color="?androidprv:attr/materialColorSecondaryFixed"/> -</shape>
\ No newline at end of file + +<inset xmlns:android="http://schemas.android.com/apk/res/android" + android:inset="-5dp"> + <shape xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" + android:shape="rectangle"> + <corners android:radius="30dp" /> + <stroke + android:width="3dp" + android:color="?androidprv:attr/materialColorSecondaryFixed" /> + </shape> +</inset>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout-sw600dp/biometric_prompt_constraint_layout.xml b/packages/SystemUI/res/layout-sw600dp/biometric_prompt_constraint_layout.xml index 05f6faea464e..8b9eabc5bd93 100644 --- a/packages/SystemUI/res/layout-sw600dp/biometric_prompt_constraint_layout.xml +++ b/packages/SystemUI/res/layout-sw600dp/biometric_prompt_constraint_layout.xml @@ -33,8 +33,7 @@ layout="@layout/biometric_prompt_button_bar" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginBottom="40dp" - app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintBottom_toBottomOf="@id/bottomGuideline" app:layout_constraintEnd_toEndOf="@id/panel" app:layout_constraintStart_toStartOf="@id/panel" /> diff --git a/packages/SystemUI/res/layout/biometric_prompt_button_bar.xml b/packages/SystemUI/res/layout/biometric_prompt_button_bar.xml index 0bbe73c36fc7..9f4ad0ec8677 100644 --- a/packages/SystemUI/res/layout/biometric_prompt_button_bar.xml +++ b/packages/SystemUI/res/layout/biometric_prompt_button_bar.xml @@ -23,11 +23,12 @@ <!-- Negative Button, reserved for app --> <Button android:id="@+id/button_negative" - style="@style/Widget.Dialog.Button.BorderButton" + style="@style/AuthCredentialNegativeButtonStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginStart="24dp" + android:layout_marginBottom="8dp" android:ellipsize="end" android:maxLines="2" android:visibility="invisible" @@ -37,11 +38,12 @@ <!-- Cancel Button, replaces negative button when biometric is accepted --> <Button android:id="@+id/button_cancel" - style="@style/Widget.Dialog.Button.BorderButton" + style="@style/AuthCredentialNegativeButtonStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginStart="24dp" + android:layout_marginBottom="8dp" android:text="@string/cancel" android:visibility="invisible" app:layout_constraintBottom_toBottomOf="parent" @@ -50,11 +52,12 @@ <!-- "Use Credential" Button, replaces if device credential is allowed --> <Button android:id="@+id/button_use_credential" - style="@style/Widget.Dialog.Button.BorderButton" + style="@style/AuthCredentialNegativeButtonStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginStart="24dp" + android:layout_marginBottom="8dp" android:visibility="invisible" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" /> @@ -67,6 +70,7 @@ android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginEnd="24dp" + android:layout_marginBottom="8dp" android:ellipsize="end" android:maxLines="2" android:text="@string/biometric_dialog_confirm" @@ -82,6 +86,7 @@ android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginEnd="24dp" + android:layout_marginBottom="8dp" android:ellipsize="end" android:maxLines="2" android:text="@string/biometric_dialog_try_again" diff --git a/packages/SystemUI/res/layout/biometric_prompt_constraint_layout.xml b/packages/SystemUI/res/layout/biometric_prompt_constraint_layout.xml index fa4d9a868fd7..9b5b59fc116f 100644 --- a/packages/SystemUI/res/layout/biometric_prompt_constraint_layout.xml +++ b/packages/SystemUI/res/layout/biometric_prompt_constraint_layout.xml @@ -31,8 +31,7 @@ layout="@layout/biometric_prompt_button_bar" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginBottom="40dp" - app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintBottom_toBottomOf="@id/bottomGuideline" app:layout_constraintEnd_toEndOf="@id/panel" app:layout_constraintStart_toStartOf="@id/panel" /> diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 393a1aaec74a..88135880f61b 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -375,6 +375,12 @@ <item name="android:textColor">?androidprv:attr/materialColorPrimary</item> </style> + <style name="AuthCredentialNegativeButtonStyle" parent="TextAppearance.Material3.LabelLarge"> + <item name="android:fontFamily">@*android:string/config_bodyFontFamilyMedium</item> + <item name="android:background">@color/transparent</item> + <item name="android:textColor">?androidprv:attr/materialColorPrimary</item> + </style> + <style name="DeviceManagementDialogTitle"> <item name="android:gravity">center</item> <item name="android:textAppearance">@style/TextAppearance.Dialog.Title</item> diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java index 298c0f782b79..b75b292be597 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java @@ -362,7 +362,7 @@ public class AuthContainerView extends LinearLayout mPromptSelectorInteractorProvider = promptSelectorInteractorProvider; mPromptSelectorInteractorProvider.get().setPrompt(mConfig.mPromptInfo, mEffectiveUserId, - biometricModalities, mConfig.mOperationId, mConfig.mOpPackageName, + getRequestId(), biometricModalities, mConfig.mOperationId, mConfig.mOpPackageName, false /*onSwitchToCredential*/); final LayoutInflater layoutInflater = LayoutInflater.from(mContext); @@ -436,7 +436,7 @@ public class AuthContainerView extends LinearLayout addCredentialView(true, false); } } else { - mPromptSelectorInteractorProvider.get().resetPrompt(); + mPromptSelectorInteractorProvider.get().resetPrompt(getRequestId()); } } @@ -884,7 +884,8 @@ public class AuthContainerView extends LinearLayout final Runnable endActionRunnable = () -> { setVisibility(View.INVISIBLE); if (Flags.customBiometricPrompt() && constraintBp()) { - mPromptSelectorInteractorProvider.get().resetPrompt(); + // TODO(b/288175645): resetPrompt calls should be lifecycle aware + mPromptSelectorInteractorProvider.get().resetPrompt(getRequestId()); } removeWindowIfAttached(); }; diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/data/repository/PromptRepository.kt b/packages/SystemUI/src/com/android/systemui/biometrics/data/repository/PromptRepository.kt index 58b238b820c3..230b30bc548e 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/data/repository/PromptRepository.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/data/repository/PromptRepository.kt @@ -17,6 +17,7 @@ package com.android.systemui.biometrics.data.repository import android.hardware.biometrics.PromptInfo +import android.util.Log import com.android.systemui.biometrics.AuthController import com.android.systemui.biometrics.shared.model.PromptKind import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging @@ -49,6 +50,9 @@ interface PromptRepository { /** The user that the prompt is for. */ val userId: StateFlow<Int?> + /** The request that the prompt is for. */ + val requestId: StateFlow<Long?> + /** The gatekeeper challenge, if one is associated with this prompt. */ val challenge: StateFlow<Long?> @@ -69,13 +73,14 @@ interface PromptRepository { fun setPrompt( promptInfo: PromptInfo, userId: Int, + requestId: Long, gatekeeperChallenge: Long?, kind: PromptKind, opPackageName: String, ) /** Unset the prompt info. */ - fun unsetPrompt() + fun unsetPrompt(requestId: Long) } @SysUISingleton @@ -109,6 +114,9 @@ constructor( private val _userId: MutableStateFlow<Int?> = MutableStateFlow(null) override val userId = _userId.asStateFlow() + private val _requestId: MutableStateFlow<Long?> = MutableStateFlow(null) + override val requestId = _requestId.asStateFlow() + private val _promptKind: MutableStateFlow<PromptKind> = MutableStateFlow(PromptKind.None) override val promptKind = _promptKind.asStateFlow() @@ -132,23 +140,30 @@ constructor( override fun setPrompt( promptInfo: PromptInfo, userId: Int, + requestId: Long, gatekeeperChallenge: Long?, kind: PromptKind, opPackageName: String, ) { _promptKind.value = kind _userId.value = userId + _requestId.value = requestId _challenge.value = gatekeeperChallenge _promptInfo.value = promptInfo _opPackageName.value = opPackageName } - override fun unsetPrompt() { - _promptInfo.value = null - _userId.value = null - _challenge.value = null - _promptKind.value = PromptKind.None - _opPackageName.value = null + override fun unsetPrompt(requestId: Long) { + if (requestId == _requestId.value) { + _promptInfo.value = null + _userId.value = null + _requestId.value = null + _challenge.value = null + _promptKind.value = PromptKind.None + _opPackageName.value = null + } else { + Log.w(TAG, "Ignoring unsetPrompt - requestId mismatch") + } } companion object { diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/domain/interactor/PromptSelectorInteractor.kt b/packages/SystemUI/src/com/android/systemui/biometrics/domain/interactor/PromptSelectorInteractor.kt index 4ba780fcec69..dc338d07f9e7 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/domain/interactor/PromptSelectorInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/domain/interactor/PromptSelectorInteractor.kt @@ -86,6 +86,7 @@ interface PromptSelectorInteractor { fun setPrompt( promptInfo: PromptInfo, effectiveUserId: Int, + requestId: Long, modalities: BiometricModalities, challenge: Long, opPackageName: String, @@ -93,7 +94,7 @@ interface PromptSelectorInteractor { ) /** Unset the current authentication request. */ - fun resetPrompt() + fun resetPrompt(requestId: Long) } @SysUISingleton @@ -161,6 +162,7 @@ constructor( setPrompt( promptRepository.promptInfo.value!!, promptRepository.userId.value!!, + promptRepository.requestId.value!!, modalities, promptRepository.challenge.value!!, promptRepository.opPackageName.value!!, @@ -171,6 +173,7 @@ constructor( override fun setPrompt( promptInfo: PromptInfo, effectiveUserId: Int, + requestId: Long, modalities: BiometricModalities, challenge: Long, opPackageName: String, @@ -198,13 +201,14 @@ constructor( promptRepository.setPrompt( promptInfo = promptInfo, userId = effectiveUserId, + requestId = requestId, gatekeeperChallenge = challenge, kind = kind, opPackageName = opPackageName, ) } - override fun resetPrompt() { - promptRepository.unsetPrompt() + override fun resetPrompt(requestId: Long) { + promptRepository.unsetPrompt(requestId) } } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt index 13ea3f56d911..47174c006735 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt @@ -321,6 +321,12 @@ object BiometricViewSizeBinder { lifecycleScope.launch { viewModel.guidelineBounds.collect { bounds -> + val bottomInset = + windowManager.maximumWindowMetrics.windowInsets + .getInsets(WindowInsets.Type.navigationBars()) + .bottom + mediumConstraintSet.setGuidelineEnd(R.id.bottomGuideline, bottomInset) + if (bounds.left >= 0) { mediumConstraintSet.setGuidelineBegin(leftGuideline.id, bounds.left) smallConstraintSet.setGuidelineBegin(leftGuideline.id, bounds.left) diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardIndication.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardIndication.java index ee3706a3ba62..a0b25b930d15 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardIndication.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardIndication.java @@ -32,6 +32,8 @@ import android.view.View; public class KeyguardIndication { @Nullable private final CharSequence mMessage; + @Nullable + private final boolean mForceAccessibilityLiveRegionAssertive; @NonNull private final ColorStateList mTextColor; @Nullable @@ -49,13 +51,15 @@ public class KeyguardIndication { Drawable icon, View.OnClickListener onClickListener, Drawable background, - Long minVisibilityMillis) { + Long minVisibilityMillis, + Boolean foceAssertive) { mMessage = message; mTextColor = textColor; mIcon = icon; mOnClickListener = onClickListener; mBackground = background; mMinVisibilityMillis = minVisibilityMillis; + mForceAccessibilityLiveRegionAssertive = foceAssertive; } /** @@ -101,6 +105,15 @@ public class KeyguardIndication { return mMinVisibilityMillis; } + + /** + * Whether to force the accessibility live region to be assertive. + */ + public boolean getForceAssertiveAccessibilityLiveRegion() { + return mForceAccessibilityLiveRegionAssertive; + } + + @Override public String toString() { String str = "KeyguardIndication{"; @@ -109,6 +122,7 @@ public class KeyguardIndication { if (mOnClickListener != null) str += " mOnClickListener=" + mOnClickListener; if (mBackground != null) str += " mBackground=" + mBackground; if (mMinVisibilityMillis != null) str += " mMinVisibilityMillis=" + mMinVisibilityMillis; + if (mForceAccessibilityLiveRegionAssertive) str += "mForceAccessibilityLiveRegionAssertive"; str += "}"; return str; } @@ -123,6 +137,7 @@ public class KeyguardIndication { private ColorStateList mTextColor; private Drawable mBackground; private Long mMinVisibilityMillis; + private boolean mForceAccessibilityLiveRegionAssertive; public Builder() { } @@ -178,6 +193,14 @@ public class KeyguardIndication { } /** + * Optional. Can force the accessibility live region to be assertive for this message. + */ + public Builder setForceAccessibilityLiveRegionAssertive() { + this.mForceAccessibilityLiveRegionAssertive = true; + return this; + } + + /** * Build the KeyguardIndication. */ public KeyguardIndication build() { @@ -190,7 +213,7 @@ public class KeyguardIndication { return new KeyguardIndication( mMessage, mTextColor, mIcon, mOnClickListener, mBackground, - mMinVisibilityMillis); + mMinVisibilityMillis, mForceAccessibilityLiveRegionAssertive); } } } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java index 674c128a580e..f9adc473b119 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java @@ -84,20 +84,25 @@ import com.android.systemui.keyguard.ui.viewmodel.KeyguardSurfaceBehindViewModel import com.android.systemui.keyguard.ui.viewmodel.WindowManagerLockscreenVisibilityViewModel; import com.android.systemui.power.domain.interactor.PowerInteractor; import com.android.systemui.power.shared.model.ScreenPowerState; +import com.android.systemui.scene.domain.interactor.SceneInteractor; +import com.android.systemui.scene.shared.flag.SceneContainerFlag; +import com.android.systemui.scene.shared.model.Scenes; import com.android.systemui.settings.DisplayTracker; import com.android.wm.shell.shared.CounterRotator; import com.android.wm.shell.shared.ShellTransitions; import com.android.wm.shell.shared.TransitionUtil; import com.android.wm.shell.transition.Transitions; +import dagger.Lazy; + +import kotlinx.coroutines.CoroutineScope; + import java.util.ArrayList; import java.util.Map; import java.util.WeakHashMap; import javax.inject.Inject; -import kotlinx.coroutines.CoroutineScope; - public class KeyguardService extends Service { static final String TAG = "KeyguardService"; static final String PERMISSION = android.Manifest.permission.CONTROL_KEYGUARD; @@ -109,6 +114,7 @@ public class KeyguardService extends Service { private final ShellTransitions mShellTransitions; private final DisplayTracker mDisplayTracker; private final PowerInteractor mPowerInteractor; + private final Lazy<SceneInteractor> mSceneInteractorLazy; private static RemoteAnimationTarget[] wrap(TransitionInfo info, boolean wallpapers, SurfaceControl.Transaction t, ArrayMap<SurfaceControl, SurfaceControl> leashMap, @@ -316,7 +322,8 @@ public class KeyguardService extends Service { @Application CoroutineScope scope, FeatureFlags featureFlags, PowerInteractor powerInteractor, - WindowManagerOcclusionManager windowManagerOcclusionManager) { + WindowManagerOcclusionManager windowManagerOcclusionManager, + Lazy<SceneInteractor> sceneInteractorLazy) { super(); mKeyguardViewMediator = keyguardViewMediator; mKeyguardLifecyclesDispatcher = keyguardLifecyclesDispatcher; @@ -325,6 +332,7 @@ public class KeyguardService extends Service { mDisplayTracker = displayTracker; mFlags = featureFlags; mPowerInteractor = powerInteractor; + mSceneInteractorLazy = sceneInteractorLazy; if (KeyguardWmStateRefactor.isEnabled()) { WindowManagerLockscreenVisibilityViewBinder.bind( @@ -601,6 +609,10 @@ public class KeyguardService extends Service { trace("showDismissibleKeyguard"); checkPermission(); mKeyguardViewMediator.showDismissibleKeyguard(); + if (SceneContainerFlag.isEnabled()) { + mSceneInteractorLazy.get().changeScene( + Scenes.Lockscreen, "KeyguardService.showDismissibleKeyguard"); + } } @Override // Binder interface diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt index 1e2db7c36432..350527a85e18 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt @@ -14,20 +14,21 @@ * limitations under the License. */ +@file:OptIn(ExperimentalCoroutinesApi::class) + package com.android.systemui.keyguard.domain.interactor -import com.android.compose.animation.scene.ObservableTransitionState import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor import com.android.systemui.keyguard.shared.model.BiometricUnlockMode -import com.android.systemui.keyguard.shared.model.Edge import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.scene.domain.interactor.SceneInteractor import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.statusbar.notification.domain.interactor.NotificationLaunchAnimationInteractor -import com.android.systemui.util.kotlin.pairwise import com.android.systemui.util.kotlin.sample +import dagger.Lazy import javax.inject.Inject import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow @@ -48,7 +49,8 @@ constructor( fromBouncerInteractor: FromPrimaryBouncerTransitionInteractor, fromAlternateBouncerInteractor: FromAlternateBouncerTransitionInteractor, notificationLaunchAnimationInteractor: NotificationLaunchAnimationInteractor, - sceneInteractor: SceneInteractor, + sceneInteractor: Lazy<SceneInteractor>, + deviceEntryInteractor: Lazy<DeviceEntryInteractor>, ) { private val defaultSurfaceBehindVisibility = transitionInteractor.finishedKeyguardState.map(::isSurfaceVisible) @@ -112,7 +114,7 @@ constructor( val usingKeyguardGoingAwayAnimation: Flow<Boolean> = if (SceneContainerFlag.isEnabled) { combine( - sceneInteractor.transitionState, + sceneInteractor.get().transitionState, surfaceBehindInteractor.isAnimatingSurface, notificationLaunchAnimationInteractor.isLaunchAnimationRunning, ) { transition, isAnimatingSurface, isLaunchAnimationRunning -> @@ -156,19 +158,7 @@ constructor( */ val lockscreenVisibility: Flow<Boolean> = if (SceneContainerFlag.isEnabled) { - sceneInteractor.transitionState - .pairwise(ObservableTransitionState.Idle(Scenes.Lockscreen)) - .map { (prevTransitionState, transitionState) -> - val isReturningToGoneAfterCancellation = - prevTransitionState.isTransitioning(from = Scenes.Gone) && - transitionState.isTransitioning(to = Scenes.Gone) - val isNotOnGone = - !transitionState.isTransitioning(from = Scenes.Gone) && - !transitionState.isIdle(Scenes.Gone) - - isNotOnGone && !isReturningToGoneAfterCancellation - } - .distinctUntilChanged() + deviceEntryInteractor.get().isDeviceEntered.map { !it } } else { transitionInteractor.currentKeyguardState .sample(transitionInteractor.startedStepWithPrecedingStep, ::Pair) diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaFlags.kt b/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaFlags.kt index 6a6eba163a40..1e7bc0cacf1d 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaFlags.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/util/MediaFlags.kt @@ -54,5 +54,6 @@ class MediaFlags @Inject constructor(private val featureFlags: FeatureFlagsClass fun isSceneContainerEnabled() = SceneContainerFlag.isEnabled /** Check whether to use media refactor code */ - fun isMediaControlsRefactorEnabled() = MediaControlsRefactorFlag.isEnabled + fun isMediaControlsRefactorEnabled() = + MediaControlsRefactorFlag.isEnabled && SceneContainerFlag.isEnabled } diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt index 4fd0df4d3f8f..c6dfdd5c137b 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt @@ -148,7 +148,8 @@ open class QSTileViewImpl @JvmOverloads constructor( */ protected var showRippleEffect = true - private lateinit var qsTileBackground: LayerDrawable + private lateinit var qsTileBackground: RippleDrawable + private lateinit var qsTileFocusBackground: Drawable private lateinit var backgroundDrawable: LayerDrawable private lateinit var backgroundBaseDrawable: Drawable private lateinit var backgroundOverlayDrawable: Drawable @@ -313,10 +314,11 @@ open class QSTileViewImpl @JvmOverloads constructor( private fun createTileBackground(): Drawable { qsTileBackground = if (Flags.qsTileFocusState()) { - mContext.getDrawable(R.drawable.qs_tile_background_flagged) as LayerDrawable + mContext.getDrawable(R.drawable.qs_tile_background_flagged) as RippleDrawable } else { mContext.getDrawable(R.drawable.qs_tile_background) as RippleDrawable } + qsTileFocusBackground = mContext.getDrawable(R.drawable.qs_tile_focused_background)!! backgroundDrawable = qsTileBackground.findDrawableByLayerId(R.id.background) as LayerDrawable backgroundBaseDrawable = @@ -332,6 +334,17 @@ open class QSTileViewImpl @JvmOverloads constructor( updateHeight() } + override fun onFocusChanged(gainFocus: Boolean, direction: Int, previouslyFocusedRect: Rect?) { + super.onFocusChanged(gainFocus, direction, previouslyFocusedRect) + if (Flags.qsTileFocusState()) { + if (gainFocus) { + qsTileFocusBackground.setBounds(0, 0, width, height) + overlay.add(qsTileFocusBackground) + } else { + overlay.clear() + } + } + } private fun updateHeight() { // TODO(b/332900989): Find a more robust way of resetting the tile if not reset by the // launch animation. diff --git a/packages/SystemUI/src/com/android/systemui/qs/ui/adapter/QSSceneAdapter.kt b/packages/SystemUI/src/com/android/systemui/qs/ui/adapter/QSSceneAdapter.kt index 63acbb0d730d..fb872d538e6c 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/ui/adapter/QSSceneAdapter.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/ui/adapter/QSSceneAdapter.kt @@ -127,28 +127,28 @@ interface QSSceneAdapter { val isVisible: Boolean val expansion: Float - val squishiness: Float + val squishiness: () -> Float data object CLOSED : State { override val isVisible = false override val expansion = 0f - override val squishiness = 1f + override val squishiness = { 1f } } /** State for expanding between QQS and QS */ data class Expanding(override val expansion: Float) : State { override val isVisible = true - override val squishiness = 1f + override val squishiness = { 1f } } /** State for appearing QQS from Lockscreen or Gone */ - data class UnsquishingQQS(override val squishiness: Float) : State { + data class UnsquishingQQS(override val squishiness: () -> Float) : State { override val isVisible = true override val expansion = 0f } /** State for appearing QS from Lockscreen or Gone, used in Split shade */ - data class UnsquishingQS(override val squishiness: Float) : State { + data class UnsquishingQS(override val squishiness: () -> Float) : State { override val isVisible = true override val expansion = 1f } @@ -370,7 +370,7 @@ constructor( setQsVisible(state.isVisible) setExpanded(state.isVisible && state.expansion > 0f) setListening(state.isVisible) - setQsExpansion(state.expansion, 1f, 0f, state.squishiness) + setQsExpansion(state.expansion, 1f, 0f, state.squishiness()) } override fun dump(pw: PrintWriter, args: Array<out String>) { diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index 6bb30c7b97f4..3826b50ab024 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -253,6 +253,7 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; import java.util.Optional; +import java.util.Set; import java.util.function.Consumer; import javax.inject.Inject; @@ -449,6 +450,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump private final ShadeHeadsUpTrackerImpl mShadeHeadsUpTracker = new ShadeHeadsUpTrackerImpl(); private final ShadeFoldAnimatorImpl mShadeFoldAnimator = new ShadeFoldAnimatorImpl(); + @VisibleForTesting + Set<Animator> mTestSetOfAnimatorsUsed; + private boolean mShowIconsWhenExpanded; private int mIndicationBottomPadding; private int mAmbientIndicationBottomPadding; @@ -4149,6 +4153,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump } private void setAnimator(ValueAnimator animator) { + // TODO(b/341163515): Should we clean up the old animator? + registerAnimatorForTest(animator); mHeightAnimator = animator; if (animator == null && mPanelUpdateWhenAnimatorEnds) { mPanelUpdateWhenAnimatorEnds = false; @@ -4193,6 +4199,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump private ValueAnimator createHeightAnimator(float targetHeight, float overshootAmount) { float startExpansion = mOverExpansion; ValueAnimator animator = ValueAnimator.ofFloat(mExpandedHeight, targetHeight); + registerAnimatorForTest(animator); animator.addUpdateListener( animation -> { if (overshootAmount > 0.0f @@ -4210,6 +4217,12 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump return animator; } + private void registerAnimatorForTest(Animator animator) { + if (mTestSetOfAnimatorsUsed != null && animator != null) { + mTestSetOfAnimatorsUsed.add(animator); + } + } + /** Update the visibility of {@link NotificationPanelView} if necessary. */ private void updateVisibility() { mView.setVisibility(shouldPanelBeVisible() ? VISIBLE : INVISIBLE); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java index 2446473c3b31..3d4b421fcc50 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java @@ -633,6 +633,7 @@ public class KeyguardIndicationController { INDICATION_TYPE_BIOMETRIC_MESSAGE, new KeyguardIndication.Builder() .setMessage(mBiometricMessage) + .setForceAccessibilityLiveRegionAssertive() .setMinVisibilityMillis(IMPORTANT_MSG_MIN_DURATION) .setTextColor(mInitialTextColorState) .build(), diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManager.kt index bd9383de3bab..2f293e072c84 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManager.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManager.kt @@ -22,11 +22,13 @@ import android.provider.DeviceConfig import com.android.internal.annotations.VisibleForTesting import com.android.internal.config.sysui.SystemUiDeviceConfigFlags.NOTIFICATIONS_USE_PEOPLE_FILTERING import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.statusbar.notification.shared.PriorityPeopleSection import com.android.systemui.statusbar.notification.stack.BUCKET_ALERTING import com.android.systemui.statusbar.notification.stack.BUCKET_FOREGROUND_SERVICE import com.android.systemui.statusbar.notification.stack.BUCKET_HEADS_UP import com.android.systemui.statusbar.notification.stack.BUCKET_MEDIA_CONTROLS import com.android.systemui.statusbar.notification.stack.BUCKET_PEOPLE +import com.android.systemui.statusbar.notification.stack.BUCKET_PRIORITY_PEOPLE import com.android.systemui.statusbar.notification.stack.BUCKET_SILENT import com.android.systemui.util.DeviceConfigProxy import com.android.systemui.util.Utils @@ -53,6 +55,18 @@ class NotificationSectionsFeatureManager @Inject constructor( } fun getNotificationBuckets(): IntArray { + if (PriorityPeopleSection.isEnabled) { + // We don't need this list to be adaptive, it can be the superset of all features. + return intArrayOf( + BUCKET_MEDIA_CONTROLS, + BUCKET_HEADS_UP, + BUCKET_FOREGROUND_SERVICE, + BUCKET_PRIORITY_PEOPLE, + BUCKET_PEOPLE, + BUCKET_ALERTING, + BUCKET_SILENT, + ) + } return when { isFilteringEnabled() && isMediaControlsEnabled() -> intArrayOf(BUCKET_HEADS_UP, BUCKET_FOREGROUND_SERVICE, BUCKET_MEDIA_CONTROLS, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSection.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSection.java index 2d0395a2f606..5a433a1f1a04 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSection.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSection.java @@ -16,17 +16,6 @@ package com.android.systemui.statusbar.notification.stack; -import static com.android.systemui.statusbar.notification.stack.NotificationPriorityBucketKt.BUCKET_MEDIA_CONTROLS; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.ObjectAnimator; -import android.animation.PropertyValuesHolder; -import android.graphics.Rect; -import android.view.View; -import android.view.animation.Interpolator; - -import com.android.app.animation.Interpolators; import com.android.systemui.statusbar.notification.row.ExpandableView; /** @@ -35,165 +24,18 @@ import com.android.systemui.statusbar.notification.row.ExpandableView; */ public class NotificationSection { private @PriorityBucket final int mBucket; - private final View mOwningView; - private final Rect mBounds = new Rect(); - private final Rect mCurrentBounds = new Rect(-1, -1, -1, -1); - private final Rect mStartAnimationRect = new Rect(); - private final Rect mEndAnimationRect = new Rect(); - private ObjectAnimator mTopAnimator = null; - private ObjectAnimator mBottomAnimator = null; private ExpandableView mFirstVisibleChild; private ExpandableView mLastVisibleChild; - NotificationSection(View owningView, @PriorityBucket int bucket) { - mOwningView = owningView; + NotificationSection(@PriorityBucket int bucket) { mBucket = bucket; } - public void cancelAnimators() { - if (mBottomAnimator != null) { - mBottomAnimator.cancel(); - } - if (mTopAnimator != null) { - mTopAnimator.cancel(); - } - } - - public Rect getCurrentBounds() { - return mCurrentBounds; - } - - public Rect getBounds() { - return mBounds; - } - - public boolean didBoundsChange() { - return !mCurrentBounds.equals(mBounds); - } - - public boolean areBoundsAnimating() { - return mBottomAnimator != null || mTopAnimator != null; - } - @PriorityBucket public int getBucket() { return mBucket; } - public void startBackgroundAnimation(boolean animateTop, boolean animateBottom) { - // Left and right bounds are always applied immediately. - mCurrentBounds.left = mBounds.left; - mCurrentBounds.right = mBounds.right; - startBottomAnimation(animateBottom); - startTopAnimation(animateTop); - } - - - private void startTopAnimation(boolean animate) { - int previousEndValue = mEndAnimationRect.top; - int newEndValue = mBounds.top; - ObjectAnimator previousAnimator = mTopAnimator; - if (previousAnimator != null && previousEndValue == newEndValue) { - return; - } - if (!animate) { - // just a local update was performed - if (previousAnimator != null) { - // we need to increase all animation keyframes of the previous animator by the - // relative change to the end value - int previousStartValue = mStartAnimationRect.top; - PropertyValuesHolder[] values = previousAnimator.getValues(); - values[0].setIntValues(previousStartValue, newEndValue); - mStartAnimationRect.top = previousStartValue; - mEndAnimationRect.top = newEndValue; - previousAnimator.setCurrentPlayTime(previousAnimator.getCurrentPlayTime()); - return; - } else { - // no new animation needed, let's just apply the value - setBackgroundTop(newEndValue); - return; - } - } - if (previousAnimator != null) { - previousAnimator.cancel(); - } - ObjectAnimator animator = ObjectAnimator.ofInt(this, "backgroundTop", - mCurrentBounds.top, newEndValue); - Interpolator interpolator = Interpolators.FAST_OUT_SLOW_IN; - animator.setInterpolator(interpolator); - animator.setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD); - // remove the tag when the animation is finished - animator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mStartAnimationRect.top = -1; - mEndAnimationRect.top = -1; - mTopAnimator = null; - } - }); - animator.start(); - mStartAnimationRect.top = mCurrentBounds.top; - mEndAnimationRect.top = newEndValue; - mTopAnimator = animator; - } - - private void startBottomAnimation(boolean animate) { - int previousStartValue = mStartAnimationRect.bottom; - int previousEndValue = mEndAnimationRect.bottom; - int newEndValue = mBounds.bottom; - ObjectAnimator previousAnimator = mBottomAnimator; - if (previousAnimator != null && previousEndValue == newEndValue) { - return; - } - if (!animate) { - // just a local update was performed - if (previousAnimator != null) { - // we need to increase all animation keyframes of the previous animator by the - // relative change to the end value - PropertyValuesHolder[] values = previousAnimator.getValues(); - values[0].setIntValues(previousStartValue, newEndValue); - mStartAnimationRect.bottom = previousStartValue; - mEndAnimationRect.bottom = newEndValue; - previousAnimator.setCurrentPlayTime(previousAnimator.getCurrentPlayTime()); - return; - } else { - // no new animation needed, let's just apply the value - setBackgroundBottom(newEndValue); - return; - } - } - if (previousAnimator != null) { - previousAnimator.cancel(); - } - ObjectAnimator animator = ObjectAnimator.ofInt(this, "backgroundBottom", - mCurrentBounds.bottom, newEndValue); - Interpolator interpolator = Interpolators.FAST_OUT_SLOW_IN; - animator.setInterpolator(interpolator); - animator.setDuration(StackStateAnimator.ANIMATION_DURATION_STANDARD); - // remove the tag when the animation is finished - animator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mStartAnimationRect.bottom = -1; - mEndAnimationRect.bottom = -1; - mBottomAnimator = null; - } - }); - animator.start(); - mStartAnimationRect.bottom = mCurrentBounds.bottom; - mEndAnimationRect.bottom = newEndValue; - mBottomAnimator = animator; - } - - private void setBackgroundTop(int top) { - mCurrentBounds.top = top; - mOwningView.invalidate(); - } - - private void setBackgroundBottom(int bottom) { - mCurrentBounds.bottom = bottom; - mOwningView.invalidate(); - } public ExpandableView getFirstVisibleChild() { return mFirstVisibleChild; @@ -215,91 +57,4 @@ public class NotificationSection { return changed; } - public void resetCurrentBounds() { - mCurrentBounds.set(mBounds); - } - - /** - * Returns true if {@code top} is equal to the top of this section (if not currently animating) - * or where the top of this section will be when animation completes. - */ - public boolean isTargetTop(int top) { - return (mTopAnimator == null && mCurrentBounds.top == top) - || (mTopAnimator != null && mEndAnimationRect.top == top); - } - - /** - * Returns true if {@code bottom} is equal to the bottom of this section (if not currently - * animating) or where the bottom of this section will be when animation completes. - */ - public boolean isTargetBottom(int bottom) { - return (mBottomAnimator == null && mCurrentBounds.bottom == bottom) - || (mBottomAnimator != null && mEndAnimationRect.bottom == bottom); - } - - /** - * Update the bounds of this section based on it's views - * - * @param minTopPosition the minimum position that the top needs to have - * @param minBottomPosition the minimum position that the bottom needs to have - * @return the position of the new bottom - */ - public int updateBounds(int minTopPosition, int minBottomPosition, - boolean shiftBackgroundWithFirst) { - int top = minTopPosition; - int bottom = minTopPosition; - ExpandableView firstView = getFirstVisibleChild(); - if (firstView != null) { - // Round Y up to avoid seeing the background during animation - int finalTranslationY = (int) Math.ceil(ViewState.getFinalTranslationY(firstView)); - // TODO: look into the already animating part - int newTop; - if (isTargetTop(finalTranslationY)) { - // we're ending up at the same location as we are now, let's just skip the - // animation - newTop = finalTranslationY; - } else { - newTop = (int) Math.ceil(firstView.getTranslationY()); - } - top = Math.max(newTop, top); - if (firstView.showingPulsing()) { - // If we're pulsing, the notification can actually go below! - bottom = Math.max(bottom, finalTranslationY - + ExpandableViewState.getFinalActualHeight(firstView)); - if (shiftBackgroundWithFirst) { - mBounds.left += Math.max(firstView.getTranslation(), 0); - mBounds.right += Math.min(firstView.getTranslation(), 0); - } - } - } - ExpandableView lastView = getLastVisibleChild(); - if (lastView != null) { - float finalTranslationY = ViewState.getFinalTranslationY(lastView); - int finalHeight = ExpandableViewState.getFinalActualHeight(lastView); - // Round Y down to avoid seeing the background during animation - int finalBottom = (int) Math.floor( - finalTranslationY + finalHeight - lastView.getClipBottomAmount()); - int newBottom; - if (isTargetBottom(finalBottom)) { - // we're ending up at the same location as we are now, lets just skip the animation - newBottom = finalBottom; - } else { - newBottom = (int) (lastView.getTranslationY() + lastView.getActualHeight() - - lastView.getClipBottomAmount()); - // The background can never be lower than the end of the last view - minBottomPosition = (int) Math.min( - lastView.getTranslationY() + lastView.getActualHeight(), - minBottomPosition); - } - bottom = Math.max(bottom, Math.max(newBottom, minBottomPosition)); - } - bottom = Math.max(top, bottom); - mBounds.top = top; - mBounds.bottom = bottom; - return bottom; - } - - public boolean needsBackground() { - return mFirstVisibleChild != null && mBucket != BUCKET_MEDIA_CONTROLS; - } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.kt index d269eda6795a..3400ad107133 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.kt @@ -40,7 +40,9 @@ import javax.inject.Inject * * TODO: Move remaining sections logic from NSSL into this class. */ -class NotificationSectionsManager @Inject internal constructor( +class NotificationSectionsManager +@Inject +internal constructor( private val configurationController: ConfigurationController, private val keyguardMediaController: KeyguardMediaController, private val sectionsFeatureManager: NotificationSectionsFeatureManager, @@ -52,11 +54,12 @@ class NotificationSectionsManager @Inject internal constructor( @SilentHeader private val silentHeaderController: SectionHeaderController ) : SectionProvider { - private val configurationListener = object : ConfigurationController.ConfigurationListener { - override fun onLocaleListChanged() { - reinflateViews() + private val configurationListener = + object : ConfigurationController.ConfigurationListener { + override fun onLocaleListChanged() { + reinflateViews() + } } - } private lateinit var parent: NotificationStackScrollLayout private var initialized = false @@ -81,7 +84,7 @@ class NotificationSectionsManager @Inject internal constructor( val mediaControlsView: MediaContainerView? get() = mediaContainerController.mediaContainerView - /** Must be called before use. */ + /** Must be called before use. */ fun initialize(parent: NotificationStackScrollLayout) { check(!initialized) { "NotificationSectionsManager already initialized" } initialized = true @@ -91,13 +94,12 @@ class NotificationSectionsManager @Inject internal constructor( } fun createSectionsForBuckets(): Array<NotificationSection> = - sectionsFeatureManager.getNotificationBuckets() - .map { NotificationSection(parent, it) } - .toTypedArray() + sectionsFeatureManager + .getNotificationBuckets() + .map { NotificationSection(it) } + .toTypedArray() - /** - * Reinflates the entire notification header, including all decoration views. - */ + /** Reinflates the entire notification header, including all decoration views. */ fun reinflateViews() { silentHeaderController.reinflateView(parent) alertingHeaderController.reinflateView(parent) @@ -108,44 +110,44 @@ class NotificationSectionsManager @Inject internal constructor( } override fun beginsSection(view: View, previous: View?): Boolean = - view === silentHeaderView || + view === silentHeaderView || view === mediaControlsView || view === peopleHeaderView || view === alertingHeaderView || view === incomingHeaderView || getBucket(view) != getBucket(previous) - private fun getBucket(view: View?): Int? = when { - view === silentHeaderView -> BUCKET_SILENT - view === incomingHeaderView -> BUCKET_HEADS_UP - view === mediaControlsView -> BUCKET_MEDIA_CONTROLS - view === peopleHeaderView -> BUCKET_PEOPLE - view === alertingHeaderView -> BUCKET_ALERTING - view is ExpandableNotificationRow -> view.entry.bucket - else -> null - } + private fun getBucket(view: View?): Int? = + when { + view === silentHeaderView -> BUCKET_SILENT + view === incomingHeaderView -> BUCKET_HEADS_UP + view === mediaControlsView -> BUCKET_MEDIA_CONTROLS + view === peopleHeaderView -> BUCKET_PEOPLE + view === alertingHeaderView -> BUCKET_ALERTING + view is ExpandableNotificationRow -> view.entry.bucket + else -> null + } private sealed class SectionBounds { - data class Many( - val first: ExpandableView, - val last: ExpandableView - ) : SectionBounds() + data class Many(val first: ExpandableView, val last: ExpandableView) : SectionBounds() data class One(val lone: ExpandableView) : SectionBounds() object None : SectionBounds() - fun addNotif(notif: ExpandableView): SectionBounds = when (this) { - is None -> One(notif) - is One -> Many(lone, notif) - is Many -> copy(last = notif) - } + fun addNotif(notif: ExpandableView): SectionBounds = + when (this) { + is None -> One(notif) + is One -> Many(lone, notif) + is Many -> copy(last = notif) + } - fun updateSection(section: NotificationSection): Boolean = when (this) { - is None -> section.setFirstAndLastVisibleChildren(null, null) - is One -> section.setFirstAndLastVisibleChildren(lone, lone) - is Many -> section.setFirstAndLastVisibleChildren(first, last) - } + fun updateSection(section: NotificationSection): Boolean = + when (this) { + is None -> section.setFirstAndLastVisibleChildren(null, null) + is One -> section.setFirstAndLastVisibleChildren(lone, lone) + is Many -> section.setFirstAndLastVisibleChildren(first, last) + } private fun NotificationSection.setFirstAndLastVisibleChildren( first: ExpandableView?, @@ -167,17 +169,19 @@ class NotificationSectionsManager @Inject internal constructor( children: List<ExpandableView> ): Boolean { // Create mapping of bucket to section - val sectionBounds = children.asSequence() + val sectionBounds = + children + .asSequence() // Group children by bucket .groupingBy { getBucket(it) - ?: throw IllegalArgumentException("Cannot find section bucket for view") + ?: throw IllegalArgumentException("Cannot find section bucket for view") } // Combine each bucket into a SectionBoundary .foldToSparseArray( - SectionBounds.None, - size = sections.size, - operation = SectionBounds::addNotif + SectionBounds.None, + size = sections.size, + operation = SectionBounds::addNotif ) // Build a set of the old first/last Views of the sections @@ -185,11 +189,12 @@ class NotificationSectionsManager @Inject internal constructor( val oldLastChildren = sections.mapNotNull { it.lastVisibleChild }.toSet().toMutableSet() // Update each section with the associated boundary, tracking if there was a change - val changed = sections.fold(false) { changed, section -> - val bounds = sectionBounds[section.bucket] ?: SectionBounds.None - val isSectionChanged = bounds.updateSection(section) - isSectionChanged || changed - } + val changed = + sections.fold(false) { changed, section -> + val bounds = sectionBounds[section.bucket] ?: SectionBounds.None + val isSectionChanged = bounds.updateSection(section) + isSectionChanged || changed + } val newFirstChildren = sections.mapNotNull { it.firstVisibleChild } val newLastChildren = sections.mapNotNull { it.lastVisibleChild } @@ -229,16 +234,18 @@ class NotificationSectionsManager @Inject internal constructor( private fun logSections(sections: Array<NotificationSection>) { for (i in sections.indices) { val s = sections[i] - val fs = when (val first = s.firstVisibleChild) { - null -> "(null)" - is ExpandableNotificationRow -> first.entry.key - else -> Integer.toHexString(System.identityHashCode(first)) - } - val ls = when (val last = s.lastVisibleChild) { - null -> "(null)" - is ExpandableNotificationRow -> last.entry.key - else -> Integer.toHexString(System.identityHashCode(last)) - } + val fs = + when (val first = s.firstVisibleChild) { + null -> "(null)" + is ExpandableNotificationRow -> first.entry.key + else -> Integer.toHexString(System.identityHashCode(first)) + } + val ls = + when (val last = s.lastVisibleChild) { + null -> "(null)" + is ExpandableNotificationRow -> last.entry.key + else -> Integer.toHexString(System.identityHashCode(last)) + } Log.d(TAG, "updateSections: f=$fs s=$i") Log.d(TAG, "updateSections: l=$ls s=$i") } 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 17b54c8f3970..a9d7cc003b79 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 @@ -2974,7 +2974,7 @@ public class NotificationStackScrollLayout private void updateFirstAndLastBackgroundViews() { ExpandableView lastChild = getLastChildWithBackground(); - boolean sectionViewsChanged = mSectionsManager.updateFirstAndLastViewsForAllSections( + mSectionsManager.updateFirstAndLastViewsForAllSections( mSections, getChildrenWithBackground()); mAmbientState.setLastVisibleBackgroundChild(lastChild); 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 c4e0f31c9c74..16e9c717935c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardIndicationTextView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardIndicationTextView.java @@ -219,6 +219,7 @@ public class KeyguardIndicationTextView extends TextView { } private void setNextIndication() { + boolean forceAssertiveAccessibilityLiveRegion = false; if (mKeyguardIndicationInfo != null) { // First, update the style. // If a background is set on the text, we don't want shadow on the text @@ -239,8 +240,16 @@ public class KeyguardIndicationTextView extends TextView { } } setCompoundDrawablesRelativeWithIntrinsicBounds(icon, null, null, null); + forceAssertiveAccessibilityLiveRegion = + mKeyguardIndicationInfo.getForceAssertiveAccessibilityLiveRegion(); + } + if (!forceAssertiveAccessibilityLiveRegion) { + setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_NONE); } setText(mMessage); + if (forceAssertiveAccessibilityLiveRegion) { + setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_ASSERTIVE); + } if (mAlwaysAnnounceText) { announceForAccessibility(mMessage); } 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 fa88be5b638b..d9f88c494649 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -695,11 +695,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb public void show(Bundle options) { Trace.beginSection("StatusBarKeyguardViewManager#show"); mNotificationShadeWindowController.setKeyguardShowing(true); - if (SceneContainerFlag.isEnabled()) { - // TODO(b/336581871): add sceneState? - mSceneInteractorLazy.get().changeScene( - Scenes.Lockscreen, "StatusBarKeyguardViewManager.show"); - } mKeyguardStateController.notifyKeyguardState(true, mKeyguardStateController.isOccluded()); reset(true /* hideBouncerWhenShowing */); SysUiStatsLog.write(SysUiStatsLog.KEYGUARD_STATE_CHANGED, diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/data/repository/PromptRepositoryImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/data/repository/PromptRepositoryImplTest.kt index 5e4272f125d7..2682633f5dfd 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/data/repository/PromptRepositoryImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/data/repository/PromptRepositoryImplTest.kt @@ -44,6 +44,8 @@ import org.mockito.Mockito.verify import org.mockito.junit.MockitoJUnit private const val USER_ID = 9 +private const val REQUEST_ID = 9L +private const val WRONG_REQUEST_ID = 10L private const val CHALLENGE = 90L private const val OP_PACKAGE_NAME = "biometric.testapp" @@ -105,6 +107,7 @@ class PromptRepositoryImplTest : SysuiTestCase() { repository.setPrompt( PromptInfo().apply { isConfirmationRequested = case }, USER_ID, + REQUEST_ID, CHALLENGE, PromptKind.Biometric(), OP_PACKAGE_NAME @@ -124,6 +127,7 @@ class PromptRepositoryImplTest : SysuiTestCase() { repository.setPrompt( PromptInfo().apply { isConfirmationRequested = case }, USER_ID, + REQUEST_ID, CHALLENGE, PromptKind.Biometric(), OP_PACKAGE_NAME @@ -134,12 +138,12 @@ class PromptRepositoryImplTest : SysuiTestCase() { } @Test - fun setsAndUnsetsPrompt() = + fun setsAndUnsetsPrompt_whenRequestIdMatches() = testScope.runTest { val kind = PromptKind.Pin val promptInfo = PromptInfo() - repository.setPrompt(promptInfo, USER_ID, CHALLENGE, kind, OP_PACKAGE_NAME) + repository.setPrompt(promptInfo, USER_ID, REQUEST_ID, CHALLENGE, kind, OP_PACKAGE_NAME) assertThat(repository.promptKind.value).isEqualTo(kind) assertThat(repository.userId.value).isEqualTo(USER_ID) @@ -147,11 +151,33 @@ class PromptRepositoryImplTest : SysuiTestCase() { assertThat(repository.promptInfo.value).isSameInstanceAs(promptInfo) assertThat(repository.opPackageName.value).isEqualTo(OP_PACKAGE_NAME) - repository.unsetPrompt() + repository.unsetPrompt(REQUEST_ID) assertThat(repository.promptInfo.value).isNull() assertThat(repository.userId.value).isNull() assertThat(repository.challenge.value).isNull() assertThat(repository.opPackageName.value).isNull() } + + @Test + fun setsAndUnsetsPrompt_whenRequestIdDoesNotMatch() = + testScope.runTest { + val kind = PromptKind.Pin + val promptInfo = PromptInfo() + + repository.setPrompt(promptInfo, USER_ID, REQUEST_ID, CHALLENGE, kind, OP_PACKAGE_NAME) + + assertThat(repository.promptKind.value).isEqualTo(kind) + assertThat(repository.userId.value).isEqualTo(USER_ID) + assertThat(repository.challenge.value).isEqualTo(CHALLENGE) + assertThat(repository.promptInfo.value).isSameInstanceAs(promptInfo) + assertThat(repository.opPackageName.value).isEqualTo(OP_PACKAGE_NAME) + + repository.unsetPrompt(WRONG_REQUEST_ID) + + assertThat(repository.promptInfo.value).isNotNull() + assertThat(repository.userId.value).isNotNull() + assertThat(repository.challenge.value).isNotNull() + assertThat(repository.opPackageName.value).isNotNull() + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/domain/interactor/PromptCredentialInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/domain/interactor/PromptCredentialInteractorTest.kt index 8695c01e89d4..c4d0d23ce9f3 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/domain/interactor/PromptCredentialInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/domain/interactor/PromptCredentialInteractorTest.kt @@ -33,6 +33,7 @@ import org.junit.runners.JUnit4 import org.mockito.junit.MockitoJUnit private const val USER_ID = 22 +private const val REQUEST_ID = 22L private const val OPERATION_ID = 100L private const val OP_PACKAGE_NAME = "biometric.testapp" @@ -112,6 +113,7 @@ class PromptCredentialInteractorTest : SysuiTestCase() { }, kind = PromptKind.Pin, userId = USER_ID, + requestId = REQUEST_ID, challenge = OPERATION_ID, opPackageName = OP_PACKAGE_NAME ) @@ -137,6 +139,7 @@ class PromptCredentialInteractorTest : SysuiTestCase() { }, kind = PromptKind.Pin, userId = USER_ID, + requestId = REQUEST_ID, challenge = OPERATION_ID, opPackageName = OP_PACKAGE_NAME ) @@ -165,6 +168,7 @@ class PromptCredentialInteractorTest : SysuiTestCase() { }, kind = PromptKind.Pin, userId = USER_ID, + requestId = REQUEST_ID, challenge = OPERATION_ID, opPackageName = OP_PACKAGE_NAME ) @@ -198,6 +202,7 @@ class PromptCredentialInteractorTest : SysuiTestCase() { }, kind = kind, userId = USER_ID, + requestId = REQUEST_ID, challenge = OPERATION_ID, opPackageName = OP_PACKAGE_NAME ) @@ -223,7 +228,7 @@ class PromptCredentialInteractorTest : SysuiTestCase() { assertThat(pattern.stealthMode).isEqualTo(isStealth) } - interactor.resetPrompt() + interactor.resetPrompt(REQUEST_ID) assertThat(prompt).isNull() } @@ -346,12 +351,14 @@ class PromptCredentialInteractorTest : SysuiTestCase() { promptInfo: PromptInfo, kind: PromptKind, userId: Int, + requestId: Long, challenge: Long, opPackageName: String, ) { biometricPromptRepository.setPrompt( promptInfo, userId, + requestId, challenge, kind, opPackageName, @@ -359,8 +366,8 @@ class PromptCredentialInteractorTest : SysuiTestCase() { } /** Unset the current authentication request. */ - private fun PromptCredentialInteractor.resetPrompt() { - biometricPromptRepository.unsetPrompt() + private fun PromptCredentialInteractor.resetPrompt(requestId: Long) { + biometricPromptRepository.unsetPrompt(requestId) } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/domain/interactor/PromptSelectorInteractorImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/domain/interactor/PromptSelectorInteractorImplTest.kt index 4068404da29f..3102a84b852a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/domain/interactor/PromptSelectorInteractorImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/domain/interactor/PromptSelectorInteractorImplTest.kt @@ -59,6 +59,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { private const val NEGATIVE_TEXT = "escape" private const val USER_ID = 8 + private const val REQUEST_ID = 8L private const val CHALLENGE = 999L private const val OP_PACKAGE_NAME = "biometric.testapp" private val componentNameOverriddenForConfirmDeviceCredentialActivity = @@ -150,6 +151,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { interactor.setPrompt( info, USER_ID, + REQUEST_ID, modalities, CHALLENGE, OP_PACKAGE_NAME, @@ -179,7 +181,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { } assertThat(isConfirmationRequired).isEqualTo(confirmationRequired) - interactor.resetPrompt() + interactor.resetPrompt(REQUEST_ID) verifyUnset() } @@ -206,6 +208,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { interactor.setPrompt( info, USER_ID, + REQUEST_ID, modalities, CHALLENGE, OP_PACKAGE_NAME, @@ -214,7 +217,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { assertThat(promptKind?.isBiometric()).isTrue() - interactor.resetPrompt() + interactor.resetPrompt(REQUEST_ID) verifyUnset() } @@ -230,6 +233,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { interactor.setPrompt( info, USER_ID, + REQUEST_ID, modalities, CHALLENGE, OP_PACKAGE_NAME, @@ -238,7 +242,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { assertThat(promptKind).isEqualTo(PromptKind.Password) - interactor.resetPrompt() + interactor.resetPrompt(REQUEST_ID) verifyUnset() } @@ -258,6 +262,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { interactor.setPrompt( info, USER_ID, + REQUEST_ID, modalities, CHALLENGE, OP_PACKAGE_NAME, @@ -266,7 +271,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { assertThat(promptKind).isEqualTo(PromptKind.Password) - interactor.resetPrompt() + interactor.resetPrompt(REQUEST_ID) verifyUnset() } @@ -290,6 +295,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { interactor.setPrompt( info, USER_ID, + REQUEST_ID, modalities, CHALLENGE, OP_PACKAGE_NAME, @@ -298,7 +304,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { assertThat(promptKind).isEqualTo(PromptKind.Password) - interactor.resetPrompt() + interactor.resetPrompt(REQUEST_ID) verifyUnset() } @@ -319,6 +325,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { interactor.setPrompt( info, USER_ID, + REQUEST_ID, modalities, CHALLENGE, OP_PACKAGE_NAME, @@ -327,7 +334,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { assertThat(promptKind?.isBiometric()).isTrue() - interactor.resetPrompt() + interactor.resetPrompt(REQUEST_ID) verifyUnset() } @@ -355,6 +362,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { interactor.setPrompt( info, USER_ID, + REQUEST_ID, BiometricModalities(), CHALLENGE, OP_PACKAGE_NAME, @@ -365,7 +373,7 @@ class PromptSelectorInteractorImplTest : SysuiTestCase() { assertThat(currentPrompt).isNull() assertThat(credentialKind).isEqualTo(PromptKind.None) - interactor.resetPrompt() + interactor.resetPrompt(REQUEST_ID) verifyUnset() } diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/viewmodel/CredentialViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/viewmodel/CredentialViewModelTest.kt index 3245020ec584..9e804c123520 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/viewmodel/CredentialViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/viewmodel/CredentialViewModelTest.kt @@ -22,6 +22,7 @@ import org.junit.runner.RunWith import org.junit.runners.JUnit4 private const val USER_ID = 9 +private const val REQUEST_ID = 9L private const val OPERATION_ID = 10L @OptIn(ExperimentalCoroutinesApi::class) @@ -171,7 +172,7 @@ class CredentialViewModelTest : SysuiTestCase() { ) = runTest(dispatcher) { init() - promptRepository.setPrompt(promptInfo(), USER_ID, OPERATION_ID, kind) + promptRepository.setPrompt(promptInfo(), USER_ID, REQUEST_ID, OPERATION_ID, kind) block() } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/viewmodel/PromptViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/viewmodel/PromptViewModelTest.kt index fa78f0c6ec1d..53ccb906c546 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/viewmodel/PromptViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/viewmodel/PromptViewModelTest.kt @@ -96,6 +96,7 @@ import org.mockito.Mock import org.mockito.junit.MockitoJUnit private const val USER_ID = 4 +private const val REQUEST_ID = 4L private const val CHALLENGE = 2L private const val DELAY = 1000L private const val OP_PACKAGE_NAME = "biometric.testapp" @@ -1457,7 +1458,7 @@ internal class PromptViewModelTest(private val testCase: TestCase) : SysuiTestCa whenever(activityTaskManager.getTasks(1)).thenReturn(listOf(runningTaskInfo)) selector = PromptSelectorInteractorImpl(fingerprintRepository, promptRepository, lockPatternUtils) - selector.resetPrompt() + selector.resetPrompt(REQUEST_ID) viewModel = PromptViewModel( @@ -1688,6 +1689,7 @@ private fun PromptSelectorInteractor.initializePrompt( setPrompt( info, USER_ID, + REQUEST_ID, BiometricModalities(fingerprintProperties = fingerprint, faceProperties = face), CHALLENGE, packageName, diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorTest.kt index a77169e74de5..2b8a644162c7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorTest.kt @@ -20,8 +20,11 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.compose.animation.scene.ObservableTransitionState import com.android.systemui.SysuiTestCase +import com.android.systemui.authentication.data.repository.FakeAuthenticationRepository +import com.android.systemui.authentication.domain.interactor.authenticationInteractor import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectValues +import com.android.systemui.deviceentry.domain.interactor.deviceUnlockedInteractor import com.android.systemui.flags.DisableSceneContainer import com.android.systemui.flags.EnableSceneContainer import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository @@ -30,6 +33,7 @@ import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.kosmos.testScope import com.android.systemui.scene.data.repository.sceneContainerRepository +import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.testKosmos import com.android.systemui.util.mockito.mock @@ -38,6 +42,7 @@ import com.google.common.truth.Truth.assertThat import junit.framework.Assert.assertEquals import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.flowOf +import kotlinx.coroutines.flow.map import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before @@ -727,42 +732,48 @@ class WindowManagerLockscreenVisibilityInteractorTest : SysuiTestCase() { @Test @EnableSceneContainer - fun sceneContainer_lockscreenVisibility_visibleWhenNotGone() = + fun lockscreenVisibility() = testScope.runTest { - val lockscreenVisibility by collectLastValue(underTest.value.lockscreenVisibility) + val isDeviceUnlocked by + collectLastValue( + kosmos.deviceUnlockedInteractor.deviceUnlockStatus.map { it.isUnlocked } + ) + assertThat(isDeviceUnlocked).isFalse() - sceneTransitions.value = lsToGone - assertThat(lockscreenVisibility).isTrue() + val currentScene by collectLastValue(kosmos.sceneInteractor.currentScene) + assertThat(currentScene).isEqualTo(Scenes.Lockscreen) - sceneTransitions.value = ObservableTransitionState.Idle(Scenes.Gone) - assertThat(lockscreenVisibility).isFalse() - - sceneTransitions.value = goneToLs - assertThat(lockscreenVisibility).isFalse() + val lockscreenVisibility by collectLastValue(underTest.value.lockscreenVisibility) + assertThat(lockscreenVisibility).isTrue() - sceneTransitions.value = ObservableTransitionState.Idle(Scenes.Lockscreen) + kosmos.sceneInteractor.changeScene(Scenes.Bouncer, "") + assertThat(currentScene).isEqualTo(Scenes.Bouncer) assertThat(lockscreenVisibility).isTrue() - } - @Test - @EnableSceneContainer - fun sceneContainer_lockscreenVisibility_notVisibleWhenReturningToGone() = - testScope.runTest { - val lockscreenVisibility by collectLastValue(underTest.value.lockscreenVisibility) + kosmos.authenticationInteractor.authenticate(FakeAuthenticationRepository.DEFAULT_PIN) + assertThat(isDeviceUnlocked).isTrue() + kosmos.sceneInteractor.changeScene(Scenes.Gone, "") + assertThat(currentScene).isEqualTo(Scenes.Gone) + assertThat(lockscreenVisibility).isFalse() - sceneTransitions.value = goneToLs + kosmos.sceneInteractor.changeScene(Scenes.Shade, "") + assertThat(currentScene).isEqualTo(Scenes.Shade) assertThat(lockscreenVisibility).isFalse() - sceneTransitions.value = lsToGone + kosmos.sceneInteractor.changeScene(Scenes.QuickSettings, "") + assertThat(currentScene).isEqualTo(Scenes.QuickSettings) assertThat(lockscreenVisibility).isFalse() - sceneTransitions.value = ObservableTransitionState.Idle(Scenes.Gone) + kosmos.sceneInteractor.changeScene(Scenes.Shade, "") + assertThat(currentScene).isEqualTo(Scenes.Shade) assertThat(lockscreenVisibility).isFalse() - sceneTransitions.value = goneToLs + kosmos.sceneInteractor.changeScene(Scenes.Gone, "") + assertThat(currentScene).isEqualTo(Scenes.Gone) assertThat(lockscreenVisibility).isFalse() - sceneTransitions.value = ObservableTransitionState.Idle(Scenes.Lockscreen) + kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "") + assertThat(currentScene).isEqualTo(Scenes.Lockscreen) assertThat(lockscreenVisibility).isTrue() } diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java index 8e3290748039..4d32cc423ded 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java @@ -40,6 +40,7 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.animation.Animator; import android.annotation.IdRes; import android.content.ContentResolver; import android.content.res.Configuration; @@ -207,12 +208,15 @@ import kotlinx.coroutines.test.TestScope; import org.junit.After; import org.junit.Before; +import org.junit.Rule; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; import org.mockito.stubbing.Answer; +import java.util.HashSet; import java.util.List; import java.util.Optional; @@ -387,9 +391,11 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase { protected FragmentHostManager.FragmentListener mFragmentListener; + @Rule(order = 200) + public MockitoRule mMockitoRule = MockitoJUnit.rule(); + @Before public void setup() { - MockitoAnnotations.initMocks(this); mFeatureFlags.set(Flags.LOCKSCREEN_ENABLE_LANDSCAPE, false); mFeatureFlags.set(Flags.QS_USER_DETAIL_SHORTCUT, false); @@ -761,6 +767,9 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase { @Override public void onOpenStarted() {} }); + // Create a set to which the class will add all animators used, so that we can + // verify that they are all stopped. + mNotificationPanelViewController.mTestSetOfAnimatorsUsed = new HashSet<>(); ArgumentCaptor<View.OnAttachStateChangeListener> onAttachStateChangeListenerArgumentCaptor = ArgumentCaptor.forClass(View.OnAttachStateChangeListener.class); verify(mView, atLeast(1)).addOnAttachStateChangeListener( @@ -822,13 +831,20 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase { @After public void tearDown() { + List<Animator> leakedAnimators = null; if (mNotificationPanelViewController != null) { mNotificationPanelViewController.mBottomAreaShadeAlphaAnimator.cancel(); mNotificationPanelViewController.cancelHeightAnimator(); + leakedAnimators = mNotificationPanelViewController.mTestSetOfAnimatorsUsed.stream() + .filter(Animator::isRunning).toList(); + mNotificationPanelViewController.mTestSetOfAnimatorsUsed.forEach(Animator::cancel); } if (mMainHandler != null) { mMainHandler.removeCallbacksAndMessages(null); } + if (leakedAnimators != null) { + assertThat(leakedAnimators).isEmpty(); + } } protected void setBottomPadding(int stackBottom, int lockIconPadding, int indicationPadding, diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java index e1cdda440976..65364053f109 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerTest.java @@ -705,6 +705,7 @@ public class NotificationPanelViewControllerTest extends NotificationPanelViewCo } @Test + @Ignore("b/341163515 - fails to clean up animators correctly") public void testSwipeWhileLocked_notifiesKeyguardState() { mStatusBarStateController.setState(KEYGUARD); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManagerTest.kt index 8e8a3513f3be..9e733be6665c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManagerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManagerTest.kt @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.notification +import android.platform.test.annotations.DisableFlags import android.provider.DeviceConfig import android.provider.Settings @@ -25,6 +26,7 @@ import com.android.dx.mockito.inline.extended.ExtendedMockito import com.android.internal.config.sysui.SystemUiDeviceConfigFlags.NOTIFICATIONS_USE_PEOPLE_FILTERING import com.android.systemui.SysuiTestCase +import com.android.systemui.statusbar.notification.shared.PriorityPeopleSection import com.android.systemui.util.DeviceConfigProxyFake import com.android.systemui.util.Utils import com.android.systemui.util.mockito.any @@ -41,6 +43,7 @@ import org.mockito.quality.Strictness @RunWith(AndroidJUnit4::class) @SmallTest +@DisableFlags(PriorityPeopleSection.FLAG_NAME) // this class has no logic with the flag enabled class NotificationSectionsFeatureManagerTest : SysuiTestCase() { var manager: NotificationSectionsFeatureManager? = null val proxyFake = DeviceConfigProxyFake() diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java index daea7b94ac4f..7b0a55608970 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java @@ -2133,8 +2133,7 @@ public class BubblesTest extends SysuiTestCase { FakeBubbleStateListener bubbleStateListener = new FakeBubbleStateListener(); mBubbleController.registerBubbleStateListener(bubbleStateListener); - mBubbleController.expandStackAndSelectBubbleFromLauncher(mBubbleEntry.getKey(), - new Rect(500, 1000, 600, 1100)); + mBubbleController.expandStackAndSelectBubbleFromLauncher(mBubbleEntry.getKey(), 1000); assertThat(mBubbleController.getLayerView().isExpanded()).isTrue(); @@ -2158,7 +2157,7 @@ public class BubblesTest extends SysuiTestCase { mBubbleController.updateBubble(mBubbleEntry2); // Select first bubble - mBubbleController.expandStackAndSelectBubbleFromLauncher(mBubbleEntry.getKey(), new Rect()); + mBubbleController.expandStackAndSelectBubbleFromLauncher(mBubbleEntry.getKey(), 0); assertThat(mBubbleData.getSelectedBubbleKey()).isEqualTo(mBubbleEntry.getKey()); assertThat(mBubbleController.getLayerView().isExpanded()).isTrue(); @@ -2167,7 +2166,7 @@ public class BubblesTest extends SysuiTestCase { assertThat(mBubbleController.getLayerView().isExpanded()).isFalse(); // Stop dragging, first bubble should be expanded - mBubbleController.stopBubbleDrag(BubbleBarLocation.LEFT); + mBubbleController.stopBubbleDrag(BubbleBarLocation.LEFT, 0); assertThat(mBubbleData.getSelectedBubbleKey()).isEqualTo(mBubbleEntry.getKey()); assertThat(mBubbleController.getLayerView().isExpanded()).isTrue(); } @@ -2187,7 +2186,7 @@ public class BubblesTest extends SysuiTestCase { mBubbleController.updateBubble(mBubbleEntry2); // Select first bubble - mBubbleController.expandStackAndSelectBubbleFromLauncher(mBubbleEntry.getKey(), new Rect()); + mBubbleController.expandStackAndSelectBubbleFromLauncher(mBubbleEntry.getKey(), 0); assertThat(mBubbleData.getSelectedBubbleKey()).isEqualTo(mBubbleEntry.getKey()); assertThat(mBubbleController.getLayerView().isExpanded()).isTrue(); @@ -2196,7 +2195,7 @@ public class BubblesTest extends SysuiTestCase { assertThat(mBubbleController.getLayerView().isExpanded()).isFalse(); // Stop dragging, first bubble should be expanded - mBubbleController.stopBubbleDrag(BubbleBarLocation.LEFT); + mBubbleController.stopBubbleDrag(BubbleBarLocation.LEFT, 0); assertThat(mBubbleData.getSelectedBubbleKey()).isEqualTo(mBubbleEntry.getKey()); assertThat(mBubbleController.getLayerView().isExpanded()).isTrue(); } @@ -2216,7 +2215,7 @@ public class BubblesTest extends SysuiTestCase { mBubbleController.updateBubble(mBubbleEntry2); // Select first bubble - mBubbleController.expandStackAndSelectBubbleFromLauncher(mBubbleEntry.getKey(), new Rect()); + mBubbleController.expandStackAndSelectBubbleFromLauncher(mBubbleEntry.getKey(), 0); // Drag first bubble to dismiss mBubbleController.startBubbleDrag(mBubbleEntry.getKey()); mBubbleController.dragBubbleToDismiss(mBubbleEntry.getKey()); @@ -2240,7 +2239,7 @@ public class BubblesTest extends SysuiTestCase { mBubbleController.updateBubble(mBubbleEntry2); // Select first bubble - mBubbleController.expandStackAndSelectBubbleFromLauncher(mBubbleEntry.getKey(), new Rect()); + mBubbleController.expandStackAndSelectBubbleFromLauncher(mBubbleEntry.getKey(), 0); // Drag second bubble to dismiss mBubbleController.startBubbleDrag(mBubbleEntry2.getKey()); mBubbleController.dragBubbleToDismiss(mBubbleEntry2.getKey()); diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/biometrics/data/repository/FakePromptRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/biometrics/data/repository/FakePromptRepository.kt index e37bdc15c0ac..280996719e02 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/biometrics/data/repository/FakePromptRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/biometrics/data/repository/FakePromptRepository.kt @@ -17,6 +17,9 @@ class FakePromptRepository : PromptRepository { private val _userId = MutableStateFlow<Int?>(null) override val userId = _userId.asStateFlow() + private val _requestId = MutableStateFlow<Long?>(null) + override val requestId = _requestId.asStateFlow() + private var _challenge = MutableStateFlow<Long?>(null) override val challenge = _challenge.asStateFlow() @@ -32,6 +35,7 @@ class FakePromptRepository : PromptRepository { override fun setPrompt( promptInfo: PromptInfo, userId: Int, + requestId: Long, gatekeeperChallenge: Long?, kind: PromptKind, opPackageName: String, @@ -39,6 +43,7 @@ class FakePromptRepository : PromptRepository { setPrompt( promptInfo, userId, + requestId, gatekeeperChallenge, kind, forceConfirmation = false, @@ -48,6 +53,7 @@ class FakePromptRepository : PromptRepository { fun setPrompt( promptInfo: PromptInfo, userId: Int, + requestId: Long, gatekeeperChallenge: Long?, kind: PromptKind, forceConfirmation: Boolean = false, @@ -55,15 +61,17 @@ class FakePromptRepository : PromptRepository { ) { _promptInfo.value = promptInfo _userId.value = userId + _requestId.value = requestId _challenge.value = gatekeeperChallenge _promptKind.value = kind _isConfirmationRequired.value = promptInfo.isConfirmationRequested || forceConfirmation _opPackageName.value = opPackageName } - override fun unsetPrompt() { + override fun unsetPrompt(requestId: Long) { _promptInfo.value = null _userId.value = null + _requestId.value = null _challenge.value = null _promptKind.value = PromptKind.None _opPackageName.value = null diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorKosmos.kt index b38acc8a46dc..bd9c0be6b0b7 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractorKosmos.kt @@ -16,6 +16,7 @@ package com.android.systemui.keyguard.domain.interactor +import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor import com.android.systemui.kosmos.Kosmos import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.statusbar.notification.domain.interactor.notificationLaunchAnimationInteractor @@ -30,6 +31,7 @@ val Kosmos.windowManagerLockscreenVisibilityInteractor by fromBouncerInteractor = fromPrimaryBouncerTransitionInteractor, fromAlternateBouncerInteractor = fromAlternateBouncerTransitionInteractor, notificationLaunchAnimationInteractor = notificationLaunchAnimationInteractor, - sceneInteractor = sceneInteractor, + sceneInteractor = { sceneInteractor }, + deviceEntryInteractor = { deviceEntryInteractor }, ) } diff --git a/services/core/java/com/android/server/BootReceiver.java b/services/core/java/com/android/server/BootReceiver.java index 9f279b1ba3fe..f69a521130ab 100644 --- a/services/core/java/com/android/server/BootReceiver.java +++ b/services/core/java/com/android/server/BootReceiver.java @@ -34,6 +34,7 @@ import android.os.TombstoneWithHeadersProto; import android.provider.Downloads; import android.system.ErrnoException; import android.system.Os; +import android.system.OsConstants; import android.text.TextUtils; import android.util.AtomicFile; import android.util.EventLog; @@ -230,16 +231,23 @@ public class BootReceiver extends BroadcastReceiver { } private static String getCurrentBootHeaders() throws IOException { - return new StringBuilder(512) - .append("Build: ").append(Build.FINGERPRINT).append("\n") - .append("Hardware: ").append(Build.BOARD).append("\n") - .append("Revision: ") - .append(SystemProperties.get("ro.revision", "")).append("\n") - .append("Bootloader: ").append(Build.BOOTLOADER).append("\n") - .append("Radio: ").append(Build.getRadioVersion()).append("\n") - .append("Kernel: ") - .append(FileUtils.readTextFile(new File("/proc/version"), 1024, "...\n")) - .append("\n").toString(); + StringBuilder builder = new StringBuilder(512) + .append("Build: ").append(Build.FINGERPRINT).append("\n") + .append("Hardware: ").append(Build.BOARD).append("\n") + .append("Revision: ") + .append(SystemProperties.get("ro.revision", "")).append("\n") + .append("Bootloader: ").append(Build.BOOTLOADER).append("\n") + .append("Radio: ").append(Build.getRadioVersion()).append("\n") + .append("Kernel: ") + .append(FileUtils.readTextFile(new File("/proc/version"), 1024, "...\n")); + + // If device is not using 4KB pages, add the PageSize + long pageSize = Os.sysconf(OsConstants._SC_PAGESIZE); + if (pageSize != 4096) { + builder.append("PageSize: ").append(pageSize).append("\n"); + } + builder.append("\n"); + return builder.toString(); } diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 316937c8280a..58855ea0384a 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -372,6 +372,8 @@ import android.provider.DeviceConfig; import android.provider.Settings; import android.server.ServerProtoEnums; import android.sysprop.InitProperties; +import android.system.Os; +import android.system.OsConstants; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.text.style.SuggestionSpan; @@ -9911,6 +9913,13 @@ public class ActivityManagerService extends IActivityManager.Stub sb.append("ErrorId: ").append(errorId.toString()).append("\n"); } sb.append("Build: ").append(Build.FINGERPRINT).append("\n"); + + // If device is not using 4KB pages, add the PageSize + long pageSize = Os.sysconf(OsConstants._SC_PAGESIZE); + if (pageSize != 4096) { + sb.append("PageSize: ").append(pageSize).append("\n"); + } + if (Debug.isDebuggerConnected()) { sb.append("Debugger: Connected\n"); } diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index a5449a0f0431..6779f7a37f20 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -37,7 +37,6 @@ import static android.os.Process.startWebView; import static android.system.OsConstants.EAGAIN; import static com.android.sdksandbox.flags.Flags.selinuxSdkSandboxAudit; -import static com.android.sdksandbox.flags.Flags.selinuxSdkSandboxInputSelector; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_LRU; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_NETWORK; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_PROCESSES; @@ -2066,15 +2065,11 @@ public final class ProcessList { } } - if (selinuxSdkSandboxInputSelector()) { - return app.info.seInfo + extraInfo + TextUtils.emptyIfNull(app.info.seInfoUser); - } else { - return app.info.seInfo - + (TextUtils.isEmpty(app.info.seInfoUser) ? "" : app.info.seInfoUser) - + extraInfo; - } + return app.info.seInfo + + (TextUtils.isEmpty(app.info.seInfoUser) ? "" : app.info.seInfoUser) + extraInfo; } + @GuardedBy("mService") boolean startProcessLocked(HostingRecord hostingRecord, String entryPoint, ProcessRecord app, int uid, int[] gids, int runtimeFlags, int zygotePolicyFlags, int mountExternal, diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubService.java b/services/core/java/com/android/server/location/contexthub/ContextHubService.java index 17f8abe14ea0..b3fb147a318b 100644 --- a/services/core/java/com/android/server/location/contexthub/ContextHubService.java +++ b/services/core/java/com/android/server/location/contexthub/ContextHubService.java @@ -317,9 +317,6 @@ public class ContextHubService extends IContextHubService.Stub { */ private static final int MAX_PROBABILITY_PERCENT = 100; - /** - * Random number generator. - */ private Random mRandom = new Random(); /** @@ -998,50 +995,75 @@ public class ContextHubService extends IContextHubService.Stub { return; } - if (message.isReliable()) { - byte errorCode = ErrorCode.OK; - synchronized (mReliableMessageRecordQueue) { - Optional<ReliableMessageRecord> record = Optional.empty(); - for (ReliableMessageRecord r: mReliableMessageRecordQueue) { - if (r.getContextHubId() == contextHubId - && r.getMessageSequenceNumber() == message.getMessageSequenceNumber()) { - record = Optional.of(r); - break; - } - } + if (!message.isReliable()) { + mClientManager.onMessageFromNanoApp( + contextHubId, hostEndpointId, message, + nanoappPermissions, messagePermissions); + cleanupReliableMessageRecordQueue(); + return; + } - if (record.isPresent()) { - errorCode = record.get().getErrorCode(); - if (errorCode == ErrorCode.TRANSIENT_ERROR) { - Log.w(TAG, "Found duplicate reliable message with message sequence number: " - + record.get().getMessageSequenceNumber() + ": retrying"); - errorCode = mClientManager.onMessageFromNanoApp( - contextHubId, hostEndpointId, message, - nanoappPermissions, messagePermissions); - record.get().setErrorCode(errorCode); - } else { - Log.w(TAG, "Found duplicate reliable message with message sequence number: " - + record.get().getMessageSequenceNumber()); - } - } else { + byte errorCode = ErrorCode.OK; + synchronized (mReliableMessageRecordQueue) { + Optional<ReliableMessageRecord> record = + findReliableMessageRecord(contextHubId, + message.getMessageSequenceNumber()); + + if (record.isPresent()) { + errorCode = record.get().getErrorCode(); + if (errorCode == ErrorCode.TRANSIENT_ERROR) { + Log.w(TAG, "Found duplicate reliable message with message sequence number: " + + record.get().getMessageSequenceNumber() + ": retrying"); errorCode = mClientManager.onMessageFromNanoApp( contextHubId, hostEndpointId, message, nanoappPermissions, messagePermissions); - mReliableMessageRecordQueue.add( - new ReliableMessageRecord(contextHubId, - SystemClock.elapsedRealtimeNanos(), - message.getMessageSequenceNumber(), - errorCode)); + record.get().setErrorCode(errorCode); + } else { + Log.w(TAG, "Found duplicate reliable message with message sequence number: " + + record.get().getMessageSequenceNumber()); } + } else { + errorCode = mClientManager.onMessageFromNanoApp( + contextHubId, hostEndpointId, message, + nanoappPermissions, messagePermissions); + mReliableMessageRecordQueue.add( + new ReliableMessageRecord(contextHubId, + SystemClock.elapsedRealtimeNanos(), + message.getMessageSequenceNumber(), + errorCode)); + } + } + + sendMessageDeliveryStatusToContextHub(contextHubId, + message.getMessageSequenceNumber(), errorCode); + cleanupReliableMessageRecordQueue(); + } + + /** + * Finds a reliable message record in the queue that matches the given + * context hub ID and message sequence number. This function assumes + * the caller is synchronized on mReliableMessageRecordQueue. + * + * @param contextHubId the ID of the hub + * @param messageSequenceNumber the message sequence number + * + * @return the record if found, or empty if not found + */ + private Optional<ReliableMessageRecord> findReliableMessageRecord( + int contextHubId, int messageSequenceNumber) { + for (ReliableMessageRecord record: mReliableMessageRecordQueue) { + if (record.getContextHubId() == contextHubId + && record.getMessageSequenceNumber() == messageSequenceNumber) { + return Optional.of(record); } - sendMessageDeliveryStatusToContextHub(contextHubId, - message.getMessageSequenceNumber(), errorCode); - } else { - mClientManager.onMessageFromNanoApp( - contextHubId, hostEndpointId, message, - nanoappPermissions, messagePermissions); } + return Optional.empty(); + } + /** + * Removes old entries from the reliable message record queue. + */ + private void cleanupReliableMessageRecordQueue() { synchronized (mReliableMessageRecordQueue) { while (mReliableMessageRecordQueue.peek() != null && mReliableMessageRecordQueue.peek().isExpired()) { diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index e1f893953d66..c03497e629f0 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -404,37 +404,17 @@ class MediaRouter2ServiceImpl { long managerRequestId, @NonNull RoutingSessionInfo oldSession, @NonNull MediaRoute2Info route, - Bundle sessionHints, - @Nullable UserHandle transferInitiatorUserHandle, - @Nullable String transferInitiatorPackageName) { + Bundle sessionHints) { Objects.requireNonNull(router, "router must not be null"); Objects.requireNonNull(oldSession, "oldSession must not be null"); Objects.requireNonNull(route, "route must not be null"); - synchronized (mLock) { - if (managerRequestId == MediaRoute2ProviderService.REQUEST_ID_NONE - || transferInitiatorUserHandle == null - || transferInitiatorPackageName == null) { - final IBinder binder = router.asBinder(); - final RouterRecord routerRecord = mAllRouterRecords.get(binder); - - transferInitiatorUserHandle = Binder.getCallingUserHandle(); - if (routerRecord != null) { - transferInitiatorPackageName = routerRecord.mPackageName; - } else { - transferInitiatorPackageName = mContext.getPackageName(); - } - } - } - final long token = Binder.clearCallingIdentity(); try { synchronized (mLock) { requestCreateSessionWithRouter2Locked( requestId, managerRequestId, - transferInitiatorUserHandle, - transferInitiatorPackageName, router, oldSession, route, @@ -1281,8 +1261,6 @@ class MediaRouter2ServiceImpl { private void requestCreateSessionWithRouter2Locked( int requestId, long managerRequestId, - @NonNull UserHandle transferInitiatorUserHandle, - @NonNull String transferInitiatorPackageName, @NonNull IMediaRouter2 router, @NonNull RoutingSessionInfo oldSession, @NonNull MediaRoute2Info route, @@ -1355,8 +1333,6 @@ class MediaRouter2ServiceImpl { userHandler, uniqueRequestId, managerRequestId, - transferInitiatorUserHandle, - transferInitiatorPackageName, routerRecord, oldSession, route, @@ -2695,11 +2671,7 @@ class MediaRouter2ServiceImpl { route = mSystemProvider.getDefaultRoute(); } routerRecord.mRouter.requestCreateSessionByManager( - uniqueRequestId, - oldSession, - route, - transferInitiatorUserHandle, - transferInitiatorPackageName); + uniqueRequestId, oldSession, route); } catch (RemoteException ex) { Slog.w(TAG, "getSessionHintsForCreatingSessionOnHandler: " + "Failed to request. Router probably died.", ex); @@ -2711,8 +2683,6 @@ class MediaRouter2ServiceImpl { private void requestCreateSessionWithRouter2OnHandler( long uniqueRequestId, long managerRequestId, - @NonNull UserHandle transferInitiatorUserHandle, - @NonNull String transferInitiatorPackageName, @NonNull RouterRecord routerRecord, @NonNull RoutingSessionInfo oldSession, @NonNull MediaRoute2Info route, @@ -2732,10 +2702,10 @@ class MediaRouter2ServiceImpl { managerRequestId, oldSession, route); mSessionCreationRequests.add(request); - int transferReason = RoutingSessionInfo.TRANSFER_REASON_APP; - if (managerRequestId != MediaRoute2ProviderService.REQUEST_ID_NONE) { - transferReason = RoutingSessionInfo.TRANSFER_REASON_SYSTEM_REQUEST; - } + int transferReason = + managerRequestId != MediaRoute2ProviderService.REQUEST_ID_NONE + ? RoutingSessionInfo.TRANSFER_REASON_SYSTEM_REQUEST + : RoutingSessionInfo.TRANSFER_REASON_APP; provider.requestCreateSession( uniqueRequestId, @@ -2743,8 +2713,8 @@ class MediaRouter2ServiceImpl { route.getOriginalId(), sessionHints, transferReason, - transferInitiatorUserHandle, - transferInitiatorPackageName); + UserHandle.of(routerRecord.mUserRecord.mUserId), + routerRecord.mPackageName); } // routerRecord can be null if the session is system's or RCN. diff --git a/services/core/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java index 064443ce7d10..192ac6287884 100644 --- a/services/core/java/com/android/server/media/MediaRouterService.java +++ b/services/core/java/com/android/server/media/MediaRouterService.java @@ -495,18 +495,9 @@ public final class MediaRouterService extends IMediaRouterService.Stub long managerRequestId, RoutingSessionInfo oldSession, MediaRoute2Info route, - Bundle sessionHints, - @Nullable UserHandle transferInitiatorUserHandle, - @Nullable String transferInitiatorPackageName) { + Bundle sessionHints) { mService2.requestCreateSessionWithRouter2( - router, - requestId, - managerRequestId, - oldSession, - route, - sessionHints, - transferInitiatorUserHandle, - transferInitiatorPackageName); + router, requestId, managerRequestId, oldSession, route, sessionHints); } // Binder call diff --git a/services/core/java/com/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService.java b/services/core/java/com/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService.java index cdc1a5e738a0..dd7603714718 100644 --- a/services/core/java/com/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService.java +++ b/services/core/java/com/android/server/ondeviceintelligence/OnDeviceIntelligenceManagerService.java @@ -670,7 +670,7 @@ public class OnDeviceIntelligenceManagerService extends SystemService { } private void registerDeviceConfigChangeListener() { - Log.e(TAG, "registerDeviceConfigChangeListener"); + Log.d(TAG, "registerDeviceConfigChangeListener"); String configNamespace = getConfigNamespace(); if (configNamespace.isEmpty()) { Slog.e(TAG, "config_defaultOnDeviceIntelligenceDeviceConfigNamespace is empty"); @@ -695,7 +695,7 @@ public class OnDeviceIntelligenceManagerService extends SystemService { private void sendUpdatedConfig( DeviceConfig.Properties props) { - Log.e(TAG, "sendUpdatedConfig"); + Log.d(TAG, "sendUpdatedConfig"); PersistableBundle persistableBundle = new PersistableBundle(); for (String key : props.getKeyset()) { @@ -704,8 +704,6 @@ public class OnDeviceIntelligenceManagerService extends SystemService { Bundle bundle = new Bundle(); bundle.putParcelable(DEVICE_CONFIG_UPDATE_BUNDLE_KEY, persistableBundle); ensureRemoteInferenceServiceInitialized(); - Log.e(TAG, "sendUpdatedConfig: BUNDLE: " + bundle); - mRemoteInferenceService.run(service -> service.updateProcessingState(bundle, new IProcessingUpdateStatusCallback.Stub() { @Override diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java index e280bdc7780b..5be5bc5e3952 100644 --- a/services/core/java/com/android/server/wm/AccessibilityController.java +++ b/services/core/java/com/android/server/wm/AccessibilityController.java @@ -984,36 +984,26 @@ final class AccessibilityController { Region touchableRegion = mTempRegion3; windowState.getTouchableRegion(touchableRegion); Region windowBounds = mTempRegion2; - if (Flags.useWindowOriginalTouchableRegionWhenMagnificationRecomputeBounds()) { - // For b/323366243, if using the bounds from touchableRegion.getBounds, in - // non-magnifiable windowBounds computation, part of the non-touchableRegion - // may be included into nonMagnifiedBounds. This will make users lose - // the magnification control on mis-included areas. - // Therefore, to prevent the above issue, we change to use the window exact - // touchableRegion in magnificationRegion computation. - // Like the original approach, the touchableRegion is in non-magnified display - // space, so first we need to offset the region by the windowFrames bounds, then - // apply the transform matrix to the region to get the exact region in magnified - // display space. - // TODO: For a long-term plan, since touchable regions provided by WindowState - // doesn't actually reflect the real touchable regions on display, we should - // delete the WindowState dependency and migrate to use the touchableRegion - // from WindowInfoListener data. (b/330653961) - touchableRegion.translate(-windowState.getFrame().left, - -windowState.getFrame().top); - applyMatrixToRegion(matrix, touchableRegion); - windowBounds.set(touchableRegion); - } else { - Rect touchableFrame = mTempRect1; - touchableRegion.getBounds(touchableFrame); - RectF windowFrame = mTempRectF; - windowFrame.set(touchableFrame); - windowFrame.offset(-windowState.getFrame().left, - -windowState.getFrame().top); - matrix.mapRect(windowFrame); - windowBounds.set((int) windowFrame.left, (int) windowFrame.top, - (int) windowFrame.right, (int) windowFrame.bottom); - } + + // For b/323366243, if using the bounds from touchableRegion.getBounds, in + // non-magnifiable windowBounds computation, part of the non-touchableRegion + // may be included into nonMagnifiedBounds. This will make users lose + // the magnification control on mis-included areas. + // Therefore, to prevent the above issue, we change to use the window exact + // touchableRegion in magnificationRegion computation. + // Like the original approach, the touchableRegion is in non-magnified display + // space, so first we need to offset the region by the windowFrames bounds, then + // apply the transform matrix to the region to get the exact region in magnified + // display space. + // TODO: For a long-term plan, since touchable regions provided by WindowState + // doesn't actually reflect the real touchable regions on display, we should + // delete the WindowState dependency and migrate to use the touchableRegion + // from WindowInfoListener data. (b/330653961) + touchableRegion.translate(-windowState.getFrame().left, + -windowState.getFrame().top); + applyMatrixToRegion(matrix, touchableRegion); + windowBounds.set(touchableRegion); + // Only update new regions Region portionOfWindowAlreadyAccountedFor = mTempRegion3; portionOfWindowAlreadyAccountedFor.set(mMagnificationRegion); diff --git a/services/core/java/com/android/server/wm/LetterboxUiController.java b/services/core/java/com/android/server/wm/LetterboxUiController.java index 16d7b4fb6eed..6e11e082cc07 100644 --- a/services/core/java/com/android/server/wm/LetterboxUiController.java +++ b/services/core/java/com/android/server/wm/LetterboxUiController.java @@ -1149,6 +1149,17 @@ final class LetterboxUiController { } boolean shouldApplyUserFullscreenOverride() { + // Do not override orientation to fullscreen for camera activities. + // Fixed-orientation activities are rarely tested in other orientations, and it often + // results in sideways or stretched previews. As the camera compat treatment targets + // fixed-orientation activities, overriding the orientation disables the treatment. + final DisplayContent displayContent = mActivityRecord.mDisplayContent; + if (displayContent != null && displayContent.mDisplayRotationCompatPolicy != null + && displayContent.mDisplayRotationCompatPolicy + .isCameraActive(mActivityRecord, /* mustBeFullscreen= */ true)) { + return false; + } + if (isUserFullscreenOverrideEnabled()) { mUserAspectRatio = getUserMinAspectRatioOverrideCode(); diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java index 54b2d4dd1429..8844e6cc3a2c 100644 --- a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java +++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java @@ -709,6 +709,64 @@ public class DisplayManagerServiceTest { assertTrue((ddi.flags & DisplayDeviceInfo.FLAG_OWN_FOCUS) == 0); } + @Test + public void testCreateVirtualDisplayOwnFocus_checkDisplayDeviceInfo() throws RemoteException { + DisplayManagerService displayManager = + new DisplayManagerService(mContext, mBasicInjector); + registerDefaultDisplays(displayManager); + + // This is effectively the DisplayManager service published to ServiceManager. + DisplayManagerService.BinderService bs = displayManager.new BinderService(); + + final String uniqueId = "uniqueId --- Own Focus Test -- checkDisplayDeviceInfo"; + float refreshRate = 60.0f; + int width = 600; + int height = 800; + int dpi = 320; + int flags = DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_FOCUS; + + when(mContext.checkCallingPermission(ADD_TRUSTED_DISPLAY)).thenReturn( + PackageManager.PERMISSION_GRANTED); + when(mMockAppToken.asBinder()).thenReturn(mMockAppToken); + final VirtualDisplayConfig.Builder builder = new VirtualDisplayConfig.Builder( + VIRTUAL_DISPLAY_NAME, width, height, dpi); + builder.setFlags(flags); + builder.setUniqueId(uniqueId); + builder.setRequestedRefreshRate(refreshRate); + + // Create a virtual display in its own display group. + final VirtualDisplayConfig ownerDisplayConfig = builder.build(); + int displayId = bs.createVirtualDisplay(ownerDisplayConfig, /* callback= */ mMockAppToken, + /* projection= */ null, PACKAGE_NAME); + verify(mMockProjectionService, never()).setContentRecordingSession(any(), + nullable(IMediaProjection.class)); + + DisplayInfo displayInfo = bs.getDisplayInfo(displayId); + assertNotNull(displayInfo); + assertTrue((displayInfo.flags & DisplayDeviceInfo.FLAG_OWN_FOCUS) == 0); + final String displayUniqueId = VirtualDisplayAdapter.generateDisplayUniqueId( + PACKAGE_NAME, Process.myUid(), ownerDisplayConfig); + assertEquals(displayInfo.uniqueId, displayUniqueId); + assertEquals(displayInfo.name, VIRTUAL_DISPLAY_NAME); + assertEquals(displayInfo.ownerPackageName, PACKAGE_NAME); + assertEquals(displayInfo.getRefreshRate(), refreshRate, 0.1f); + + performTraversalInternal(displayManager); + + // Flush the handler. + displayManager.getDisplayHandler().runWithScissors(() -> {}, /* now= */ 0); + + DisplayDeviceInfo ddi = displayManager.getDisplayDeviceInfoInternal(displayId); + assertNotNull(ddi); + assertTrue((ddi.flags & DisplayDeviceInfo.FLAG_OWN_FOCUS) == 0); + assertEquals(ddi.width, width); + assertEquals(ddi.height, height); + assertEquals(ddi.name, displayInfo.name); + assertEquals(ddi.ownerPackageName, displayInfo.ownerPackageName); + assertEquals(ddi.uniqueId, displayInfo.uniqueId); + assertEquals(ddi.renderFrameRate, displayInfo.getRefreshRate(), 0.1f); + } + /** * Tests that the virtual display is created along-side the default display. */ diff --git a/services/tests/wmtests/src/com/android/server/wm/LetterboxUiControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/LetterboxUiControllerTest.java index 6b17de4c8640..c7f502045ac8 100644 --- a/services/tests/wmtests/src/com/android/server/wm/LetterboxUiControllerTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/LetterboxUiControllerTest.java @@ -908,6 +908,24 @@ public class LetterboxUiControllerTest extends WindowTestsBase { } @Test + public void testOverrideOrientationIfNeeded_fullscreenOverride_cameraActivity_unchanged() { + doReturn(true).when(mLetterboxConfiguration).isCameraCompatTreatmentEnabled(); + doReturn(true).when(mLetterboxConfiguration) + .isCameraCompatTreatmentEnabledAtBuildTime(); + + // Recreate DisplayContent with DisplayRotationCompatPolicy + mActivity = setUpActivityWithComponent(); + mController = new LetterboxUiController(mWm, mActivity); + spyOn(mDisplayContent.mDisplayRotationCompatPolicy); + + doReturn(false).when(mDisplayContent.mDisplayRotationCompatPolicy) + .isCameraActive(mActivity, /* mustBeFullscreen= */ true); + + assertEquals(SCREEN_ORIENTATION_PORTRAIT, mController.overrideOrientationIfNeeded( + /* candidate */ SCREEN_ORIENTATION_PORTRAIT)); + } + + @Test public void testOverrideOrientationIfNeeded_respectOrientationRequestOverUserFullScreen() { spyOn(mController); doReturn(true).when(mController).shouldApplyUserFullscreenOverride(); |